From 6acd22615b10e2ae096340509b3b795f18cb992c Mon Sep 17 00:00:00 2001 From: Miraty Date: Mon, 5 Apr 2021 18:32:22 +0200 Subject: [PATCH] Allow multiple sites generation --- .gitignore | 7 +- README.md | 44 +- clr.php => antopie/clr.php | 4 +- {bibli => antopie}/fontello/LICENSE.txt | 0 {bibli => antopie}/fontello/README.txt | 0 {bibli => antopie}/fontello/config.json | 0 {bibli => antopie}/fontello/css/animation.css | 0 .../fontello/css/fontello-codes.css | 0 .../fontello/css/fontello-embedded.css | 0 .../fontello/css/fontello-ie7-codes.css | 0 .../fontello/css/fontello-ie7.css | 0 {bibli => antopie}/fontello/css/fontello.css | 0 .../fontello/css/fontello.min.css | 0 {bibli => antopie}/fontello/demo.html | 0 {bibli => antopie}/fontello/font/fontello.eot | Bin {bibli => antopie}/fontello/font/fontello.svg | 0 {bibli => antopie}/fontello/font/fontello.ttf | Bin .../fontello/font/fontello.woff | Bin .../fontello/font/fontello.woff2 | Bin {bibli => antopie}/gomez/gomez.css | 0 {bibli => antopie}/gomez/gomez.min.css | 0 {img => antopie/img}/404fourmie.png | Bin {img => antopie/img}/antopiev5-350-fs8.png | Bin {img => antopie/img}/antopiev5-350.png | Bin {img => antopie/img}/antopiev5-350.webp | Bin {img => antopie/img}/antopiev5-400.png | Bin {img => antopie/img}/antopiev5-500.png | Bin {img => antopie/img}/antopiev5-500.webp | Bin {img => antopie/img}/antopiev5.svg | 0 {img => antopie/img}/ban.png | Bin {img => antopie/img}/icons/128.png | Bin {img => antopie/img}/icons/128.webp | Bin {img => antopie/img}/icons/16.png | Bin {img => antopie/img}/icons/16.webp | Bin {img => antopie/img}/icons/256.png | Bin {img => antopie/img}/icons/256.webp | Bin {img => antopie/img}/icons/32.png | Bin {img => antopie/img}/icons/32.webp | Bin {img => antopie/img}/icons/512.png | Bin {img => antopie/img}/icons/512.webp | Bin {img => antopie/img}/icons/64.png | Bin {img => antopie/img}/icons/64.webp | Bin {img => antopie/img}/logos/bitwarden.png | Bin {img => antopie/img}/logos/bitwarden.webp | Bin {img => antopie/img}/logos/diagrams.png | Bin {img => antopie/img}/logos/diagrams.webp | Bin {img => antopie/img}/logos/element.png | Bin {img => antopie/img}/logos/element.webp | Bin antopie/img/logos/etherpad.png | Bin 0 -> 2895 bytes antopie/img/logos/etherpad.webp | Bin 0 -> 1398 bytes {img => antopie/img}/logos/gitea.png | Bin antopie/img/logos/gitea.webp | Bin 0 -> 2900 bytes {img => antopie/img}/logos/jirafeau.png | Bin {img => antopie/img}/logos/jirafeau.webp | Bin {img => antopie/img}/logos/libreqr.png | Bin {img => antopie/img}/logos/libreqr.webp | Bin antopie/img/logos/matrix.png | Bin 0 -> 990 bytes antopie/img/logos/matrix.webp | Bin 0 -> 400 bytes {img => antopie/img}/logos/nextcloud.png | Bin {img => antopie/img}/logos/nextcloud.webp | Bin {img => antopie/img}/logos/opensondage.png | Bin {img => antopie/img}/logos/opensondage.webp | Bin .../img}/logos/origine/bitwarden.png | Bin .../img}/logos/origine/diagrams.jpg | Bin .../img}/logos/origine/element.png | Bin .../img/logos/origine/etherpad-white.png | Bin .../img}/logos/origine/etherpad.png | Bin {img => antopie/img}/logos/origine/gitea.png | Bin .../img}/logos/origine/jirafeau.png | Bin {img => antopie/img}/logos/origine/matrix.png | Bin .../img}/logos/origine/nextcloud.png | Bin .../img}/logos/origine/peertube.png | Bin .../img}/logos/origine/pleroma.png | Bin {img => antopie/img}/logos/origine/plume.png | Bin .../img}/logos/origine/privatebin.png | Bin {img => antopie/img}/logos/origine/qr.png | Bin {img => antopie/img}/logos/origine/riot.png | Bin .../img}/logos/origine/rssbridge.png | Bin .../img}/logos/origine/searx_logo.svg | 0 {img => antopie/img}/logos/peertube.png | Bin {img => antopie/img}/logos/peertube.webp | Bin {img => antopie/img}/logos/pleroma.png | Bin {img => antopie/img}/logos/pleroma.webp | Bin {img => antopie/img}/logos/plume.png | Bin {img => antopie/img}/logos/plume.webp | Bin {img => antopie/img}/logos/privatebin.png | Bin {img => antopie/img}/logos/privatebin.webp | Bin {img => antopie/img}/logos/rssbridge.png | Bin {img => antopie/img}/logos/rssbridge.webp | Bin {img => antopie/img}/logos/searx.png | Bin {img => antopie/img}/logos/searx.webp | Bin {bibli => antopie}/konami.js | 0 {pages => antopie/md}/404.md | 0 {pages => antopie/md}/autres-initiatives.md | 3 - antopie/md/cgu.md | 15 + {pages => antopie/md}/contact.md | 4 +- {pages => antopie/md}/courriel.md | 0 {pages => antopie/md}/details-techniques.md | 15 +- {pages => antopie/md}/index.md | 38 +- antopie/md/manifeste-sur-le-contenu.md | 7 + {pages => antopie/md}/matrix.md | 0 {pages => antopie/md}/nextcloud.md | 0 {pages => antopie/md}/nyan.md | 0 antopie/pages.inc.php | 70 + robots.txt => antopie/robots.txt | 0 bibli/fontello/demo.html.gz | Bin 2226 -> 0 bytes bibli/konami.js.gz | Bin 1627 -> 0 bytes bibli/parsedown-extra-plugin/LICENSE | 20 + .../ParsedownExtraPlugin.php | 579 ++++ bibli/parsedown-extra-plugin/README.md | 317 +++ bibli/parsedown-extra/LICENSE.txt | 20 + .../ParsedownExtra.php | 266 +- bibli/parsedown-extra/README.md | 31 + bibli/parsedown/Parsedown.php | 1230 ++++---- bibli/parsedown/README.md | 69 +- bibli/ubuntu/.gitignore | 2 - bibli/ubuntu/CHANGELOG.md | 35 - bibli/ubuntu/MIT-LICENSE | 21 - bibli/ubuntu/README.md | 41 - bibli/ubuntu/UBUNTU-FONT-LICENSE | 94 - .../fonts/ubuntu-bold-italic-webfont.eot | Bin 357174 -> 0 bytes .../fonts/ubuntu-bold-italic-webfont.svg | 2405 ---------------- .../fonts/ubuntu-bold-italic-webfont.ttf | Bin 356980 -> 0 bytes .../fonts/ubuntu-bold-italic-webfont.woff | Bin 173188 -> 0 bytes .../fonts/ubuntu-bold-italic-webfont.woff2 | Bin 92292 -> 0 bytes bibli/ubuntu/fonts/ubuntu-bold-webfont.eot | Bin 333778 -> 0 bytes bibli/ubuntu/fonts/ubuntu-bold-webfont.svg | 2405 ---------------- bibli/ubuntu/fonts/ubuntu-bold-webfont.ttf | Bin 333612 -> 0 bytes bibli/ubuntu/fonts/ubuntu-bold-webfont.woff | Bin 157908 -> 0 bytes bibli/ubuntu/fonts/ubuntu-bold-webfont.woff2 | Bin 85096 -> 0 bytes .../ubuntu/fonts/ubuntu-condensed-webfont.eot | Bin 350646 -> 0 bytes .../ubuntu/fonts/ubuntu-condensed-webfont.svg | 2401 ---------------- .../ubuntu/fonts/ubuntu-condensed-webfont.ttf | Bin 350444 -> 0 bytes .../fonts/ubuntu-condensed-webfont.woff | Bin 165596 -> 0 bytes .../fonts/ubuntu-condensed-webfont.woff2 | Bin 91220 -> 0 bytes .../fonts/ubuntu-light-italic-webfont.eot | Bin 409806 -> 0 bytes .../fonts/ubuntu-light-italic-webfont.svg | 2405 ---------------- .../fonts/ubuntu-light-italic-webfont.ttf | Bin 409608 -> 0 bytes .../fonts/ubuntu-light-italic-webfont.woff | Bin 193928 -> 0 bytes .../fonts/ubuntu-light-italic-webfont.woff2 | Bin 115004 -> 0 bytes bibli/ubuntu/fonts/ubuntu-light-webfont.eot | Bin 415722 -> 0 bytes bibli/ubuntu/fonts/ubuntu-light-webfont.svg | 2405 ---------------- bibli/ubuntu/fonts/ubuntu-light-webfont.ttf | Bin 415552 -> 0 bytes bibli/ubuntu/fonts/ubuntu-light-webfont.woff | Bin 193996 -> 0 bytes bibli/ubuntu/fonts/ubuntu-light-webfont.woff2 | Bin 116740 -> 0 bytes .../fonts/ubuntu-medium-italic-webfont.eot | Bin 367194 -> 0 bytes .../fonts/ubuntu-medium-italic-webfont.svg | 2405 ---------------- .../fonts/ubuntu-medium-italic-webfont.ttf | Bin 366992 -> 0 bytes .../fonts/ubuntu-medium-italic-webfont.woff | Bin 177532 -> 0 bytes .../fonts/ubuntu-medium-italic-webfont.woff2 | Bin 104220 -> 0 bytes bibli/ubuntu/fonts/ubuntu-medium-webfont.eot | Bin 341498 -> 0 bytes bibli/ubuntu/fonts/ubuntu-medium-webfont.svg | 2405 ---------------- bibli/ubuntu/fonts/ubuntu-medium-webfont.ttf | Bin 341324 -> 0 bytes bibli/ubuntu/fonts/ubuntu-medium-webfont.woff | Bin 160700 -> 0 bytes .../ubuntu/fonts/ubuntu-medium-webfont.woff2 | Bin 90748 -> 0 bytes .../fonts/ubuntu-regular-italic-webfont.eot | Bin 386614 -> 0 bytes .../fonts/ubuntu-regular-italic-webfont.svg | 2405 ---------------- .../fonts/ubuntu-regular-italic-webfont.ttf | Bin 386440 -> 0 bytes .../fonts/ubuntu-regular-italic-webfont.woff | Bin 185764 -> 0 bytes .../fonts/ubuntu-regular-italic-webfont.woff2 | Bin 109156 -> 0 bytes bibli/ubuntu/fonts/ubuntu-regular-webfont.eot | Bin 353986 -> 0 bytes bibli/ubuntu/fonts/ubuntu-regular-webfont.svg | 2405 ---------------- bibli/ubuntu/fonts/ubuntu-regular-webfont.ttf | Bin 353824 -> 0 bytes .../ubuntu/fonts/ubuntu-regular-webfont.woff | Bin 170340 -> 0 bytes .../ubuntu/fonts/ubuntu-regular-webfont.woff2 | Bin 100100 -> 0 bytes .../fonts/ubuntumono-bold-italic-webfont.eot | Bin 216422 -> 0 bytes .../fonts/ubuntumono-bold-italic-webfont.svg | 2465 ----------------- .../fonts/ubuntumono-bold-italic-webfont.ttf | Bin 216208 -> 0 bytes .../fonts/ubuntumono-bold-italic-webfont.woff | Bin 127592 -> 0 bytes .../ubuntumono-bold-italic-webfont.woff2 | Bin 98304 -> 0 bytes .../ubuntu/fonts/ubuntumono-bold-webfont.eot | Bin 191586 -> 0 bytes .../ubuntu/fonts/ubuntumono-bold-webfont.svg | 2465 ----------------- .../ubuntu/fonts/ubuntumono-bold-webfont.ttf | Bin 191400 -> 0 bytes .../ubuntu/fonts/ubuntumono-bold-webfont.woff | Bin 107812 -> 0 bytes .../fonts/ubuntumono-bold-webfont.woff2 | Bin 79496 -> 0 bytes .../ubuntumono-regular-italic-webfont.eot | Bin 210410 -> 0 bytes .../ubuntumono-regular-italic-webfont.svg | 2465 ----------------- .../ubuntumono-regular-italic-webfont.ttf | Bin 210216 -> 0 bytes .../ubuntumono-regular-italic-webfont.woff | Bin 114648 -> 0 bytes .../ubuntumono-regular-italic-webfont.woff2 | Bin 83332 -> 0 bytes .../fonts/ubuntumono-regular-webfont.eot | Bin 205930 -> 0 bytes .../fonts/ubuntumono-regular-webfont.svg | 2465 ----------------- .../fonts/ubuntumono-regular-webfont.ttf | Bin 205748 -> 0 bytes .../fonts/ubuntumono-regular-webfont.woff | Bin 111804 -> 0 bytes .../fonts/ubuntumono-regular-webfont.woff2 | Bin 81568 -> 0 bytes bibli/ubuntu/ubuntu-base.less | 116 - bibli/ubuntu/ubuntu-condensed.less | 18 - bibli/ubuntu/ubuntu-mono.less | 62 - bibli/ubuntu/ubuntu.css | 189 -- bibli/ubuntu/ubuntu.css.gz | Bin 716 -> 0 bytes bibli/ubuntu/ubuntu.less | 8 - bibli/ubuntu/ubuntu.min.css | 2 - bibli/ubuntu/ubuntu.min.css.gz | Bin 564 -> 0 bytes compil.php | 69 +- ..._2i6tnfof8js4gko4s0sc008844ocgow.lesscache | 2 - ...sphp_46a61b00ca9461ec3e4242b744419414.list | 2 - ...7436669e1c2246e13a7acc861143267173c4e5.css | 1 - img/docs/config-thunderbird.png | Bin 18917 -> 0 bytes img/docs/k9-imap-300.png | Bin 15038 -> 0 bytes img/docs/k9-imap.png | Bin 28300 -> 0 bytes img/docs/k9-smtp-300.png | Bin 12668 -> 0 bytes img/docs/k9-smtp.png | Bin 24914 -> 0 bytes img/docs/nextcloud-files-zoom.png | Bin 20712 -> 0 bytes img/docs/nextcloud-files-zoom.webp | Bin 13164 -> 0 bytes img/docs/nextcloud-files.png | Bin 24691 -> 0 bytes img/logos/etherpad-colibris.png | Bin 4372 -> 0 bytes img/logos/etherpad-favicon.png | Bin 2155 -> 0 bytes img/logos/etherpad.webp | Bin 1410 -> 0 bytes img/logos/gitea.webp | Bin 3060 -> 0 bytes img/logos/matrix.png | Bin 5293 -> 0 bytes img/logos/matrix.webp | Bin 398 -> 0 bytes img/logos/onion.svg | 6 - inc/debut.php | 113 +- inc/footer.php | 22 +- inc/pages.php | 67 - pages/cgu.md | 22 - pages/manifeste-sur-le-contenu.md | 20 - style.less | 233 +- 218 files changed, 2372 insertions(+), 33013 deletions(-) rename clr.php => antopie/clr.php (97%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/LICENSE.txt (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/README.txt (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/config.json (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/css/animation.css (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/css/fontello-codes.css (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/css/fontello-embedded.css (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/css/fontello-ie7-codes.css (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/css/fontello-ie7.css (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/css/fontello.css (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/css/fontello.min.css (100%) rename {bibli => antopie}/fontello/demo.html (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/font/fontello.eot (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/font/fontello.svg (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/font/fontello.ttf (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/font/fontello.woff (100%) mode change 100755 => 100644 rename {bibli => antopie}/fontello/font/fontello.woff2 (100%) mode change 100755 => 100644 rename {bibli => antopie}/gomez/gomez.css (100%) mode change 100755 => 100644 rename {bibli => antopie}/gomez/gomez.min.css (100%) mode change 100755 => 100644 rename {img => antopie/img}/404fourmie.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/antopiev5-350-fs8.png (100%) rename {img => antopie/img}/antopiev5-350.png (100%) rename {img => antopie/img}/antopiev5-350.webp (100%) rename {img => antopie/img}/antopiev5-400.png (100%) rename {img => antopie/img}/antopiev5-500.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/antopiev5-500.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/antopiev5.svg (100%) mode change 100755 => 100644 rename {img => antopie/img}/ban.png (100%) rename {img => antopie/img}/icons/128.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/128.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/16.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/16.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/256.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/256.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/32.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/32.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/512.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/512.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/64.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/icons/64.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/bitwarden.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/bitwarden.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/diagrams.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/diagrams.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/element.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/element.webp (100%) mode change 100755 => 100644 create mode 100644 antopie/img/logos/etherpad.png create mode 100644 antopie/img/logos/etherpad.webp rename {img => antopie/img}/logos/gitea.png (100%) mode change 100755 => 100644 create mode 100644 antopie/img/logos/gitea.webp rename {img => antopie/img}/logos/jirafeau.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/jirafeau.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/libreqr.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/libreqr.webp (100%) mode change 100755 => 100644 create mode 100644 antopie/img/logos/matrix.png create mode 100644 antopie/img/logos/matrix.webp rename {img => antopie/img}/logos/nextcloud.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/nextcloud.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/opensondage.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/opensondage.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/bitwarden.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/diagrams.jpg (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/element.png (100%) mode change 100755 => 100644 rename img/logos/etherpad.png => antopie/img/logos/origine/etherpad-white.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/etherpad.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/gitea.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/jirafeau.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/matrix.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/nextcloud.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/peertube.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/pleroma.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/plume.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/privatebin.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/qr.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/riot.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/rssbridge.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/origine/searx_logo.svg (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/peertube.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/peertube.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/pleroma.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/pleroma.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/plume.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/plume.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/privatebin.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/privatebin.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/rssbridge.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/rssbridge.webp (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/searx.png (100%) mode change 100755 => 100644 rename {img => antopie/img}/logos/searx.webp (100%) mode change 100755 => 100644 rename {bibli => antopie}/konami.js (100%) mode change 100755 => 100644 rename {pages => antopie/md}/404.md (100%) mode change 100755 => 100644 rename {pages => antopie/md}/autres-initiatives.md (93%) mode change 100755 => 100644 create mode 100644 antopie/md/cgu.md rename {pages => antopie/md}/contact.md (75%) mode change 100755 => 100644 rename {pages => antopie/md}/courriel.md (100%) mode change 100755 => 100644 rename {pages => antopie/md}/details-techniques.md (70%) mode change 100755 => 100644 rename {pages => antopie/md}/index.md (94%) mode change 100755 => 100644 create mode 100644 antopie/md/manifeste-sur-le-contenu.md rename {pages => antopie/md}/matrix.md (100%) mode change 100755 => 100644 rename {pages => antopie/md}/nextcloud.md (100%) mode change 100755 => 100644 rename {pages => antopie/md}/nyan.md (100%) create mode 100644 antopie/pages.inc.php rename robots.txt => antopie/robots.txt (100%) mode change 100755 => 100644 delete mode 100644 bibli/fontello/demo.html.gz delete mode 100644 bibli/konami.js.gz create mode 100644 bibli/parsedown-extra-plugin/LICENSE create mode 100644 bibli/parsedown-extra-plugin/ParsedownExtraPlugin.php create mode 100644 bibli/parsedown-extra-plugin/README.md create mode 100644 bibli/parsedown-extra/LICENSE.txt rename bibli/{parsedown => parsedown-extra}/ParsedownExtra.php (59%) mode change 100755 => 100644 create mode 100644 bibli/parsedown-extra/README.md delete mode 100755 bibli/ubuntu/.gitignore delete mode 100755 bibli/ubuntu/CHANGELOG.md delete mode 100755 bibli/ubuntu/MIT-LICENSE delete mode 100755 bibli/ubuntu/README.md delete mode 100755 bibli/ubuntu/UBUNTU-FONT-LICENSE delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-italic-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-italic-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-italic-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-italic-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-italic-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-bold-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntu-condensed-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-condensed-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-condensed-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-condensed-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-condensed-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-italic-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-italic-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-italic-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-italic-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-italic-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-light-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-italic-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-italic-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-italic-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-italic-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-italic-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-medium-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-italic-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-italic-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-italic-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-italic-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-italic-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntu-regular-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-italic-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-italic-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-italic-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-italic-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-italic-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntumono-bold-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-italic-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-italic-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-italic-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-italic-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-italic-webfont.woff2 delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-webfont.eot delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-webfont.svg delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-webfont.ttf delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-webfont.woff delete mode 100755 bibli/ubuntu/fonts/ubuntumono-regular-webfont.woff2 delete mode 100755 bibli/ubuntu/ubuntu-base.less delete mode 100755 bibli/ubuntu/ubuntu-condensed.less delete mode 100755 bibli/ubuntu/ubuntu-mono.less delete mode 100755 bibli/ubuntu/ubuntu.css delete mode 100644 bibli/ubuntu/ubuntu.css.gz delete mode 100755 bibli/ubuntu/ubuntu.less delete mode 100755 bibli/ubuntu/ubuntu.min.css delete mode 100644 bibli/ubuntu/ubuntu.min.css.gz delete mode 100644 css/lessphp_2i6tnfof8js4gko4s0sc008844ocgow.lesscache delete mode 100644 css/lessphp_46a61b00ca9461ec3e4242b744419414.list delete mode 100644 css/lessphp_5a7436669e1c2246e13a7acc861143267173c4e5.css delete mode 100755 img/docs/config-thunderbird.png delete mode 100755 img/docs/k9-imap-300.png delete mode 100755 img/docs/k9-imap.png delete mode 100755 img/docs/k9-smtp-300.png delete mode 100755 img/docs/k9-smtp.png delete mode 100755 img/docs/nextcloud-files-zoom.png delete mode 100755 img/docs/nextcloud-files-zoom.webp delete mode 100755 img/docs/nextcloud-files.png delete mode 100755 img/logos/etherpad-colibris.png delete mode 100755 img/logos/etherpad-favicon.png delete mode 100755 img/logos/etherpad.webp delete mode 100755 img/logos/gitea.webp delete mode 100755 img/logos/matrix.png delete mode 100755 img/logos/matrix.webp delete mode 100755 img/logos/onion.svg delete mode 100755 inc/pages.php delete mode 100755 pages/cgu.md delete mode 100755 pages/manifeste-sur-le-contenu.md diff --git a/.gitignore b/.gitignore index 4fb08a4..53d450b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ -*.html *.gz temp/* -temp2/* -!LICENSE.html mdp.php -style.min.css +antopie/css +antopie/*.html +docs diff --git a/README.md b/README.md index 9aef747..2dc556e 100755 --- a/README.md +++ b/README.md @@ -1,42 +1,52 @@ # Présentation -Ceci est le code source du [site web d'Antopie](https://antopie.org). -C'est un générateur de sites statiques en PHP. +Ceci est le code source du générateur de sites statiques qui créé le [site web d'Antopie](https://antopie.org). # Utilisation -Placer les pages dans `pages/.md`. Le format est principalement du Markdown Extra mais il est aussi possible de rajouter de l'HTML et du PHP. Elles sont ensuite transformées par `compil.php` en pages HTML statiques. +Placer les pages dans `/md/.md`. Le format est principalement du Markdown Extra mais il est aussi possible de rajouter de l'HTML et du PHP. Elles sont ensuite transformées par `compil.php` en pages HTML statiques, placées dans `/.html` `compil.php` prend 2 arguments : * `pw`, mot de passe définit dans mdp.php +* `site`, nom du dossier du site * `as`, qui dépend de l'endroit où sera déployé le site Pour déployer en DNS en liant vers `page`, utiliser `as=dns`. Pour déployer en Onion en liant vert `page`, utiliser `as=onion`. Pour déployer en DNS en liant vert `page.html`, ignorer `as`. -Exemple : http://tructructruc.onion/web/compil.php?as=onion&pw=change-moi +Exemple : http://tructructruc.onion/web/compil.php?as=onion&pw=change-moi&site=antopie -Les droits d'écriture sont requis sur l'ensemble du dossier par l'user qui exécute PHP. +Les droits d'écriture sont requis sur /css et temp/ par l'user qui exécute PHP. + +`compil.php` va chercher à utiliser [static-compress](https://github.com/neosmart/static-compress) dans `/usr/local/bin/static-compress` pour compresser les fichiers CSS et HTML créés. + +``` +$ cargo install static-compress +$ sudo mv ~/.cargo/bin/static-compress /usr/local/bin/ +``` # Bibliothèques utilisées -Le dossier bibli contient les dépendances incluses dans ce site. +Le dossier `bibli` contient les dépendances incluses dans le générateur de sites : -| Nom | Description | Source | -| --------------- | --------------------------------- | ------------------------------------------- | -| ubuntu | La police Ubuntu | https://design.ubuntu.com/font | -| fontello | Pack d'icônes | http://fontello.com | -| lesserphp | Compilateur Less en PHP | https://github.com/MarcusSchwarz/lesserphp | -| konami-js | Le code de Konami | https://snaptortoise.github.io/konami-js | -| gomez css | Gomez du jeu vidéo Fez en CSS | https://github.com/maisano/gomez-css | -| static-compress | Compression de fichiers statiques | https://github.com/neosmart/static-compress | -| parsedown | Compilateur Markdown en PHP | https://parsedown.org | +| Nom | Description | Source | +| --------- | --------------------------- | ------------------------------------------ | +| lesserphp | Compilateur Less en PHP | https://github.com/MarcusSchwarz/lesserphp | +| parsedown | Compilateur Markdown en PHP | https://parsedown.org | + +Il y a aussi quelques dépendances spécifiques au site d'Antopie : + +| Nom | Description | Source | +| --------- | ------------------- | ---------------------------------------- | +| fontello | Pack d'icônes | http://fontello.com | +| konami-js | Le code de Konami | https://snaptortoise.github.io/konami-js | +| gomez css | Gomez de Fez en CSS | https://github.com/maisano/gomez-css | # Licence -Le site web d'Antopie est un logiciel libre ; vous pouvez le diffuser et le modifier suivant les termes de la GNU Affero General Public License telle que publiée par la Free Software Foundation ; soit la version 3 de cette licence, soit (à votre convenance) une version ultérieure. +Le générateur de sites web d'Antopie est un logiciel libre ; vous pouvez le diffuser et le modifier suivant les termes de la GNU Affero General Public License telle que publiée par la Free Software Foundation ; soit la version 3 de cette licence, soit (à votre convenance) une version ultérieure. -Le site web d'Antopie est diffusé dans l’espoir qu’il sera utile, mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de COMMERCIALISATION ou d’ADÉQUATION À UN USAGE PARTICULIER. Voyez la GNU Affero General Public License pour plus de détails. +Le générateur de sites web d'Antopie est diffusé dans l’espoir qu’il sera utile, mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de COMMERCIALISATION ou d’ADÉQUATION À UN USAGE PARTICULIER. Voyez la GNU Affero General Public License pour plus de détails. Vous devriez avoir reçu une copie de la GNU Affero General Public License avec ce code. Sinon, consultez https://www.gnu.org/licenses/ diff --git a/clr.php b/antopie/clr.php old mode 100755 new mode 100644 similarity index 97% rename from clr.php rename to antopie/clr.php index 0c8b9d4..4b7eff2 --- a/clr.php +++ b/antopie/clr.php @@ -108,7 +108,7 @@ $bhex = sprintf("%02X",round($b)); $rgbhex = $rhex . $ghex . $bhex; ?> - + @@ -128,7 +128,7 @@ $rgbhex = $rhex . $ghex . $bhex; } #txt { - font-family: "Ubuntu", sans-serif; + font-family: system-ui, sans-serif; font-size: 50px; color: ; padding: 10px; diff --git a/bibli/fontello/LICENSE.txt b/antopie/fontello/LICENSE.txt old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/LICENSE.txt rename to antopie/fontello/LICENSE.txt diff --git a/bibli/fontello/README.txt b/antopie/fontello/README.txt old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/README.txt rename to antopie/fontello/README.txt diff --git a/bibli/fontello/config.json b/antopie/fontello/config.json old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/config.json rename to antopie/fontello/config.json diff --git a/bibli/fontello/css/animation.css b/antopie/fontello/css/animation.css old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/css/animation.css rename to antopie/fontello/css/animation.css diff --git a/bibli/fontello/css/fontello-codes.css b/antopie/fontello/css/fontello-codes.css old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/css/fontello-codes.css rename to antopie/fontello/css/fontello-codes.css diff --git a/bibli/fontello/css/fontello-embedded.css b/antopie/fontello/css/fontello-embedded.css old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/css/fontello-embedded.css rename to antopie/fontello/css/fontello-embedded.css diff --git a/bibli/fontello/css/fontello-ie7-codes.css b/antopie/fontello/css/fontello-ie7-codes.css old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/css/fontello-ie7-codes.css rename to antopie/fontello/css/fontello-ie7-codes.css diff --git a/bibli/fontello/css/fontello-ie7.css b/antopie/fontello/css/fontello-ie7.css old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/css/fontello-ie7.css rename to antopie/fontello/css/fontello-ie7.css diff --git a/bibli/fontello/css/fontello.css b/antopie/fontello/css/fontello.css old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/css/fontello.css rename to antopie/fontello/css/fontello.css diff --git a/bibli/fontello/css/fontello.min.css b/antopie/fontello/css/fontello.min.css similarity index 100% rename from bibli/fontello/css/fontello.min.css rename to antopie/fontello/css/fontello.min.css diff --git a/bibli/fontello/demo.html b/antopie/fontello/demo.html old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/demo.html rename to antopie/fontello/demo.html diff --git a/bibli/fontello/font/fontello.eot b/antopie/fontello/font/fontello.eot old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/font/fontello.eot rename to antopie/fontello/font/fontello.eot diff --git a/bibli/fontello/font/fontello.svg b/antopie/fontello/font/fontello.svg old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/font/fontello.svg rename to antopie/fontello/font/fontello.svg diff --git a/bibli/fontello/font/fontello.ttf b/antopie/fontello/font/fontello.ttf old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/font/fontello.ttf rename to antopie/fontello/font/fontello.ttf diff --git a/bibli/fontello/font/fontello.woff b/antopie/fontello/font/fontello.woff old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/font/fontello.woff rename to antopie/fontello/font/fontello.woff diff --git a/bibli/fontello/font/fontello.woff2 b/antopie/fontello/font/fontello.woff2 old mode 100755 new mode 100644 similarity index 100% rename from bibli/fontello/font/fontello.woff2 rename to antopie/fontello/font/fontello.woff2 diff --git a/bibli/gomez/gomez.css b/antopie/gomez/gomez.css old mode 100755 new mode 100644 similarity index 100% rename from bibli/gomez/gomez.css rename to antopie/gomez/gomez.css diff --git a/bibli/gomez/gomez.min.css b/antopie/gomez/gomez.min.css old mode 100755 new mode 100644 similarity index 100% rename from bibli/gomez/gomez.min.css rename to antopie/gomez/gomez.min.css diff --git a/img/404fourmie.png b/antopie/img/404fourmie.png old mode 100755 new mode 100644 similarity index 100% rename from img/404fourmie.png rename to antopie/img/404fourmie.png diff --git a/img/antopiev5-350-fs8.png b/antopie/img/antopiev5-350-fs8.png similarity index 100% rename from img/antopiev5-350-fs8.png rename to antopie/img/antopiev5-350-fs8.png diff --git a/img/antopiev5-350.png b/antopie/img/antopiev5-350.png similarity index 100% rename from img/antopiev5-350.png rename to antopie/img/antopiev5-350.png diff --git a/img/antopiev5-350.webp b/antopie/img/antopiev5-350.webp similarity index 100% rename from img/antopiev5-350.webp rename to antopie/img/antopiev5-350.webp diff --git a/img/antopiev5-400.png b/antopie/img/antopiev5-400.png similarity index 100% rename from img/antopiev5-400.png rename to antopie/img/antopiev5-400.png diff --git a/img/antopiev5-500.png b/antopie/img/antopiev5-500.png old mode 100755 new mode 100644 similarity index 100% rename from img/antopiev5-500.png rename to antopie/img/antopiev5-500.png diff --git a/img/antopiev5-500.webp b/antopie/img/antopiev5-500.webp old mode 100755 new mode 100644 similarity index 100% rename from img/antopiev5-500.webp rename to antopie/img/antopiev5-500.webp diff --git a/img/antopiev5.svg b/antopie/img/antopiev5.svg old mode 100755 new mode 100644 similarity index 100% rename from img/antopiev5.svg rename to antopie/img/antopiev5.svg diff --git a/img/ban.png b/antopie/img/ban.png similarity index 100% rename from img/ban.png rename to antopie/img/ban.png diff --git a/img/icons/128.png b/antopie/img/icons/128.png old mode 100755 new mode 100644 similarity index 100% rename from img/icons/128.png rename to antopie/img/icons/128.png diff --git a/img/icons/128.webp b/antopie/img/icons/128.webp old mode 100755 new mode 100644 similarity index 100% rename from img/icons/128.webp rename to antopie/img/icons/128.webp diff --git a/img/icons/16.png b/antopie/img/icons/16.png old mode 100755 new mode 100644 similarity index 100% rename from img/icons/16.png rename to antopie/img/icons/16.png diff --git a/img/icons/16.webp b/antopie/img/icons/16.webp old mode 100755 new mode 100644 similarity index 100% rename from img/icons/16.webp rename to antopie/img/icons/16.webp diff --git a/img/icons/256.png b/antopie/img/icons/256.png old mode 100755 new mode 100644 similarity index 100% rename from img/icons/256.png rename to antopie/img/icons/256.png diff --git a/img/icons/256.webp b/antopie/img/icons/256.webp old mode 100755 new mode 100644 similarity index 100% rename from img/icons/256.webp rename to antopie/img/icons/256.webp diff --git a/img/icons/32.png b/antopie/img/icons/32.png old mode 100755 new mode 100644 similarity index 100% rename from img/icons/32.png rename to antopie/img/icons/32.png diff --git a/img/icons/32.webp b/antopie/img/icons/32.webp old mode 100755 new mode 100644 similarity index 100% rename from img/icons/32.webp rename to antopie/img/icons/32.webp diff --git a/img/icons/512.png b/antopie/img/icons/512.png old mode 100755 new mode 100644 similarity index 100% rename from img/icons/512.png rename to antopie/img/icons/512.png diff --git a/img/icons/512.webp b/antopie/img/icons/512.webp old mode 100755 new mode 100644 similarity index 100% rename from img/icons/512.webp rename to antopie/img/icons/512.webp diff --git a/img/icons/64.png b/antopie/img/icons/64.png old mode 100755 new mode 100644 similarity index 100% rename from img/icons/64.png rename to antopie/img/icons/64.png diff --git a/img/icons/64.webp b/antopie/img/icons/64.webp old mode 100755 new mode 100644 similarity index 100% rename from img/icons/64.webp rename to antopie/img/icons/64.webp diff --git a/img/logos/bitwarden.png b/antopie/img/logos/bitwarden.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/bitwarden.png rename to antopie/img/logos/bitwarden.png diff --git a/img/logos/bitwarden.webp b/antopie/img/logos/bitwarden.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/bitwarden.webp rename to antopie/img/logos/bitwarden.webp diff --git a/img/logos/diagrams.png b/antopie/img/logos/diagrams.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/diagrams.png rename to antopie/img/logos/diagrams.png diff --git a/img/logos/diagrams.webp b/antopie/img/logos/diagrams.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/diagrams.webp rename to antopie/img/logos/diagrams.webp diff --git a/img/logos/element.png b/antopie/img/logos/element.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/element.png rename to antopie/img/logos/element.png diff --git a/img/logos/element.webp b/antopie/img/logos/element.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/element.webp rename to antopie/img/logos/element.webp diff --git a/antopie/img/logos/etherpad.png b/antopie/img/logos/etherpad.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc4e01f11dd7fb775143abaca1642faa675f9aa GIT binary patch literal 2895 zcmV-V3$XNwP)YG000XXNklj?=0APo_Xf{&i=jcS>ElO8mb)3 ztT%8Nun*85=;pGQ0<(c9f%_#rTg|c5R1xGJfC0TrsP+-?LrD*I2(V_hF7OyIut2e8 zz-k5he;wFO(!bj+STpMrrez%d4%`adC~2N6-vu}t7zy+Na#6irlHP82V9jhdU~-f^ z2iRTG#~Isr78n#IZzgGOy8&xvn*(n}$p=Y#qy=pa0UmcrjX)Pk%i0`ln2JlH{XF{qX`6sGvu%MjUDDSpeP&Cl2fpW$&N8#kZ9&;n zT>KqLpHzt%8y9`|YiUEZWenoSE`D^z*{~zMaV3zvFu#W}B>%V9l&Y zq+$WMeO0CGm3hRwo~sntpxHPwPxkLuHOgLAAaCDb0qFQ(gUa>rGDN@*McGR;lsPC^ z=sPahU>-TxC7oZO_(dI^vRAqIT;S;_zuv_UsrK5gR5?D0`QSzaVK+0eN=)h`Rfl+4>y< zteI^C?BJ3{7Lj!7Bs~ng>eBA-D3tZKn`gpWE!5u@;r}mO+V16A*{cpV_(6HMgVPEK z?@ggEfTRaVoV}XD)9szI6J30Qq^VJU+BELt;-|ZKzu<|}{=k~q4!{O^j+9Jb!`k)! zRMXolWuJ2K2PMtO*k9l1+gk;Dn^|qU0&8adXzp6OznNW|Qna>6JDq^Dyy^ycu~J|w z;o+787N)R*03QP*nv7Rwb_(#DJk$Gh;DVGNq!CzC(r4w4wGvZg=Ll$nTbtd0Tg>b< zU>J$TnQBpzMjij;BTK3-Mz4O#*j5enI%8_?-Eu`vDzxztsCu3E=zNfi(A$80wk}EMy z;mX#g?7f}`E}@>E_8(*c8>stLmvoq!ZP_Yd&FpyhSubfw3(xfrU3`rqOW>twysF+$Un)nK*;Z8rYi6Szbv~DLSc(0`mUq7vHz-2g=SgmKHHBYS zo3aaYqdo28|Il{5jE-_o7A6v}!P%S|oZ z#XCim^_x!jjBWhH#SaZe?#h8Rv&(@x_X`iN5ZF2HJJXa5+6>Qr-cV`E4v)YuFtdSW zf~^niU`b#@7!@fBHmC?#GrP`HHH5W+=gsU1Gy6&l!8Sx-duE(v-GP&$iy-Kz22=JAwCTZZHEFnB~4tu1E(rcrApao)sJX7;L? z5Whg$?R{nwvQDg@$Cy&`l}*e#6PtjX-BfpJ&;iu8+PSE&{O5%*L5n zBZ=R{S_O*xjq6Mji+c?8ZeZiUhu~_4;9oFVN7BN4=N@73 zK0KBJvOn-E;GmQN{|C5K(#4TtZX+|hAkVJ-5^zesTh)^83&yQSfFW+&cbeI-u*{YM z&xPgJ#i@>lq*6BMWZ(B&yrjom{;t4pNjF2x1ul|weUT~uMBuszqS}b8`$4FG5{a!S z7byV-OPUz?_2<1pK+*?kl)WU9Gaq-;V;t$Wm^Xo6O1dNCcs)xuvJ{|!%Ga6M7+@+Z z%_B9y1T(uYFhNUQKiA{@CTjwqW;dyT1A$LSEa_?I-rvHSnNp%!XDTb7WH?gNJuOv> z1{Kl8DNFGz_yZ(2=81J6yEy+H`3f(2(Tas^AELPaPI;eh0j5fo@*h< z0VLLdJyNp&44f)yR%T6wYxo%8cPXOVbYPgIS4$Y=KUitN+EvmEC4$_JfdNZKhY>)O&+gZc$wdz~n2G0;!a8+qz|;_7Ul zwyr|C^}_i-G$s3=z`l9BYbp=c4Qfp*u7l2a)ULpFvVYC^2_Z`WWQ=pH0W@Lh`(J)FeVzN&9mw92bJX7)|s t0shz9{Mc3biKH`tp8?Y)4W^aDe*p_}-?^eK>iYly002ovPDHLkV1go)jt2k$ literal 0 HcmV?d00001 diff --git a/antopie/img/logos/etherpad.webp b/antopie/img/logos/etherpad.webp new file mode 100644 index 0000000000000000000000000000000000000000..197b9f17a161fbae7dca97e460a65ac4404b001a GIT binary patch literal 1398 zcmV-+1&R7nNk&F)1pok7MM6+kP&iCt1pojqI=~nZmB@}H$+ea1zXxgW9({xVc|f5> zgaiNp%SP&Owr$(CZQHhO+qTWOZ5wCX95VrPIT5KIIReVHPb#R*!)f^4QTwc)gvQ&p zq2QPD5A9=!0;?rCIA#VhKR@8A@H~V{m0zgmpjSYJ^AX>wn9XrU)lY;E_+N$X1)U{W zL4n_Ap~5-m$yefUBVN&%E0t9!?s8GS&ZUr*yqgGDsID0<6{34ImgTt^qM~$9MeP77 z85(#U7_Wc~--5SbW?y!dO=Nq-s$1xmvpp(pdbT&;3eO$<%F3Rutx9i3mnB9xW6mxp;(ehr(2L-qSnM1Z0`>=rcU%KbWL;{1B2AsYT%8=gfR5zaHWU z$keQYmu7}R!9zZRbmdyzB76tJv&xSrfV*gQ#B)aE2Dl`cDtN>Xpise9`A+iBhV{06 zyzd88c`%Aw{oknm@gY;8x{W$eC}&W(+fk!4G57sLxP^dWUjF;4*OqJ%?47a;HUTXYAL{%UqTIW9osF zek~e%^eQ|T$u5{VuCe~xD0X{e4an3*UrO@{Ev4982|vKH!gh)BYEEh|g=R{{fw5R_ zU*f!SO6i!ck}I!F9${5sx=*`uuCn=MW)S^pg()9Sxh`QdLvhJpBpdFvFM5OmD;!le75E8V z71+$o5BaUCW;npLT5!7xrj^N`8Jp$X2{<4gvyIwZmDAs?RFSr@Qk4?;|O2Sg?<#XD+Z;j4SfT(DEK{> z`dv&enLiSi$f{YKi@L_&VtCCAclb*2kaApQo!AxTirzJ}EdeY0nfc%939@q*i`EsC z{Ao4zcUA-%fmO*Vt3~Y`C7)W|A~gHNys2`+>V%D=a)!L;t?m<_<2;;I`AGPXZ6FHA zez?>6mE4?H*Qy-J0eeOE2!1zPeW5g$BJ-h@*`C89wTHuOt2y#>IcX$5(VEyv-1>Ftid8@dYaa9Cn##Ad5>3Je5r&TT~4Rqlh zH{q*bDgT*g{$bkc`@ixMrs^AYhLJ)fbAh3CAfWJey( Ey%iz1H2?qr literal 0 HcmV?d00001 diff --git a/img/logos/gitea.png b/antopie/img/logos/gitea.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/gitea.png rename to antopie/img/logos/gitea.png diff --git a/antopie/img/logos/gitea.webp b/antopie/img/logos/gitea.webp new file mode 100644 index 0000000000000000000000000000000000000000..4c987cabfbbac7ba18ea625848bd0718ec15f2f3 GIT binary patch literal 2900 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 y+4;5)ke25fuvp-Tv2QQI*yPfp(O$Z> zTjo%dvEH+rx3*Q5)t!IS^YG^R<=d7$`(5+qi3^rz)x2t}W zSy27?oL)`e%)}>;s1=sMeqJ`S#Zmk zZZ>y4c9}hbQ-}Q+)65x{#LDYgVpR5vFML>E^Q@ft8~c^J4ENj}{x&opxYUqoz}%y> ze@gA<-Pf6SpIx(*;g8P)jicsuTdaI~>&kZgUby0Y|CMt;-`NT7;MdVk)Uj=lJ-}N2 z{@$|m-rd(3r!zggyZn!poHVnFmbE z-_JGsbMU}ZzGvT-M81D_xuGf{Q1ZB?sKo@cKgz0poU(uA(i?b1C0=Wl%THGO<0$&V za#xeOYWC%tiC-lx1m_B!V|d2AyYcwkH@_Jzcyu~{o$HI^&r^G2eEe><*2fiL*6EF= zY1bkixK_$xCra-@JQxboS3H&^gcade?H+{VQ9{ z*W0mOv-P~OePdMpud9djpT-`(V7_xwo&S;R>)QVBZAp$|dTpor=JuVdABt6FChLA~ zp0XuBYkk4)lotJ(huVk4_bFke{%leSe%JOiZuQUZKWW>N=3kuliSd_Of<3$`NLwryv&?Z~!mn~~pM6W|7vDh67qv{S+#z&e8|m8FpVO^sfR z476?yUlk!yWy@C}HwHxR5M#nqAaAzxu)YsTjOdc!g{pEdU5RCes>_j2Qh@B=t226e*O% uGeW1Nh!SBwHJ;Zj^qU}C?5A{>LY4j0^rcj>6lte~?fWQ|E=ByW^acPNI=24+ literal 0 HcmV?d00001 diff --git a/img/logos/nextcloud.png b/antopie/img/logos/nextcloud.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/nextcloud.png rename to antopie/img/logos/nextcloud.png diff --git a/img/logos/nextcloud.webp b/antopie/img/logos/nextcloud.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/nextcloud.webp rename to antopie/img/logos/nextcloud.webp diff --git a/img/logos/opensondage.png b/antopie/img/logos/opensondage.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/opensondage.png rename to antopie/img/logos/opensondage.png diff --git a/img/logos/opensondage.webp b/antopie/img/logos/opensondage.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/opensondage.webp rename to antopie/img/logos/opensondage.webp diff --git a/img/logos/origine/bitwarden.png b/antopie/img/logos/origine/bitwarden.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/bitwarden.png rename to antopie/img/logos/origine/bitwarden.png diff --git a/img/logos/origine/diagrams.jpg b/antopie/img/logos/origine/diagrams.jpg old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/diagrams.jpg rename to antopie/img/logos/origine/diagrams.jpg diff --git a/img/logos/origine/element.png b/antopie/img/logos/origine/element.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/element.png rename to antopie/img/logos/origine/element.png diff --git a/img/logos/etherpad.png b/antopie/img/logos/origine/etherpad-white.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/etherpad.png rename to antopie/img/logos/origine/etherpad-white.png diff --git a/img/logos/origine/etherpad.png b/antopie/img/logos/origine/etherpad.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/etherpad.png rename to antopie/img/logos/origine/etherpad.png diff --git a/img/logos/origine/gitea.png b/antopie/img/logos/origine/gitea.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/gitea.png rename to antopie/img/logos/origine/gitea.png diff --git a/img/logos/origine/jirafeau.png b/antopie/img/logos/origine/jirafeau.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/jirafeau.png rename to antopie/img/logos/origine/jirafeau.png diff --git a/img/logos/origine/matrix.png b/antopie/img/logos/origine/matrix.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/matrix.png rename to antopie/img/logos/origine/matrix.png diff --git a/img/logos/origine/nextcloud.png b/antopie/img/logos/origine/nextcloud.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/nextcloud.png rename to antopie/img/logos/origine/nextcloud.png diff --git a/img/logos/origine/peertube.png b/antopie/img/logos/origine/peertube.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/peertube.png rename to antopie/img/logos/origine/peertube.png diff --git a/img/logos/origine/pleroma.png b/antopie/img/logos/origine/pleroma.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/pleroma.png rename to antopie/img/logos/origine/pleroma.png diff --git a/img/logos/origine/plume.png b/antopie/img/logos/origine/plume.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/plume.png rename to antopie/img/logos/origine/plume.png diff --git a/img/logos/origine/privatebin.png b/antopie/img/logos/origine/privatebin.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/privatebin.png rename to antopie/img/logos/origine/privatebin.png diff --git a/img/logos/origine/qr.png b/antopie/img/logos/origine/qr.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/qr.png rename to antopie/img/logos/origine/qr.png diff --git a/img/logos/origine/riot.png b/antopie/img/logos/origine/riot.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/riot.png rename to antopie/img/logos/origine/riot.png diff --git a/img/logos/origine/rssbridge.png b/antopie/img/logos/origine/rssbridge.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/rssbridge.png rename to antopie/img/logos/origine/rssbridge.png diff --git a/img/logos/origine/searx_logo.svg b/antopie/img/logos/origine/searx_logo.svg old mode 100755 new mode 100644 similarity index 100% rename from img/logos/origine/searx_logo.svg rename to antopie/img/logos/origine/searx_logo.svg diff --git a/img/logos/peertube.png b/antopie/img/logos/peertube.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/peertube.png rename to antopie/img/logos/peertube.png diff --git a/img/logos/peertube.webp b/antopie/img/logos/peertube.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/peertube.webp rename to antopie/img/logos/peertube.webp diff --git a/img/logos/pleroma.png b/antopie/img/logos/pleroma.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/pleroma.png rename to antopie/img/logos/pleroma.png diff --git a/img/logos/pleroma.webp b/antopie/img/logos/pleroma.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/pleroma.webp rename to antopie/img/logos/pleroma.webp diff --git a/img/logos/plume.png b/antopie/img/logos/plume.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/plume.png rename to antopie/img/logos/plume.png diff --git a/img/logos/plume.webp b/antopie/img/logos/plume.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/plume.webp rename to antopie/img/logos/plume.webp diff --git a/img/logos/privatebin.png b/antopie/img/logos/privatebin.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/privatebin.png rename to antopie/img/logos/privatebin.png diff --git a/img/logos/privatebin.webp b/antopie/img/logos/privatebin.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/privatebin.webp rename to antopie/img/logos/privatebin.webp diff --git a/img/logos/rssbridge.png b/antopie/img/logos/rssbridge.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/rssbridge.png rename to antopie/img/logos/rssbridge.png diff --git a/img/logos/rssbridge.webp b/antopie/img/logos/rssbridge.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/rssbridge.webp rename to antopie/img/logos/rssbridge.webp diff --git a/img/logos/searx.png b/antopie/img/logos/searx.png old mode 100755 new mode 100644 similarity index 100% rename from img/logos/searx.png rename to antopie/img/logos/searx.png diff --git a/img/logos/searx.webp b/antopie/img/logos/searx.webp old mode 100755 new mode 100644 similarity index 100% rename from img/logos/searx.webp rename to antopie/img/logos/searx.webp diff --git a/bibli/konami.js b/antopie/konami.js old mode 100755 new mode 100644 similarity index 100% rename from bibli/konami.js rename to antopie/konami.js diff --git a/pages/404.md b/antopie/md/404.md old mode 100755 new mode 100644 similarity index 100% rename from pages/404.md rename to antopie/md/404.md diff --git a/pages/autres-initiatives.md b/antopie/md/autres-initiatives.md old mode 100755 new mode 100644 similarity index 93% rename from pages/autres-initiatives.md rename to antopie/md/autres-initiatives.md index 06da894..fdecf5c --- a/pages/autres-initiatives.md +++ b/antopie/md/autres-initiatives.md @@ -5,9 +5,6 @@ Cette page liste d'autres initiative de décentraliser et décommercialiser Inte [**42l**](https://42l.fr/) : Services originaux, CHATONS, Paris -[**DryCat**](https://www.drycat.fr/) -: Hetzner, CHATONS, Nantes - [**TeDomum**](https://tedomum.net/) : CHATONS diff --git a/antopie/md/cgu.md b/antopie/md/cgu.md new file mode 100644 index 0000000..ab903aa --- /dev/null +++ b/antopie/md/cgu.md @@ -0,0 +1,15 @@ + +## Préambule + +Antopie est un ensemble de services Internet créé en France par une seule personne y résidant. L'utilisation de ces services oblige la pleine acceptation des présentes conditions. + +* Celles-ci peuvent être mises à jour et modifiées à tout moment. +* Seule leur dernière version est applicable. + +## Conditions + +* Antopie est soumise à toutes les restrictions et obligations de la loi française. Cela prévaut partout. +* Antopie se dégage de toutes responsabilités. Les services peuvent être à tout moment modifiés ou interrompus, temporairement ou définitivement, avec ou sans préavis. +* L'utilisation d'Antopie pour une communication publique est régie par le manifeste sur le contenu d'Antopie. +* Antopie est ouverte à toute conscience à priori. +* Vous pouvez contacter l'administrataire d'Antopie par courriel : [miraty+legal@antopie.org](mailto:miraty+legal@antopie.org). diff --git a/pages/contact.md b/antopie/md/contact.md old mode 100755 new mode 100644 similarity index 75% rename from pages/contact.md rename to antopie/md/contact.md index 4d6d6a9..4b2b0b6 --- a/pages/contact.md +++ b/antopie/md/contact.md @@ -1,5 +1,5 @@ Vous pouvez me contacter par l'un des moyens suivants : * Mail : [miraty+antopie@antopie.org](mailto:miraty+antopie@antopie.org) OpenPGP : [`B16B 12A8 957B 2EC7 9659 04A6 B82D 15F0 3E67 B2B5`](/B16B12A8957B2EC7965904A6B82D15F03E67B2B5.asc) -* Matrix : @miraty:matrix.antopie.org -* Fédiverse : [@miraty@plero.antopie.org](https://plero.antopie.org/miraty) +* Matrix : `@miraty:matrix.antopie.org` +* Fédiverse : `@miraty@plero.antopie.org` diff --git a/pages/courriel.md b/antopie/md/courriel.md old mode 100755 new mode 100644 similarity index 100% rename from pages/courriel.md rename to antopie/md/courriel.md diff --git a/pages/details-techniques.md b/antopie/md/details-techniques.md old mode 100755 new mode 100644 similarity index 70% rename from pages/details-techniques.md rename to antopie/md/details-techniques.md index 23e4f5c..5bef2a5 --- a/pages/details-techniques.md +++ b/antopie/md/details-techniques.md @@ -13,7 +13,7 @@ Une tour nommée Pastèque avec : ## Système -[YunoHost](https://yunohost.org) 4.0 (basé sur [Debian](https://www.debian.org) 10) et son écosystème : Nginx, Postfix, Fail2ban... +[YunoHost](https://yunohost.org) 4 (basé sur [Debian](https://www.debian.org) 10) et son écosystème : Nginx, Postfix, Fail2ban... ## DNS @@ -23,20 +23,23 @@ Il est enregistré dans la [HSTS Preload List](https://hstspreload.org). ## Onion -En plus de l'accès par le DNS, plusieurs services sont aussi accessibles en `.onion`, par Tor. Il s'agit des mêmes serveurs qui tournent derrière, et leurs URLs d'accès Web sont interchangeables. Le support de l'Onion est récent, et des modifications importantes pourraient survenir dessus. +En plus de l'accès par le DNS, plusieurs services sont aussi accessibles en `.onion`, par Tor. Il s'agit des mêmes serveurs qui tournent derrière, et leurs URLs d'accès Web sont interchangeables. ## Internet Pastèque est connectée à Internet via une connexion du FAI Free en fibre optique (FTTH) à Paris. -Le débit maximal disponible varie entre 50 Mo/s (400 Mbit/s) et 100 Mo/s (800 Mbit/s). Adresse IPv6 : `2a01:e34:ec23:b760:5604:a6ff:fec4:58bd` Adresse IPv4 : `78.194.59.118` -## Sauvegarde +## Sauvegardes Des sauvegardes sont faites régulièrement avec le [système intégré à YunoHost](https://yunohost.org/#/backup). -PeerTube et Nextcloud ne sont pas sauvegardées car cela prendrait trop de place. -Les sauvegardes sont copiées sur un disque dans la même pièce. +Les données contenues dans PeerTube et Nextcloud ne sont pas sauvegardées car cela utiliserait trop de place. +Les sauvegardes sont copiées sur un autre disque dans la même pièce tous les 14 jours. + +## Journaux de connexion + +Le serveur utilise la configuration par défaut de YunoHost pour les journaux de connexion (logs), dont la durée de conservation est de 14 jours pour Nginx. ## Relai Tor diff --git a/pages/index.md b/antopie/md/index.md old mode 100755 new mode 100644 similarity index 94% rename from pages/index.md rename to antopie/md/index.md index eee9289..d5e78f2 --- a/pages/index.md +++ b/antopie/md/index.md @@ -11,21 +11,21 @@ Le compte @Antopie@mamot.fr ([R 'plume.webp', -'peertube' => 'peertube.webp', -'gitea' => 'gitea.webp', -'libreqr' => 'libreqr.webp', -'bitwarden' => 'bitwarden.webp', -'nextcloud' => 'nextcloud.webp', -'synapse' => 'matrix.webp', -'element' => 'element.webp', -'privatebin' => 'privatebin.webp', -'jirafeau' => 'jirafeau.webp', -'rssbridge' => 'rssbridge.webp', -'searx' => 'searx.webp', -'etherpad' => 'etherpad.webp', -'diagrams' => 'diagrams.webp', -'opensondage' => 'opensondage.webp', +'plume' => 'plume', +'peertube' => 'peertube', +'gitea' => 'gitea', +'libreqr' => 'libreqr', +'bitwarden' => 'bitwarden', +'nextcloud' => 'nextcloud', +'synapse' => 'matrix', +'element' => 'element', +'privatebin' => 'privatebin', +'jirafeau' => 'jirafeau', +'rssbridge' => 'rssbridge', +'searx' => 'searx', +'etherpad' => 'etherpad', +'diagrams' => 'diagrams', +'opensondage' => 'opensondage', 'iprefua' => NULL, ); @@ -94,7 +94,7 @@ $descService = array( 'bitwarden' => 'Générez, enregistrez et synchronisez des mots ou phrases de passe fortes.', 'nextcloud' => 'Synchronisation de fichiers, de contacts (CardDAV), d’agenda (CalDAV), Carnet , et plein d’autres fonctionnalités grâce à des extensions.', 'synapse' => 'Un serveur Matrix, qui est un protocole internet moderne pour la communication écrite, audio ou vidéo.', -'element' => 'Client Web pour Matrix. Autrefois nommé Riot.', +'element' => 'Client Web pour Matrix.', 'privatebin' => 'Partagez des textes, codes sources ou Markdown rapidement.', 'jirafeau' => 'Partagez rapidement n’importe quel fichier avec n’importe qui.', 'rssbridge' => 'Exportez les données de centaines de sites aux formats Atom, JSON, HTML, Mrss ou texte.', @@ -203,7 +203,11 @@ $aboutService = array( foreach($descService as $codeService => $descService) { ?>
-
+
+ + + +
!)oOL6=&FF;uM z@Ljn1buu!U=5q^z$=QO#xQ^I2)3-|h9`n-#Yfbq79_nPY##Gn58%SjZeT z*b?E*Im=2Ujc%#ad*L4M+G|JOk| zd#+S9gx>AZpAVej6bq%X)1a`zS#%mXH*>+(L$GWr@V2I8N?Me52vOu71(z6?=%O`* zE*ai6<4Hr9DqA`cw|$;o)W%}NpJNTG+kMp;j8{0l<2JT*eD9 z{5~vKswL`9{efkcFR`_7h{$wdt&*K1F6Rr|IWj0PtA9Hmm`3I`DyC;#I)(jVsn@VP zV<4Qf>c+RCny)pQh;g^`R zJg?)k!8=ttM@`nY=EQwg<(MhWELYNnNn&G{+dAEg zi|g(_wa^#@54wp~t42IxfrZN-LQFMDqEwFI;a^oES=e8MKWBm&b2g65oXP0dP>({f zTH8T%CMzzt7JCkE(+P^YTgX9S+-FT9*>cKsY%H@pi>;c&K6c$7Fn@wuBekj`0ZP3U z&uuw`n{!&+;qUbi@On+&^<|6KZStkXtG#H;qK*;JmrY}I3fgTp-DH5(rs8unpG!!1ELnxE&Orme zCFMT0rMM*5iM`jz8=Gp(0v}+fK9AiK3Zaf~H*BM`I<{Jz94Dz`rX-P|vag??Ukz?9 zuFj87|DOEI9P3;@K83{ujpI5 zSKaCb{#6KOIeT!5s0~{+pJKDO2enxKBG~5q8TgH#Nsg8Bx$PeJZ(~GAq67Ay24&{R z?rI_~Ly;1MM|l@dh05+oZMQV3a}%GA09X;FT^LE9IQzN7)UNrnPIybe zWu}pt+G=RVt_Qaev<5`?)&1M(cC1p$U72SIeB(B4#SB<>hY|{{D){F6x4tIThYNc! zPMSkt(sCxa!$Vu>uae5#Ka!nkwl*0Pk2myNS-V-Gw0;{0?*JABX13*4co|T#T&==X zrEfi(vXfr_ssq~}ZV;T3<5cjY)aU5ty^-MZ4m65!6f(C&v=NjVi*b}0lQPPOq<)I% z-Isgub@l7yN$m*!&+kLxez*ZtKSwdgE3&rx8f)`@iz;LxGoN=>&1M4McI9)Tt05f9n6tgB`;$Y=$F^ zEf+{YVeo+7xc!`HoC}uW$%C;D91|kin&$5ijFh6`KD$$!|KtvLn`q^H34WDv^le(>z2S@)5uGx>$K&Z|4whDqxQIOqm(jaS&9S$Agt!7qYb~jb`5h$4n zp52Y3=2qE~o5agtei}_osa7EZv{dTX+IW-J?i_F|0-lc}znKK5C8*Vk=sTQ;6Pv$B zMqs%WHF^hf2;FF3JG%W5M&a55_9iA!Q4N9*-vPHMkD0?gUDMdPvY-=+Khx{YigKjw^huwO*FF?4< zMU(fjeqt7Ln66>OHe)FKS>oYXovA9CG@nK(qqW^)p}me$|2Loi0pfG}0ty-c0Hf_& A6#xJL diff --git a/bibli/konami.js.gz b/bibli/konami.js.gz deleted file mode 100644 index 2b7936da58dee6eabd768724001e515b877fef51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1627 zcmV-h2Bi5PiwFP!000021EpAbd*V0`|DR9c;eB@rQzp>6g=OyhzVDenZXzJlVCS)& zw(LIL&%Qn|4X&VN*K-7H>8GD1SypIYuaWEI8E15y-FW(r{B6E=yW}N5At#v{5m^=m z7m5tHAc~jCh`=#0B?)CI8JD@riX2GBq@pYVY2>C5YQ!ZFnW>Vhj5Dbxs3Hl?a|<@p z1u7K?0>h!aW>oL-6uM-jR3W?V_E3{3595T7+mg{jX)ZjI&^~gMe@UlOOhh&uDH0`3 zveD`6lSjbC5XcKnGm|75+OK2#&49H?70t{v4bVprQgiK+^>`;Lm( z&$9%Wgp`yl1)=w&@t?f+((cgwP^Wi8BmkV=DO+RQsTpduq% zYc2AK^I;C;-bnB<*qMi!fB`=xoBH#U2fO61ap661an8P6ZmV3wTPy5 zpr<^LAKAc4#vb8$CKWIcdegzcq@r{D0nH^edvj`_r_L=XMU#7=Es1?)v|j@$1wePFUXTHydJ9>VZTwQis7B zB_h9*;S))Q3T>bSl8Z%0WEVCAus|| zDVVEhS4hR2)3lmIxgi(qM~yN$$6nJja=nXEzQ#r=Ps*_^LiK6J)>}?wK7rk26M@Q# z5oZt^f{s-W<6p9H2N-)_7XoUHDVGLHZ3!u7HNq*Gm|y17X`Rk_LamT zs89!|UD9bG^AlvA7pOQd5NSn=uFIhL`Ggj#6o9UAkqr;D17)?Yx#4EN)jzz}IWYbI z{;N+ftIy{T9=?)j zvfgA)@5@#66fH;}t4Ds|E?7ln1j*4snhCIRi12>rl8^#Rk%%Gz2#mWMrYPkox`Y)% z3r!XbKe#0QqB&Xq7DIW-Q8rM~f46Kha*6FFX*#CLrl}Go9!&dg78%h@i*JBY!`WF? zTUSi#Q#OS3{j4tGRR)Kc;1GDh!HW%^YiON8r32S2?UBL`VRjE{WZzWCMP$%^X?DZ- zjw!rynybSBOFddp?flE{>Xc2Wn?Y;^LfJ&aa{niqsgThlR1nDf?=vaw9Kro z@SP^P<-0r5o%VYOoe(Ot?x9>KNxHVd#9oVJnJWWUb<)l1b`8p@2AC|sJQ|t)2)kwcf5U+(DwJ@}f5z=>7PDjW#d>M2Y zmF=Bp#+mz#b;!r?rxsvvG8Kw0kTh~>cC4j*A&Q5f9^_y?-km&2qlSf{jb=*=$|9%c zjA@yBd|Z?Y(syc-L!>cUgq3;TjHgmQy&|t=lIk$$$x$_<7MiU)v-M^yje+>wcAaqs Z=FB2aS{=@F^2usK@DB-jlB#tW007bY8M*)f diff --git a/bibli/parsedown-extra-plugin/LICENSE b/bibli/parsedown-extra-plugin/LICENSE new file mode 100644 index 0000000..842b0a2 --- /dev/null +++ b/bibli/parsedown-extra-plugin/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright © 2020 Taufik Nurrohman + +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/bibli/parsedown-extra-plugin/ParsedownExtraPlugin.php b/bibli/parsedown-extra-plugin/ParsedownExtraPlugin.php new file mode 100644 index 0000000..a12a6c7 --- /dev/null +++ b/bibli/parsedown-extra-plugin/ParsedownExtraPlugin.php @@ -0,0 +1,579 @@ +'; + + protected $regexAttribute = '(?:[#.][-\w:\\\]+[ ]*|[-\w:\\\]+(?:=(?:["\'][^\n]*?["\']|[^\s]+)?)?[ ]*)'; + + # Method aliases for every configuration property + public function __call($key, array $arguments = array()) { + $property = lcfirst(substr($key, 3)); + if (strpos($key, 'set') === 0 && property_exists($this, $property)) { + $this->{$property} = $arguments[0]; + return $this; + } + throw new Exception('Method ' . $key . ' does not exists.'); + } + + public function __construct() { + if (version_compare(parent::version, '0.8.0-beta-1') < 0) { + throw new Exception('ParsedownExtraPlugin requires a later version of Parsedown'); + } + $this->BlockTypes['!'][] = 'Image'; + parent::__construct(); + } + + protected function blockAbbreviation($Line) { + // Allow empty abbreviations + if (preg_match('/^\*\[(.+?)\]:[ ]*$/', $Line['text'], $matches)) { + $this->DefinitionData['Abbreviation'][$matches[1]] = null; + return array('hidden' => true); + } + return parent::blockAbbreviation($Line); + } + + protected function blockCodeComplete($Block) { + $this->doSetAttributes($Block['element']['element'], $this->blockCodeAttributes); + $this->doSetContent($Block['element']['element'], $this->blockCodeHtml, true); + // Put code attributes on parent element + if ($this->codeAttributesOnParent) { + if ($this->codeAttributesOnParent === true) { + // $this->codeAttributesOnParent = array_keys($Block['element']['element']['attributes']); + $this->codeAttributesOnParent = array('class', 'id'); + } + foreach ((array) $this->codeAttributesOnParent as $Name) { + if (isset($Block['element']['element']['attributes'][$Name])) { + $Block['element']['attributes'][$Name] = $Block['element']['element']['attributes'][$Name]; + unset($Block['element']['element']['attributes'][$Name]); + } + } + } + $Block['element']['element']['rawHtml'] = $Block['element']['element']['text']; + $Block['element']['element']['allowRawHtmlInSafeMode'] = true; + unset($Block['element']['element']['text']); + return $Block; + } + + protected function blockFencedCode($Line) { + // Re-enable the multiple class name feature + $Line['text'] = strtr(trim($Line['text']), array( + ' ' => "\x1A", + '.' => "\x1A." + )); + // Enable custom attribute syntax on code block + $Attributes = array(); + if (strpos($Line['text'], '{') !== false && substr($Line['text'], -1) === '}') { + $Parts = explode('{', $Line['text'], 2); + $Attributes = $this->parseAttributeData(strtr(substr($Parts[1], 0, -1), "\x1A", ' ')); + $Line['text'] = trim($Parts[0]); + } + if (!$Block = parent::blockFencedCode($Line)) { + return; + } + if ($Attributes) { + $Block['element']['element']['attributes'] = $Attributes; + } else if (isset($Block['element']['element']['attributes']['class'])) { + $Classes = explode("\x1A", strtr($Block['element']['element']['attributes']['class'], ' ', "\x1A")); + // `~~~ php` → `
`
+            // `~~~ php html` → `
`
+            // `~~~ .php` → `
`
+            // `~~~ .php.html` → `
`
+            // `~~~ .php html` → `
`
+            // `~~~ {.php #foo}` → `
`
+            $Results = [];
+            foreach ($Classes as $Class) {
+                if ($Class === "" || $Class === str_replace('%s', "", $this->blockCodeClassFormat)) {
+                    continue;
+                }
+                if ($Class[0] === '.') {
+                    $Results[] = substr($Class, 1);
+                } else {
+                    $Results[] = sprintf($this->blockCodeClassFormat, $Class);
+                }
+            }
+            $Block['element']['element']['attributes']['class'] = implode(' ', array_unique($Results));
+        }
+        return $Block;
+    }
+
+    protected function blockFencedCodeComplete($Block) {
+        return $this->blockCodeComplete($Block);
+    }
+
+    protected function blockHeader($Line) {
+        if (!$Block = parent::blockHeader($Line)) {
+            return;
+        }
+        $Level = strspn($Line['text'], '#');
+        $this->doSetAttributes($Block['element'], $this->headerAttributes, array($Level));
+        $this->doSetContent($Block['element'], $this->headerText, false, 'argument', array($Level));
+        return $Block;
+    }
+
+    protected function blockImage($Line) {
+        if (!$this->figuresEnabled) {
+            return;
+        }
+        // Match exactly an image syntax in a paragraph (with optional custom attributes, and optional hard break marker)
+        if (preg_match('/^\!\[[^\n]*?\](\[[^\n]*?\]|\([^\n]*?\))(\s*\{' . $this->regexAttribute . '+?\})?([ ]{2})?$/', $Line['text'])) {
+            $Block = array(
+                'description' => "",
+                'element' => array(
+                    'name' => 'figure',
+                    'attributes' => array(),
+                    'elements' => array(
+                        $this->inlineImage($Line)
+                    )
+                )
+            );
+            $this->doSetAttributes($Block['element'], $this->figureAttributes);
+            return $Block;
+        }
+        return;
+    }
+
+    protected function blockImageComplete($Block) {
+        if (!empty($Block['description'])) {
+            $Description = $Block['description'];
+            $Block['element']['elements'][] = array(
+                'name' => 'figcaption',
+                'rawHtml' => $this->{strpos($Description, "\n\n") === false ? 'line' : 'text'}(trim($Description, "\n"))
+            );
+            // unset($Block['description']);
+        }
+        if ($this->imageAttributesOnParent) {
+            $Inline = $Block['element']['elements'][0];
+            if ($this->imageAttributesOnParent === true) {
+                $this->imageAttributesOnParent = array_keys($Inline['element']['attributes']);
+            }
+            foreach ((array) $this->imageAttributesOnParent as $Name) {
+                if (isset($Inline['element']['attributes'][$Name])) {
+                    // Merge class names
+                    if (
+                        $Name === 'class' &&
+                        isset($Block['element']['attributes'][$Name]) &&
+                        isset($Inline['element']['attributes'][$Name])
+                    ) {
+                        $Classes = array_merge(
+                            explode(' ', $Block['element']['attributes'][$Name]),
+                            explode(' ', $Inline['element']['attributes'][$Name])
+                        );
+                        sort($Classes);
+                        $Block['element']['attributes']['class'] = implode(' ', array_unique(array_filter($Classes)));
+                        unset($Block['element']['elements'][0]['element']['attributes'][$Name]);
+                        continue;
+                    }
+                    $Block['element']['attributes'][$Name] = $Inline['element']['attributes'][$Name];
+                    unset($Block['element']['elements'][0]['element']['attributes'][$Name]);
+                }
+            }
+        }
+        return $Block;
+    }
+
+    protected function blockImageContinue($Line, array $Block) {
+        if (isset($Block['complete'])) {
+            return;
+        }
+        if (isset($Block['interrupted'])) {
+            $Block['description'] .= "\n";
+            unset($Block['interrupted']);
+        }
+        if ($Line['indent'] === 0) {
+            $Block['complete'] = true;
+            return;
+        }
+        if ($Line['indent'] > 0 && $Line['indent'] < 4) {
+            $Block['description'] .= "\n" . $Line['text'];
+            return $Block;
+        }
+        return;
+    }
+
+    protected function blockQuoteComplete($Block) {
+        $this->doSetAttributes($Block['element'], $this->blockQuoteAttributes);
+        $this->doSetContent($Block['element'], $this->blockQuoteText, false, 'arguments');
+        return $Block;
+    }
+
+    protected function blockSetextHeader($Line, array $Block = null) {
+        if (!$Block = parent::blockSetextHeader($Line, $Block)) {
+            return;
+        }
+        $Level = $Line['text'][0] === '=' ? 1 : 2;
+        $this->doSetAttributes($Block['element'], $this->headerAttributes, array($Level));
+        $this->doSetContent($Block['element'], $this->headerText, false, 'argument', array($Level));
+        return $Block;
+    }
+
+    protected function blockTableContinue($Line, array $Block) {
+        if (!$Block = parent::blockTableContinue($Line, $Block)) {
+            return;
+        }
+        $Aligns = $Block['alignments'];
+        // `` or ``
+        foreach ($Block['element']['elements'] as $Index0 => &$Element0) {
+            // ``
+            foreach ($Element0['elements'] as $Index1 => &$Element1) {
+                // `` or ``
+                foreach ($Element1['elements'] as $Index2 => &$Element2) {
+                    $this->doSetAttributes($Element2, $this->tableColumnAttributes, array($Aligns[$Index2], $Index2, $Index1));
+                }
+            }
+        }
+        return $Block;
+    }
+
+    protected function blockTableComplete($Block) {
+        $this->doSetAttributes($Block['element'], $this->tableAttributes);
+        return $Block;
+    }
+
+    protected function buildFootnoteElement() {
+        $DefinitionData = $this->DefinitionData['Footnote'];
+        if (!$Footnotes = parent::buildFootnoteElement()) {
+            return;
+        }
+        $DefinitionKey = array_keys($DefinitionData);
+        $DefinitionData = array_values($DefinitionData);
+        $this->doSetAttributes($Footnotes, $this->footnoteAttributes);
+        foreach ($Footnotes['elements'][1]['elements'] as $Index0 => &$Element0) {
+            $Name = $DefinitionKey[$Index0];
+            $Count = $DefinitionData[$Index0]['count'];
+            $Args = array(is_numeric($Name) ? (float) $Name : $Name, $Count);
+            $this->doSetAttributes($Element0, $this->footnoteBackReferenceAttributes, $Args);
+            foreach ($Element0['elements'] as $Index1 => &$Element1) {
+                $Count = 0;
+                foreach ($Element1['elements'] as $Index2 => &$Element2) {
+                    if (!isset($Element2['name']) || $Element2['name'] !== 'a') {
+                        continue;
+                    }
+                    $Args[1] = ++$Count;
+                    $this->doSetAttributes($Element2, $this->footnoteBackLinkAttributes, $Args);
+                    $this->doSetContent($Element2, $this->footnoteBackLinkHtml, false, 'rawHtml');
+                }
+            }
+        }
+        return $Footnotes;
+    }
+
+    protected function doGetAttributes($Element) {
+        if (isset($Element['attributes'])) {
+            return (array) $Element['attributes'];
+        }
+        return array();
+    }
+
+    protected function doGetContent($Element) {
+        if (isset($Element['text'])) {
+            return $Element['text'];
+        }
+        if (isset($Element['rawHtml'])) {
+            return $Element['rawHtml'];
+        }
+        if (isset($Element['handler']['argument'])) {
+            return implode("\n", (array) $Element['handler']['argument']);
+        }
+        return null;
+    }
+
+    private function doSetLink($Excerpt, $Function) {
+        if (!$Inline = call_user_func('parent::' . $Function, $Excerpt)) {
+            return;
+        }
+        $this->doSetAttributes($Inline['element'], $this->linkAttributes, array($this->isLocal($Inline['element'], 'href')));
+        $this->doSetData($this->DefinitionData['Reference'], $this->referenceData);
+        return $Inline;
+    }
+
+    protected function doSetAttributes(&$Element, $From, $Args = array()) {
+        $Attributes = $this->doGetAttributes($Element);
+        $Content = $this->doGetContent($Element);
+        if (is_callable($From)) {
+            $Args = array_merge(array($Content, $Attributes, &$Element), $Args);
+            $Element['attributes'] = array_replace($Attributes, (array) call_user_func_array($From, $Args));
+        } else {
+            $Element['attributes'] = array_replace($Attributes, (array) $From);
+        }
+    }
+
+    protected function doSetContent(&$Element, $From, $Esc = false, $Mode = 'text', $Args = array()) {
+        $Attributes = $this->doGetAttributes($Element);
+        $Content = $this->doGetContent($Element);
+        if ($Esc) {
+            $Content = parent::escape($Content, true);
+        }
+        if (is_callable($From)) {
+            $Args = array_merge(array($Content, $Attributes, &$Element), $Args);
+            $Content = call_user_func_array($From, $Args);
+        } else if (!empty($From)) {
+            $Content = sprintf($From, $Content);
+        }
+        if ($Mode === 'arguments') {
+            $Element['handler']['argument'] = explode("\n", $Content);
+        } else if ($Mode === 'argument') {
+            $Element['handler']['argument'] = $Content;
+        } else {
+            $Element[$Mode] = $Content;
+        }
+    }
+
+    protected function doSetData(&$To, $From) {
+        $To = array_replace((array) $To, (array) $From);
+    }
+
+    protected function element(array $Element) {
+        if (!$Any = parent::element($Element)) {
+            return;
+        }
+        if (substr($Any, -3) === ' />') {
+            if (is_callable($this->voidElementSuffix)) {
+                $Attributes = $this->doGetAttributes($Element);
+                $Content = $this->doGetContent($Element);
+                $Suffix = call_user_func_array($this->voidElementSuffix, [$Content, $Attributes, &$Element]);
+            } else {
+                $Suffix = $this->voidElementSuffix;
+            }
+            $Any = substr_replace($Any, $Suffix, -3);
+        }
+        return $Any;
+    }
+
+    protected function inlineCode($Excerpt) {
+        if (!$Inline = parent::inlineCode($Excerpt)) {
+            return;
+        }
+        $this->doSetAttributes($Inline['element'], $this->codeAttributes);
+        $this->doSetContent($Inline['element'], $this->codeHtml, true);
+        $Inline['element']['rawHtml'] = $Inline['element']['text'];
+        $Inline['element']['allowRawHtmlInSafeMode'] = true;
+        unset($Inline['element']['text']);
+        return $Inline;
+    }
+
+    protected function inlineFootnoteMarker($Excerpt) {
+        if (!$Inline = parent::inlineFootnoteMarker($Excerpt)) {
+            return;
+        }
+        $Name = null;
+        if (preg_match('/^\[\^(.+?)\]/', $Excerpt['text'], $matches)) {
+            $Name = $matches[1];
+        }
+        $Args = array(is_numeric($Name) ? (float) $Name : $Name, $this->DefinitionData['Footnote'][$Name]['count']);
+        $this->doSetAttributes($Inline['element'], $this->footnoteReferenceAttributes, $Args);
+        $this->doSetAttributes($Inline['element']['element'], $this->footnoteLinkAttributes, $Args);
+        $this->doSetContent($Inline['element']['element'], $this->footnoteLinkHtml, false, 'text', $Args);
+        $Inline['element']['element']['rawHtml'] = $Inline['element']['element']['text'];
+        $Inline['element']['element']['allowRawHtmlInSafeMode'] = true;
+        unset($Inline['element']['element']['text']);
+        return $Inline;
+    }
+
+    protected function inlineImage($Excerpt) {
+        if (!$Inline = parent::inlineImage($Excerpt)) {
+            return;
+        }
+        $this->doSetAttributes($Inline['element'], $this->imageAttributes, array($this->isLocal($Inline['element'], 'src')));
+        return $Inline;
+    }
+
+    protected function inlineLink($Excerpt) {
+        return $this->doSetLink($Excerpt, __FUNCTION__);
+    }
+
+    protected function inlineText($Text) {
+        $this->doSetData($this->DefinitionData['Abbreviation'], $this->abbreviationData);
+        return parent::inlineText($Text);
+    }
+
+    protected function inlineUrl($Excerpt) {
+        return $this->doSetLink($Excerpt, __FUNCTION__);
+    }
+
+    protected function inlineUrlTag($Excerpt) {
+        return $this->doSetLink($Excerpt, __FUNCTION__);
+    }
+
+    protected function isLocal($Element, $Key) {
+        $Link = isset($Element['attributes'][$Key]) ? (string) $Element['attributes'][$Key] : null;
+        if (
+            // ``
+            $Link === "" ||
+            // ``
+            // ``
+            // ``
+            // ``
+            // ``
+            strpos('./?&#', $Link[0]) !== false && strpos($Link, '//') !== 0 ||
+            // ``
+            strpos($Link, 'data:') === 0 ||
+            // ``
+            strpos($Link, 'javascript:') === 0 ||
+            // ``
+            strpos($Link, 'mailto:') === 0
+        ) {
+            return true;
+        }
+        if (isset($_SERVER['HTTP_HOST'])) {
+            $Host = $_SERVER['HTTP_HOST'];
+        } else if (isset($_SERVER['SERVER_NAME'])) {
+            $Host = $_SERVER['SERVER_NAME'];
+        } else {
+            $Host = "";
+        }
+        // ``
+        if (strpos($Link, '//') === 0 && strpos($Link, '//' . $Host) !== 0) {
+            return false;
+        }
+        if (
+            // ``
+            strpos($Link, 'https://' . $Host) === 0 ||
+            // ``
+            strpos($Link, 'http://' . $Host) === 0
+        ) {
+            return true;
+        }
+        // ``
+        return strpos($Link, '://') === false;
+    }
+
+    protected function parseAttributeData($attributeString) {
+        // Allow compact attributes
+        $attributeString = strtr($attributeString, array(
+            '#' => ' #',
+            '.' => ' .'
+        ));
+        if (strpos($attributeString, '="') !== false || strpos($attributeString, "='") !== false) {
+            $attributeString = preg_replace_callback('#([-\w]+=)(["\'])([^\n]*?)\2#', function($matches) {
+                $value = strtr($matches[3], array(
+                    ' #' => '#',
+                    ' .' => '.',
+                    ' ' => "\x1A"
+                ));
+                return $matches[1] . $matches[2] . $value . $matches[2];
+            }, $attributeString);
+        }
+        $Attributes = array();
+        foreach (explode(' ', $attributeString) as $v) {
+            if (!$v) {
+                continue;
+            }
+            // `{#foo}`
+            if ($v[0] === '#' && isset($v[1])) {
+                $Attributes['id'] = substr($v, 1);
+            // `{.foo}`
+            } else if ($v[0] === '.' && isset($v[1])) {
+                $Attributes['class'][] = substr($v, 1);
+            // ~
+            } else if (strpos($v, '=') !== false) {
+                $vv = explode('=', $v, 2);
+                // `{foo=}`
+                if ($vv[1] === "") {
+                    if ($vv[0] === 'class') {
+                        continue;
+                    }
+                    $Attributes[$vv[0]] = "";
+                // `{foo="bar baz"}`
+                // `{foo='bar baz'}`
+                } else if ($vv[1][0] === '"' && substr($vv[1], -1) === '"' || $vv[1][0] === "'" && substr($vv[1], -1) === "'") {
+                    $values = stripslashes(strtr(substr(substr($vv[1], 1), 0, -1), "\x1A", ' '));
+                    if ($vv[0] === 'class' && isset($Attributes[$vv[0]])) {
+                        $values = explode(' ', $values);
+                        $Attributes[$vv[0]] = array_merge($Attributes[$vv[0]], $values);
+                    } else {
+                        $Attributes[$vv[0]] = $values;
+                    }
+                // `{foo=bar}`
+                } else {
+                    if ($vv[0] === 'class' && isset($Attributes[$vv[0]])) {
+                        $Attributes[$vv[0]] = array_merge($Attributes[$vv[0]], [$vv[1]]);
+                    } else {
+                        $Attributes[$vv[0]] = $vv[1];
+                    }
+                }
+            // `{foo}`
+            } else {
+                if ($v === 'class' && isset($Attributes[$v])) {
+                    continue;
+                }
+                $Attributes[$v] = $v;
+            }
+        }
+        if (isset($Attributes['class'])) {
+            $Attributes['class'] = implode(' ', array_unique((array) $Attributes['class']));
+        }
+        return $Attributes;
+    }
+
+}
diff --git a/bibli/parsedown-extra-plugin/README.md b/bibli/parsedown-extra-plugin/README.md
new file mode 100644
index 0000000..c94df09
--- /dev/null
+++ b/bibli/parsedown-extra-plugin/README.md
@@ -0,0 +1,317 @@
+Extension for [Parsedown Extra](https://github.com/erusev/parsedown-extra)
+==========================================================================
+
+> Configurable Markdown to HTML converter with Parsedown Extra.
+
+![Parsedown Logo](https://user-images.githubusercontent.com/1669261/109982015-10e2c300-7d34-11eb-93bd-5f103b9d5165.png)
+
+
+Contents
+--------
+
+ - [Usage](#usage)
+ - [Features](#features)
+ - [Property Aliases as Methods](#property-aliases-as-methods)
+
+
+Usage
+-----
+
+### Manual
+
+Include `ParsedownExtraPlugin.php` just after the `Parsedown.php` and `ParsedownExtra.php` file:
+
+~~~ .php
+require 'Parsedown.php';
+require 'ParsedownExtra.php';
+require 'ParsedownExtraPlugin.php';
+
+# Create
+$Parsedown = new ParsedownExtraPlugin;
+
+# Configure
+$Parsedown->voidElementSuffix = '>'; // HTML5
+
+# Use
+echo $Parsedown->text('# Header {.sth}');
+~~~
+
+### Composer
+
+From the file manager interface, create a `composer.json` file in your project folder, then add this content:
+
+~~~ .json
+{
+  "minimum-stability": "dev"
+}
+~~~
+
+From the command line interface, navigate to your project folder then run this command:
+
+~~~ .sh
+composer require taufik-nurrohman/parsedown-extra-plugin
+~~~
+
+From the file manager interface, create an `index.php` file in your project folder then require the auto-loader file:
+
+~~~ .php
+require 'vendor/autoload.php';
+
+# Create
+$Parsedown = new ParsedownExtraPlugin;
+
+# Configure
+$Parsedown->voidElementSuffix = '>'; // HTML5
+
+# Use
+echo $Parsedown->text('# Header {.sth}');
+~~~
+
+
+Features
+--------
+
+### HTML or XHTML
+
+~~~ .php
+$Parsedown->voidElementSuffix = '>'; // HTML5
+~~~
+
+### Predefined Abbreviations
+
+~~~ .php
+$Parsedown->abbreviationData = [
+    'CSS' => 'Cascading Style Sheet',
+    'HTML' => 'Hyper Text Markup Language',
+    'JS' => 'JavaScript'
+];
+~~~
+
+### Predefined Reference Links and Images
+
+~~~ .php
+$Parsedown->referenceData = [
+    'mecha-cms' => [
+        'url' => 'https://mecha-cms.com',
+        'title' => 'Mecha CMS'
+    ],
+    'test-image' => [
+        'url' => 'http://example.com/favicon.ico',
+        'title' => 'Test Image'
+    ]
+);
+~~~
+
+### Automatic `rel="nofollow"` Attribute on External Links
+
+~~~ .php
+$Parsedown->linkAttributes = function($Text, $Attributes, &$Element, $Internal) {
+    if (!$Internal) {
+        return [
+            'rel' => 'nofollow',
+            'target' => '_blank';
+        ];
+    }
+    return [];
+};
+~~~
+
+### Automatic `id` Attribute on Headers
+
+~~~ .php
+$Parsedown->headerAttributes = function($Text, $Attributes, &$Element, $Level) {
+    $Id = $Attributes['id'] ?? trim(preg_replace('/[^a-z\d\x{4e00}-\x{9fa5}]+/u', '-', strtolower($Text)), '-');
+    return ['id' => $Id];
+};
+~~~
+
+### Automatic Figure Elements
+
+Every image markup that appears alone in a paragraph will be converted into a figure element automatically.
+
+~~~ .php
+$Parsedown->figuresEnabled = true;
+$Parsedown->figureAttributes = ['class' => 'image'];
+
+$Parsedown->imageAttributesOnParent = ['class', 'id'];
+~~~
+
+To add a caption below the image, prepend at least one space but less than four spaces to turn the paragraph sequence that comes after the image into an image caption.
+
+~~~ .markdown
+This is a paragraph.
+
+![Image](/path/to/image.jpg)
+ Image caption.
+
+This is a paragraph.
+
+![Image](/path/to/image.jpg)
+
+ Image caption in a paragraph tag.
+
+This is a paragraph.
+
+![Image](/path/to/image.jpg)
+
+    This is a code block.
+
+This is a paragraph.
+~~~
+
+FYI, this format is also valid for average Markdown files. And so, it will degraded gracefully when parsed by other Markdown converters.
+
+### Custom Code Block Class Format
+
+~~~ .php
+$Parsedown->blockCodeClassFormat = 'language-%s';
+~~~
+
+### Custom Code Block Contents
+
+~~~ .php
+$Parsedown->codeHtml = '%s';
+$Parsedown->blockCodeHtml = '%s';
+~~~
+
+~~~ .php
+// 
+function doApplyHighlighter(string $Text, array $ClassList, &$Element) {
+    $Highlight = new \Highlight\Highlighter;
+    $Highlight->setAutodetectLanguages($ClassList);
+    $Highlighted = $Highlight->highlightAuto($Text);
+    $Element['attributes']['class'] = 'hljs ' . $Highlighted->language;
+    return $Highlighted->value;
+}
+
+$Parsedown->codeHtml = function($Text, $Attributes, &$Element) {
+    return doApplyHighlighter($Text, [], $Element);
+};
+
+$Parsedown->blockCodeHtml = function($Text, $Attributes, &$Element) {
+    $ClassList = array_filter(explode(' ', $Attributes['class'] ?? ""));
+    return doApplyHighlighter($Text, $ClassList, $Element);
+};
+~~~
+
+### Put `` Attributes on `
` Element
+
+~~~ .php
+$Parsedown->codeAttributesOnParent = true;
+~~~
+
+### Custom Quote Block Class
+
+~~~ .php
+$Parsedown->blockQuoteAttributes = ['class' => 'quote'];
+~~~
+
+~~~ .php
+$Parsedown->blockQuoteAttributes = function($Text, $Attributes, &$Element) {
+    if (strpos($Text, '**Danger:** ') === 0) {
+        return ['class' => 'alert alert-danger'];
+    }
+    if (strpos($Text, '**Info:** ') === 0) {
+        return ['class' => 'alert alert-info'];
+    }
+    return [];
+};
+~~~
+
+### Custom Table Attributes
+
+~~~ .php
+$Parsedown->tableAttributes = ['border' => 1];
+~~~
+
+### Custom Table Alignment Class
+
+~~~ .php
+$Parsedown->tableColumnAttributes = function($Text, $Attributes, &$Element, $Align) {
+    return [
+        'class' => $Align ? 'text-' . $Align : null,
+        'style' => null // Remove inline styles
+    ];
+};
+~~~
+
+### Custom Footnote ID Format
+
+~~~ .php
+$Parsedown->footnoteLinkAttributes = function($Number, $Attributes, &$Element, $Name) {
+    return ['href' => '#to:' . $Name];
+};
+
+$Parsedown->footnoteReferenceAttributes = function($Number, $Attributes, &$Element, $Name, $Index) {
+    return ['id' => 'from:' . $Name . '.' . $Index];
+};
+
+$Parsedown->footnoteBackLinkAttributes = function($Number, $Attributes, &$Element, $Name, $Index) {
+    return ['href' => '#from:' . $Name . '.' . $Index];
+};
+
+$Parsedown->footnoteBackReferenceAttributes = function($Number, $Attributes, &$Element, $Name, $Total) {
+    return ['id' => 'to:' . $Name];
+};
+~~~
+
+### Custom Footnote Class
+
+~~~ .php
+$Parsedown->footnoteAttributes = ['class' => 'notes'];
+~~~
+
+### Custom Footnote Link Text
+
+~~~ .php
+$Parsedown->footnoteLinkHtml = '[%s]';
+~~~
+
+### Custom Footnote Back Link Text
+
+~~~ .php
+$Parsedown->footnoteBackLinkHtml = '';
+~~~
+
+### Advance Attribute Parser
+
+ - `{#foo}` → ``
+ - `{#foo#bar}` → ``
+ - `{.foo}` → ``
+ - `{.foo.bar}` → ``
+ - `{#foo.bar.baz}` → ``
+ - `{#foo .bar .baz}` → `` (white-space before `#` and `.` becomes optional in my extension)
+ - `{foo="bar"}` → ``
+ - `{foo="bar baz"}` → ``
+ - `{foo='bar'}` → ``
+ - `{foo='bar baz'}` → ``
+ - `{foo=bar}` → ``
+ - `{foo=}` → ``
+ - `{foo}` → ``
+ - `{foo=bar baz}` → ``
+ - `{#a#b.c.d e="f" g="h i" j='k' l='m n' o=p q= r s t="u#v.w.x y=z"}` → ``
+
+### Code Block Class Without `language-` Prefix
+
+Dot prefix in class name are now becomes optional, custom attributes syntax also acceptable:
+
+ - `php` → `
`
+ - `php html` → `
`
+ - `.php` → `
`
+ - `.php.html` → `
`
+ - `.php html` → `
`
+ - `{.php #foo}` → `
`
+
+
+Property Aliases as Methods
+---------------------------
+
+Property aliases are available as methods just to follow the way **Parsedown** set its configuration data. It uses PHP `__call` method to generate the class methods automatically:
+
+~~~ .php
+// This is ...
+$Parsedown->setBlockCodeHtml(function() { ... });
+
+// ... equal to this
+$Parsedown->blockCodeHtml = function() { ... };
+~~~
diff --git a/bibli/parsedown-extra/LICENSE.txt b/bibli/parsedown-extra/LICENSE.txt
new file mode 100644
index 0000000..baca86f
--- /dev/null
+++ b/bibli/parsedown-extra/LICENSE.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Emanuil Rusev, erusev.com
+
+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.
\ No newline at end of file
diff --git a/bibli/parsedown/ParsedownExtra.php b/bibli/parsedown-extra/ParsedownExtra.php
old mode 100755
new mode 100644
similarity index 59%
rename from bibli/parsedown/ParsedownExtra.php
rename to bibli/parsedown-extra/ParsedownExtra.php
index 632ba84..8cdb5d2
--- a/bibli/parsedown/ParsedownExtra.php
+++ b/bibli/parsedown-extra/ParsedownExtra.php
@@ -17,13 +17,13 @@ class ParsedownExtra extends Parsedown
 {
     # ~
 
-    const version = '0.8.1';
+    const version = '0.8.0';
 
     # ~
 
     function __construct()
     {
-        if (version_compare(parent::version, '1.7.4') < 0)
+        if (version_compare(parent::version, '1.7.1') < 0)
         {
             throw new Exception('ParsedownExtra requires a later version of Parsedown');
         }
@@ -43,7 +43,13 @@ class ParsedownExtra extends Parsedown
 
     function text($text)
     {
-        $markup = parent::text($text);
+        $Elements = $this->textElements($text);
+
+        # convert to markup
+        $markup = $this->elements($Elements);
+
+        # trim line breaks
+        $markup = trim($markup, "\n");
 
         # merge consecutive dl elements
 
@@ -139,25 +145,27 @@ class ParsedownExtra extends Parsedown
 
     protected function blockDefinitionList($Line, $Block)
     {
-        if ( ! isset($Block) or isset($Block['type']))
+        if ( ! isset($Block) or $Block['type'] !== 'Paragraph')
         {
             return;
         }
 
         $Element = array(
             'name' => 'dl',
-            'handler' => 'elements',
-            'text' => array(),
+            'elements' => array(),
         );
 
-        $terms = explode("\n", $Block['element']['text']);
+        $terms = explode("\n", $Block['element']['handler']['argument']);
 
         foreach ($terms as $term)
         {
-            $Element['text'] []= array(
+            $Element['elements'] []= array(
                 'name' => 'dt',
-                'handler' => 'line',
-                'text' => $term,
+                'handler' => array(
+                    'function' => 'lineElements',
+                    'argument' => $term,
+                    'destination' => 'elements'
+                ),
             );
         }
 
@@ -185,15 +193,17 @@ class ParsedownExtra extends Parsedown
 
             if (isset($Block['interrupted']))
             {
-                $Block['dd']['handler'] = 'text';
-                $Block['dd']['text'] .= "\n\n";
+                $Block['dd']['handler']['function'] = 'textElements';
+                $Block['dd']['handler']['argument'] .= "\n\n";
+
+                $Block['dd']['handler']['destination'] = 'elements';
 
                 unset($Block['interrupted']);
             }
 
             $text = substr($Line['body'], min($Line['indent'], 4));
 
-            $Block['dd']['text'] .= "\n" . $text;
+            $Block['dd']['handler']['argument'] .= "\n" . $text;
 
             return $Block;
         }
@@ -206,17 +216,13 @@ class ParsedownExtra extends Parsedown
     {
         $Block = parent::blockHeader($Line);
 
-        if (! isset($Block)) {
-            return null;
-        }
-
-        if (preg_match('/[ #]*{('.$this->regexAttribute.'+)}[ ]*$/', $Block['element']['text'], $matches, PREG_OFFSET_CAPTURE))
+        if ($Block !== null && preg_match('/[ #]*{('.$this->regexAttribute.'+)}[ ]*$/', $Block['element']['handler']['argument'], $matches, PREG_OFFSET_CAPTURE))
         {
             $attributeString = $matches[1][0];
 
             $Block['element']['attributes'] = $this->parseAttributeData($attributeString);
 
-            $Block['element']['text'] = substr($Block['element']['text'], 0, $matches[0][1]);
+            $Block['element']['handler']['argument'] = substr($Block['element']['handler']['argument'], 0, $matches[0][1]);
         }
 
         return $Block;
@@ -225,11 +231,98 @@ class ParsedownExtra extends Parsedown
     #
     # Markup
 
+    protected function blockMarkup($Line)
+    {
+        if ($this->markupEscaped or $this->safeMode)
+        {
+            return;
+        }
+
+        if (preg_match('/^<(\w[\w-]*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\/)?>/', $Line['text'], $matches))
+        {
+            $element = strtolower($matches[1]);
+
+            if (in_array($element, $this->textLevelElements))
+            {
+                return;
+            }
+
+            $Block = array(
+                'name' => $matches[1],
+                'depth' => 0,
+                'element' => array(
+                    'rawHtml' => $Line['text'],
+                    'autobreak' => true,
+                ),
+            );
+
+            $length = strlen($matches[0]);
+            $remainder = substr($Line['text'], $length);
+
+            if (trim($remainder) === '')
+            {
+                if (isset($matches[2]) or in_array($matches[1], $this->voidElements))
+                {
+                    $Block['closed'] = true;
+                    $Block['void'] = true;
+                }
+            }
+            else
+            {
+                if (isset($matches[2]) or in_array($matches[1], $this->voidElements))
+                {
+                    return;
+                }
+                if (preg_match('/<\/'.$matches[1].'>[ ]*$/i', $remainder))
+                {
+                    $Block['closed'] = true;
+                }
+            }
+
+            return $Block;
+        }
+    }
+
+    protected function blockMarkupContinue($Line, array $Block)
+    {
+        if (isset($Block['closed']))
+        {
+            return;
+        }
+
+        if (preg_match('/^<'.$Block['name'].'(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*>/i', $Line['text'])) # open
+        {
+            $Block['depth'] ++;
+        }
+
+        if (preg_match('/(.*?)<\/'.$Block['name'].'>[ ]*$/i', $Line['text'], $matches)) # close
+        {
+            if ($Block['depth'] > 0)
+            {
+                $Block['depth'] --;
+            }
+            else
+            {
+                $Block['closed'] = true;
+            }
+        }
+
+        if (isset($Block['interrupted']))
+        {
+            $Block['element']['rawHtml'] .= "\n";
+            unset($Block['interrupted']);
+        }
+
+        $Block['element']['rawHtml'] .= "\n".$Line['body'];
+
+        return $Block;
+    }
+
     protected function blockMarkupComplete($Block)
     {
         if ( ! isset($Block['void']))
         {
-            $Block['markup'] = $this->processTag($Block['markup']);
+            $Block['element']['rawHtml'] = $this->processTag($Block['element']['rawHtml']);
         }
 
         return $Block;
@@ -242,17 +335,13 @@ class ParsedownExtra extends Parsedown
     {
         $Block = parent::blockSetextHeader($Line, $Block);
 
-        if (! isset($Block)) {
-            return null;
-        }
-
-        if (preg_match('/[ ]*{('.$this->regexAttribute.'+)}[ ]*$/', $Block['element']['text'], $matches, PREG_OFFSET_CAPTURE))
+        if ($Block !== null && preg_match('/[ ]*{('.$this->regexAttribute.'+)}[ ]*$/', $Block['element']['handler']['argument'], $matches, PREG_OFFSET_CAPTURE))
         {
             $attributeString = $matches[1][0];
 
             $Block['element']['attributes'] = $this->parseAttributeData($attributeString);
 
-            $Block['element']['text'] = substr($Block['element']['text'], 0, $matches[0][1]);
+            $Block['element']['handler']['argument'] = substr($Block['element']['handler']['argument'], 0, $matches[0][1]);
         }
 
         return $Block;
@@ -286,8 +375,7 @@ class ParsedownExtra extends Parsedown
             $Element = array(
                 'name' => 'sup',
                 'attributes' => array('id' => 'fnref'.$this->DefinitionData['Footnote'][$name]['count'].':'.$name),
-                'handler' => 'element',
-                'text' => array(
+                'element' => array(
                     'name' => 'a',
                     'attributes' => array('href' => '#fn:'.$name, 'class' => 'footnote-ref'),
                     'text' => $this->DefinitionData['Footnote'][$name]['number'],
@@ -310,11 +398,7 @@ class ParsedownExtra extends Parsedown
     {
         $Link = parent::inlineLink($Excerpt);
 
-        if (! isset($Link)) {
-            return null;
-        }
-
-        $remainder = substr($Excerpt['text'], $Link['extent']);
+        $remainder = $Link !== null ? substr($Excerpt['text'], $Link['extent']) : '';
 
         if (preg_match('/^[ ]*{('.$this->regexAttribute.'+)}/', $remainder, $matches))
         {
@@ -330,21 +414,52 @@ class ParsedownExtra extends Parsedown
     # ~
     #
 
-    protected function unmarkedText($text)
+    private $currentAbreviation;
+    private $currentMeaning;
+
+    protected function insertAbreviation(array $Element)
     {
-        $text = parent::unmarkedText($text);
+        if (isset($Element['text']))
+        {
+            $Element['elements'] = self::pregReplaceElements(
+                '/\b'.preg_quote($this->currentAbreviation, '/').'\b/',
+                array(
+                    array(
+                        'name' => 'abbr',
+                        'attributes' => array(
+                            'title' => $this->currentMeaning,
+                        ),
+                        'text' => $this->currentAbreviation,
+                    )
+                ),
+                $Element['text']
+            );
+
+            unset($Element['text']);
+        }
+
+        return $Element;
+    }
+
+    protected function inlineText($text)
+    {
+        $Inline = parent::inlineText($text);
 
         if (isset($this->DefinitionData['Abbreviation']))
         {
             foreach ($this->DefinitionData['Abbreviation'] as $abbreviation => $meaning)
             {
-                $pattern = '/\b'.preg_quote($abbreviation, '/').'\b/';
+                $this->currentAbreviation = $abbreviation;
+                $this->currentMeaning = $meaning;
 
-                $text = preg_replace($pattern, ''.$abbreviation.'', $text);
+                $Inline['element'] = $this->elementApplyRecursiveDepthFirst(
+                    array($this, 'insertAbreviation'),
+                    $Inline['element']
+                );
             }
         }
 
-        return $text;
+        return $Inline;
     }
 
     #
@@ -360,18 +475,21 @@ class ParsedownExtra extends Parsedown
 
         $Block['dd'] = array(
             'name' => 'dd',
-            'handler' => 'line',
-            'text' => $text,
+            'handler' => array(
+                'function' => 'lineElements',
+                'argument' => $text,
+                'destination' => 'elements'
+            ),
         );
 
         if (isset($Block['interrupted']))
         {
-            $Block['dd']['handler'] = 'text';
+            $Block['dd']['handler']['function'] = 'textElements';
 
             unset($Block['interrupted']);
         }
 
-        $Block['element']['text'] []= & $Block['dd'];
+        $Block['element']['elements'] []= & $Block['dd'];
 
         return $Block;
     }
@@ -381,15 +499,11 @@ class ParsedownExtra extends Parsedown
         $Element = array(
             'name' => 'div',
             'attributes' => array('class' => 'footnotes'),
-            'handler' => 'elements',
-            'text' => array(
-                array(
-                    'name' => 'hr',
-                ),
+            'elements' => array(
+                array('name' => 'hr'),
                 array(
                     'name' => 'ol',
-                    'handler' => 'elements',
-                    'text' => array(),
+                    'elements' => array(),
                 ),
             ),
         );
@@ -405,34 +519,68 @@ class ParsedownExtra extends Parsedown
 
             $text = $DefinitionData['text'];
 
-            $text = parent::text($text);
+            $textElements = parent::textElements($text);
 
             $numbers = range(1, $DefinitionData['count']);
 
-            $backLinksMarkup = '';
+            $backLinkElements = array();
 
             foreach ($numbers as $number)
             {
-                $backLinksMarkup .= ' ';
+                $backLinkElements[] = array('text' => ' ');
+                $backLinkElements[] = array(
+                    'name' => 'a',
+                    'attributes' => array(
+                        'href' => "#fnref$number:$definitionId",
+                        'rev' => 'footnote',
+                        'class' => 'footnote-backref',
+                    ),
+                    'rawHtml' => '↩',
+                    'allowRawHtmlInSafeMode' => true,
+                    'autobreak' => false,
+                );
             }
 
-            $backLinksMarkup = substr($backLinksMarkup, 1);
+            unset($backLinkElements[0]);
 
-            if (substr($text, - 4) === '

') + $n = count($textElements) -1; + + if ($textElements[$n]['name'] === 'p') { - $backLinksMarkup = ' '.$backLinksMarkup; + $backLinkElements = array_merge( + array( + array( + 'rawHtml' => ' ', + 'allowRawHtmlInSafeMode' => true, + ), + ), + $backLinkElements + ); - $text = substr_replace($text, $backLinksMarkup.'

', - 4); + unset($textElements[$n]['name']); + + $textElements[$n] = array( + 'name' => 'p', + 'elements' => array_merge( + array($textElements[$n]), + $backLinkElements + ), + ); } else { - $text .= "\n".'

'.$backLinksMarkup.'

'; + $textElements[] = array( + 'name' => 'p', + 'elements' => $backLinkElements + ); } - $Element['text'][1]['text'] []= array( + $Element['elements'][1]['elements'] []= array( 'name' => 'li', 'attributes' => array('id' => 'fn:'.$definitionId), - 'rawHtml' => "\n".$text."\n", + 'elements' => array_merge( + $textElements + ), ); } diff --git a/bibli/parsedown-extra/README.md b/bibli/parsedown-extra/README.md new file mode 100644 index 0000000..cee4b54 --- /dev/null +++ b/bibli/parsedown-extra/README.md @@ -0,0 +1,31 @@ +> You might also like [Caret](http://caret.io?ref=parsedown) - our Markdown editor for the Desktop. + +## Parsedown Extra + +[![Build Status](https://img.shields.io/travis/erusev/parsedown-extra/master.svg?style=flat-square)](https://travis-ci.org/erusev/parsedown-extra) + +An extension of [Parsedown](http://parsedown.org) that adds support for [Markdown Extra](https://michelf.ca/projects/php-markdown/extra/). + +[See Demo](http://parsedown.org/extra/) + +### Installation + +Include both `Parsedown.php` and `ParsedownExtra.php` or install [the composer package](https://packagist.org/packages/erusev/parsedown-extra). + +### Example + +``` php +$Extra = new ParsedownExtra(); + +echo $Extra->text('# Header {.sth}'); # prints:

Header

+``` + +### Questions + +**Who uses Parsedown Extra?** + +[October CMS](http://octobercms.com/), [Bolt CMS](http://bolt.cm/), [Kirby CMS](http://getkirby.com/), [Grav CMS](http://getgrav.org/), [Statamic CMS](http://www.statamic.com/) and [more](https://www.versioneye.com/php/erusev:parsedown-extra/references). + +**How can I help?** + +Use it, star it, share it and in case you feel generous, [donate some money](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2). diff --git a/bibli/parsedown/Parsedown.php b/bibli/parsedown/Parsedown.php index 1b9d6d5..ae0cbde 100755 --- a/bibli/parsedown/Parsedown.php +++ b/bibli/parsedown/Parsedown.php @@ -17,11 +17,24 @@ class Parsedown { # ~ - const version = '1.7.4'; + const version = '1.8.0-beta-7'; # ~ function text($text) + { + $Elements = $this->textElements($text); + + # convert to markup + $markup = $this->elements($Elements); + + # trim line breaks + $markup = trim($markup, "\n"); + + return $markup; + } + + protected function textElements($text) { # make sure no definitions are set $this->DefinitionData = array(); @@ -36,12 +49,7 @@ class Parsedown $lines = explode("\n", $text); # iterate through lines to identify blocks - $markup = $this->lines($lines); - - # trim line breaks - $markup = trim($markup, "\n"); - - return $markup; + return $this->linesElements($lines); } # @@ -84,12 +92,22 @@ class Parsedown protected $safeMode; + function setStrictMode($strictMode) + { + $this->strictMode = (bool) $strictMode; + + return $this; + } + + protected $strictMode; + protected $safeLinksWhitelist = array( 'http://', 'https://', 'ftp://', 'ftps://', 'mailto:', + 'tel:', 'data:image/png;base64,', 'data:image/gif;base64,', 'data:image/jpeg;base64,', @@ -143,6 +161,12 @@ class Parsedown protected function lines(array $lines) { + return $this->elements($this->linesElements($lines)); + } + + protected function linesElements(array $lines) + { + $Elements = array(); $CurrentBlock = null; foreach ($lines as $line) @@ -151,35 +175,25 @@ class Parsedown { if (isset($CurrentBlock)) { - $CurrentBlock['interrupted'] = true; + $CurrentBlock['interrupted'] = (isset($CurrentBlock['interrupted']) + ? $CurrentBlock['interrupted'] + 1 : 1 + ); } continue; } - if (strpos($line, "\t") !== false) + while (($beforeTab = strstr($line, "\t", true)) !== false) { - $parts = explode("\t", $line); + $shortage = 4 - mb_strlen($beforeTab, 'utf-8') % 4; - $line = $parts[0]; - - unset($parts[0]); - - foreach ($parts as $part) - { - $shortage = 4 - mb_strlen($line, 'utf-8') % 4; - - $line .= str_repeat(' ', $shortage); - $line .= $part; - } + $line = $beforeTab + . str_repeat(' ', $shortage) + . substr($line, strlen($beforeTab) + 1) + ; } - $indent = 0; - - while (isset($line[$indent]) and $line[$indent] === ' ') - { - $indent ++; - } + $indent = strspn($line, ' '); $text = $indent > 0 ? substr($line, $indent) : $line; @@ -191,7 +205,8 @@ class Parsedown if (isset($CurrentBlock['continuable'])) { - $Block = $this->{'block'.$CurrentBlock['type'].'Continue'}($Line, $CurrentBlock); + $methodName = 'block' . $CurrentBlock['type'] . 'Continue'; + $Block = $this->$methodName($Line, $CurrentBlock); if (isset($Block)) { @@ -203,7 +218,8 @@ class Parsedown { if ($this->isBlockCompletable($CurrentBlock['type'])) { - $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); + $methodName = 'block' . $CurrentBlock['type'] . 'Complete'; + $CurrentBlock = $this->$methodName($CurrentBlock); } } } @@ -229,7 +245,7 @@ class Parsedown foreach ($blockTypes as $blockType) { - $Block = $this->{'block'.$blockType}($Line, $CurrentBlock); + $Block = $this->{"block$blockType"}($Line, $CurrentBlock); if (isset($Block)) { @@ -237,7 +253,10 @@ class Parsedown if ( ! isset($Block['identified'])) { - $Blocks []= $CurrentBlock; + if (isset($CurrentBlock)) + { + $Elements[] = $this->extractElement($CurrentBlock); + } $Block['identified'] = true; } @@ -255,13 +274,21 @@ class Parsedown # ~ - if (isset($CurrentBlock) and ! isset($CurrentBlock['type']) and ! isset($CurrentBlock['interrupted'])) + if (isset($CurrentBlock) and $CurrentBlock['type'] === 'Paragraph') { - $CurrentBlock['element']['text'] .= "\n".$text; + $Block = $this->paragraphContinue($Line, $CurrentBlock); + } + + if (isset($Block)) + { + $CurrentBlock = $Block; } else { - $Blocks []= $CurrentBlock; + if (isset($CurrentBlock)) + { + $Elements[] = $this->extractElement($CurrentBlock); + } $CurrentBlock = $this->paragraph($Line); @@ -273,45 +300,47 @@ class Parsedown if (isset($CurrentBlock['continuable']) and $this->isBlockCompletable($CurrentBlock['type'])) { - $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); + $methodName = 'block' . $CurrentBlock['type'] . 'Complete'; + $CurrentBlock = $this->$methodName($CurrentBlock); } # ~ - $Blocks []= $CurrentBlock; - - unset($Blocks[0]); - - # ~ - - $markup = ''; - - foreach ($Blocks as $Block) + if (isset($CurrentBlock)) { - if (isset($Block['hidden'])) - { - continue; - } - - $markup .= "\n"; - $markup .= isset($Block['markup']) ? $Block['markup'] : $this->element($Block['element']); + $Elements[] = $this->extractElement($CurrentBlock); } - $markup .= "\n"; - # ~ - return $markup; + return $Elements; + } + + protected function extractElement(array $Component) + { + if ( ! isset($Component['element'])) + { + if (isset($Component['markup'])) + { + $Component['element'] = array('rawHtml' => $Component['markup']); + } + elseif (isset($Component['hidden'])) + { + $Component['element'] = array(); + } + } + + return $Component['element']; } protected function isBlockContinuable($Type) { - return method_exists($this, 'block'.$Type.'Continue'); + return method_exists($this, 'block' . $Type . 'Continue'); } protected function isBlockCompletable($Type) { - return method_exists($this, 'block'.$Type.'Complete'); + return method_exists($this, 'block' . $Type . 'Complete'); } # @@ -319,7 +348,7 @@ class Parsedown protected function blockCode($Line, $Block = null) { - if (isset($Block) and ! isset($Block['type']) and ! isset($Block['interrupted'])) + if (isset($Block) and $Block['type'] === 'Paragraph' and ! isset($Block['interrupted'])) { return; } @@ -331,8 +360,7 @@ class Parsedown $Block = array( 'element' => array( 'name' => 'pre', - 'handler' => 'element', - 'text' => array( + 'element' => array( 'name' => 'code', 'text' => $text, ), @@ -349,16 +377,16 @@ class Parsedown { if (isset($Block['interrupted'])) { - $Block['element']['text']['text'] .= "\n"; + $Block['element']['element']['text'] .= str_repeat("\n", $Block['interrupted']); unset($Block['interrupted']); } - $Block['element']['text']['text'] .= "\n"; + $Block['element']['element']['text'] .= "\n"; $text = substr($Line['body'], 4); - $Block['element']['text']['text'] .= $text; + $Block['element']['element']['text'] .= $text; return $Block; } @@ -366,10 +394,6 @@ class Parsedown protected function blockCodeComplete($Block) { - $text = $Block['element']['text']['text']; - - $Block['element']['text']['text'] = $text; - return $Block; } @@ -383,13 +407,16 @@ class Parsedown return; } - if (isset($Line['text'][3]) and $Line['text'][3] === '-' and $Line['text'][2] === '-' and $Line['text'][1] === '!') + if (strpos($Line['text'], '$/', $Line['text'])) + if (strpos($Line['text'], '-->') !== false) { $Block['closed'] = true; } @@ -405,9 +432,9 @@ class Parsedown return; } - $Block['markup'] .= "\n" . $Line['body']; + $Block['element']['rawHtml'] .= "\n" . $Line['body']; - if (preg_match('/-->$/', $Line['text'])) + if (strpos($Line['text'], '-->') !== false) { $Block['closed'] = true; } @@ -420,47 +447,56 @@ class Parsedown protected function blockFencedCode($Line) { - if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([^`]+)?[ ]*$/', $Line['text'], $matches)) + $marker = $Line['text'][0]; + + $openerLength = strspn($Line['text'], $marker); + + if ($openerLength < 3) { - $Element = array( - 'name' => 'code', - 'text' => '', - ); - - if (isset($matches[1])) - { - /** - * https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes - * Every HTML element may have a class attribute specified. - * The attribute, if specified, must have a value that is a set - * of space-separated tokens representing the various classes - * that the element belongs to. - * [...] - * The space characters, for the purposes of this specification, - * are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab), - * U+000A LINE FEED (LF), U+000C FORM FEED (FF), and - * U+000D CARRIAGE RETURN (CR). - */ - $language = substr($matches[1], 0, strcspn($matches[1], " \t\n\f\r")); - - $class = 'language-'.$language; - - $Element['attributes'] = array( - 'class' => $class, - ); - } - - $Block = array( - 'char' => $Line['text'][0], - 'element' => array( - 'name' => 'pre', - 'handler' => 'element', - 'text' => $Element, - ), - ); - - return $Block; + return; } + + $infostring = trim(substr($Line['text'], $openerLength), "\t "); + + if (strpos($infostring, '`') !== false) + { + return; + } + + $Element = array( + 'name' => 'code', + 'text' => '', + ); + + if ($infostring !== '') + { + /** + * https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes + * Every HTML element may have a class attribute specified. + * The attribute, if specified, must have a value that is a set + * of space-separated tokens representing the various classes + * that the element belongs to. + * [...] + * The space characters, for the purposes of this specification, + * are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab), + * U+000A LINE FEED (LF), U+000C FORM FEED (FF), and + * U+000D CARRIAGE RETURN (CR). + */ + $language = substr($infostring, 0, strcspn($infostring, " \t\n\f\r")); + + $Element['attributes'] = array('class' => "language-$language"); + } + + $Block = array( + 'char' => $marker, + 'openerLength' => $openerLength, + 'element' => array( + 'name' => 'pre', + 'element' => $Element, + ), + ); + + return $Block; } protected function blockFencedCodeContinue($Line, $Block) @@ -472,31 +508,28 @@ class Parsedown if (isset($Block['interrupted'])) { - $Block['element']['text']['text'] .= "\n"; + $Block['element']['element']['text'] .= str_repeat("\n", $Block['interrupted']); unset($Block['interrupted']); } - if (preg_match('/^'.$Block['char'].'{3,}[ ]*$/', $Line['text'])) - { - $Block['element']['text']['text'] = substr($Block['element']['text']['text'], 1); + if (($len = strspn($Line['text'], $Block['char'])) >= $Block['openerLength'] + and chop(substr($Line['text'], $len), ' ') === '' + ) { + $Block['element']['element']['text'] = substr($Block['element']['element']['text'], 1); $Block['complete'] = true; return $Block; } - $Block['element']['text']['text'] .= "\n".$Line['body']; + $Block['element']['element']['text'] .= "\n" . $Line['body']; return $Block; } protected function blockFencedCodeComplete($Block) { - $text = $Block['element']['text']['text']; - - $Block['element']['text']['text'] = $text; - return $Block; } @@ -505,71 +538,103 @@ class Parsedown protected function blockHeader($Line) { - if (isset($Line['text'][1])) + $level = strspn($Line['text'], '#'); + + if ($level > 6) { - $level = 1; - - while (isset($Line['text'][$level]) and $Line['text'][$level] === '#') - { - $level ++; - } - - if ($level > 6) - { - return; - } - - $text = trim($Line['text'], '# '); - - $Block = array( - 'element' => array( - 'name' => 'h' . min(6, $level), - 'text' => $text, - 'handler' => 'line', - ), - ); - - return $Block; + return; } + + $text = trim($Line['text'], '#'); + + if ($this->strictMode and isset($text[0]) and $text[0] !== ' ') + { + return; + } + + $text = trim($text, ' '); + + $Block = array( + 'element' => array( + 'name' => 'h' . $level, + 'handler' => array( + 'function' => 'lineElements', + 'argument' => $text, + 'destination' => 'elements', + ) + ), + ); + + return $Block; } # # List - protected function blockList($Line) + protected function blockList($Line, array $CurrentBlock = null) { - list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]+[.]'); + list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]{1,9}+[.\)]'); - if (preg_match('/^('.$pattern.'[ ]+)(.*)/', $Line['text'], $matches)) + if (preg_match('/^('.$pattern.'([ ]++|$))(.*+)/', $Line['text'], $matches)) { + $contentIndent = strlen($matches[2]); + + if ($contentIndent >= 5) + { + $contentIndent -= 1; + $matches[1] = substr($matches[1], 0, -$contentIndent); + $matches[3] = str_repeat(' ', $contentIndent) . $matches[3]; + } + elseif ($contentIndent === 0) + { + $matches[1] .= ' '; + } + + $markerWithoutWhitespace = strstr($matches[1], ' ', true); + $Block = array( 'indent' => $Line['indent'], 'pattern' => $pattern, + 'data' => array( + 'type' => $name, + 'marker' => $matches[1], + 'markerType' => ($name === 'ul' ? $markerWithoutWhitespace : substr($markerWithoutWhitespace, -1)), + ), 'element' => array( 'name' => $name, - 'handler' => 'elements', + 'elements' => array(), ), ); + $Block['data']['markerTypeRegex'] = preg_quote($Block['data']['markerType'], '/'); - if($name === 'ol') + if ($name === 'ol') { - $listStart = stristr($matches[0], '.', true); + $listStart = ltrim(strstr($matches[1], $Block['data']['markerType'], true), '0') ?: '0'; - if($listStart !== '1') + if ($listStart !== '1') { + if ( + isset($CurrentBlock) + and $CurrentBlock['type'] === 'Paragraph' + and ! isset($CurrentBlock['interrupted']) + ) { + return; + } + $Block['element']['attributes'] = array('start' => $listStart); } } $Block['li'] = array( 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $matches[2], - ), + 'handler' => array( + 'function' => 'li', + 'argument' => !empty($matches[3]) ? array($matches[3]) : array(), + 'destination' => 'elements' + ) ); - $Block['element']['text'] []= & $Block['li']; + $Block['element']['elements'] []= & $Block['li']; return $Block; } @@ -577,11 +642,27 @@ class Parsedown protected function blockListContinue($Line, array $Block) { - if ($Block['indent'] === $Line['indent'] and preg_match('/^'.$Block['pattern'].'(?:[ ]+(.*)|$)/', $Line['text'], $matches)) + if (isset($Block['interrupted']) and empty($Block['li']['handler']['argument'])) { + return null; + } + + $requiredIndent = ($Block['indent'] + strlen($Block['data']['marker'])); + + if ($Line['indent'] < $requiredIndent + and ( + ( + $Block['data']['type'] === 'ol' + and preg_match('/^[0-9]++'.$Block['data']['markerTypeRegex'].'(?:[ ]++(.*)|$)/', $Line['text'], $matches) + ) or ( + $Block['data']['type'] === 'ul' + and preg_match('/^'.$Block['data']['markerTypeRegex'].'(?:[ ]++(.*)|$)/', $Line['text'], $matches) + ) + ) + ) { if (isset($Block['interrupted'])) { - $Block['li']['text'] []= ''; + $Block['li']['handler']['argument'] []= ''; $Block['loose'] = true; @@ -592,42 +673,54 @@ class Parsedown $text = isset($matches[1]) ? $matches[1] : ''; + $Block['indent'] = $Line['indent']; + $Block['li'] = array( 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $text, - ), + 'handler' => array( + 'function' => 'li', + 'argument' => array($text), + 'destination' => 'elements' + ) ); - $Block['element']['text'] []= & $Block['li']; + $Block['element']['elements'] []= & $Block['li']; return $Block; } + elseif ($Line['indent'] < $requiredIndent and $this->blockList($Line)) + { + return null; + } if ($Line['text'][0] === '[' and $this->blockReference($Line)) { return $Block; } - if ( ! isset($Block['interrupted'])) + if ($Line['indent'] >= $requiredIndent) { - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); + if (isset($Block['interrupted'])) + { + $Block['li']['handler']['argument'] []= ''; - $Block['li']['text'] []= $text; + $Block['loose'] = true; + + unset($Block['interrupted']); + } + + $text = substr($Line['body'], $requiredIndent); + + $Block['li']['handler']['argument'] []= $text; return $Block; } - if ($Line['indent'] > 0) + if ( ! isset($Block['interrupted'])) { - $Block['li']['text'] []= ''; + $text = preg_replace('/^[ ]{0,'.$requiredIndent.'}+/', '', $Line['body']); - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - unset($Block['interrupted']); + $Block['li']['handler']['argument'] []= $text; return $Block; } @@ -637,11 +730,11 @@ class Parsedown { if (isset($Block['loose'])) { - foreach ($Block['element']['text'] as &$li) + foreach ($Block['element']['elements'] as &$li) { - if (end($li['text']) !== '') + if (end($li['handler']['argument']) !== '') { - $li['text'] []= ''; + $li['handler']['argument'] []= ''; } } } @@ -654,13 +747,16 @@ class Parsedown protected function blockQuote($Line) { - if (preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) + if (preg_match('/^>[ ]?+(.*+)/', $Line['text'], $matches)) { $Block = array( 'element' => array( 'name' => 'blockquote', - 'handler' => 'lines', - 'text' => (array) $matches[1], + 'handler' => array( + 'function' => 'linesElements', + 'argument' => (array) $matches[1], + 'destination' => 'elements', + ) ), ); @@ -670,23 +766,21 @@ class Parsedown protected function blockQuoteContinue($Line, array $Block) { - if ($Line['text'][0] === '>' and preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) + if (isset($Block['interrupted'])) { - if (isset($Block['interrupted'])) - { - $Block['element']['text'] []= ''; + return; + } - unset($Block['interrupted']); - } - - $Block['element']['text'] []= $matches[1]; + if ($Line['text'][0] === '>' and preg_match('/^>[ ]?+(.*+)/', $Line['text'], $matches)) + { + $Block['element']['handler']['argument'] []= $matches[1]; return $Block; } if ( ! isset($Block['interrupted'])) { - $Block['element']['text'] []= $Line['text']; + $Block['element']['handler']['argument'] []= $Line['text']; return $Block; } @@ -697,11 +791,13 @@ class Parsedown protected function blockRule($Line) { - if (preg_match('/^(['.$Line['text'][0].'])([ ]*\1){2,}[ ]*$/', $Line['text'])) + $marker = $Line['text'][0]; + + if (substr_count($Line['text'], $marker) >= 3 and chop($Line['text'], " $marker") === '') { $Block = array( 'element' => array( - 'name' => 'hr' + 'name' => 'hr', ), ); @@ -714,12 +810,12 @@ class Parsedown protected function blockSetextHeader($Line, array $Block = null) { - if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) + if ( ! isset($Block) or $Block['type'] !== 'Paragraph' or isset($Block['interrupted'])) { return; } - if (chop($Line['text'], $Line['text'][0]) === '') + if ($Line['indent'] < 4 and chop(chop($Line['text'], ' '), $Line['text'][0]) === '') { $Block['element']['name'] = $Line['text'][0] === '=' ? 'h1' : 'h2'; @@ -737,7 +833,7 @@ class Parsedown return; } - if (preg_match('/^<(\w[\w-]*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\/)?>/', $Line['text'], $matches)) + if (preg_match('/^<[\/]?+(\w*)(?:[ ]*+'.$this->regexHtmlAttribute.')*+[ ]*+(\/)?>/', $Line['text'], $matches)) { $element = strtolower($matches[1]); @@ -748,72 +844,24 @@ class Parsedown $Block = array( 'name' => $matches[1], - 'depth' => 0, - 'markup' => $Line['text'], + 'element' => array( + 'rawHtml' => $Line['text'], + 'autobreak' => true, + ), ); - $length = strlen($matches[0]); - - $remainder = substr($Line['text'], $length); - - if (trim($remainder) === '') - { - if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) - { - $Block['closed'] = true; - - $Block['void'] = true; - } - } - else - { - if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) - { - return; - } - - if (preg_match('/<\/'.$matches[1].'>[ ]*$/i', $remainder)) - { - $Block['closed'] = true; - } - } - return $Block; } } protected function blockMarkupContinue($Line, array $Block) { - if (isset($Block['closed'])) + if (isset($Block['closed']) or isset($Block['interrupted'])) { return; } - if (preg_match('/^<'.$Block['name'].'(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*>/i', $Line['text'])) # open - { - $Block['depth'] ++; - } - - if (preg_match('/(.*?)<\/'.$Block['name'].'>[ ]*$/i', $Line['text'], $matches)) # close - { - if ($Block['depth'] > 0) - { - $Block['depth'] --; - } - else - { - $Block['closed'] = true; - } - } - - if (isset($Block['interrupted'])) - { - $Block['markup'] .= "\n"; - - unset($Block['interrupted']); - } - - $Block['markup'] .= "\n".$Line['body']; + $Block['element']['rawHtml'] .= "\n" . $Line['body']; return $Block; } @@ -823,24 +871,20 @@ class Parsedown protected function blockReference($Line) { - if (preg_match('/^\[(.+?)\]:[ ]*?(?:[ ]+["\'(](.+)["\')])?[ ]*$/', $Line['text'], $matches)) - { + if (strpos($Line['text'], ']') !== false + and preg_match('/^\[(.+?)\]:[ ]*+?(?:[ ]+["\'(](.+)["\')])?[ ]*+$/', $Line['text'], $matches) + ) { $id = strtolower($matches[1]); $Data = array( 'url' => $matches[2], - 'title' => null, + 'title' => isset($matches[3]) ? $matches[3] : null, ); - if (isset($matches[3])) - { - $Data['title'] = $matches[3]; - } - $this->DefinitionData['Reference'][$id] = $Data; $Block = array( - 'hidden' => true, + 'element' => array(), ); return $Block; @@ -852,109 +896,125 @@ class Parsedown protected function blockTable($Line, array $Block = null) { - if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) + if ( ! isset($Block) or $Block['type'] !== 'Paragraph' or isset($Block['interrupted'])) { return; } - if (strpos($Block['element']['text'], '|') !== false and chop($Line['text'], ' -:|') === '') - { - $alignments = array(); - - $divider = $Line['text']; - - $divider = trim($divider); - $divider = trim($divider, '|'); - - $dividerCells = explode('|', $divider); - - foreach ($dividerCells as $dividerCell) - { - $dividerCell = trim($dividerCell); - - if ($dividerCell === '') - { - continue; - } - - $alignment = null; - - if ($dividerCell[0] === ':') - { - $alignment = 'left'; - } - - if (substr($dividerCell, - 1) === ':') - { - $alignment = $alignment === 'left' ? 'center' : 'right'; - } - - $alignments []= $alignment; - } - - # ~ - - $HeaderElements = array(); - - $header = $Block['element']['text']; - - $header = trim($header); - $header = trim($header, '|'); - - $headerCells = explode('|', $header); - - foreach ($headerCells as $index => $headerCell) - { - $headerCell = trim($headerCell); - - $HeaderElement = array( - 'name' => 'th', - 'text' => $headerCell, - 'handler' => 'line', - ); - - if (isset($alignments[$index])) - { - $alignment = $alignments[$index]; - - $HeaderElement['attributes'] = array( - 'style' => 'text-align: '.$alignment.';', - ); - } - - $HeaderElements []= $HeaderElement; - } - - # ~ - - $Block = array( - 'alignments' => $alignments, - 'identified' => true, - 'element' => array( - 'name' => 'table', - 'handler' => 'elements', - ), - ); - - $Block['element']['text'] []= array( - 'name' => 'thead', - 'handler' => 'elements', - ); - - $Block['element']['text'] []= array( - 'name' => 'tbody', - 'handler' => 'elements', - 'text' => array(), - ); - - $Block['element']['text'][0]['text'] []= array( - 'name' => 'tr', - 'handler' => 'elements', - 'text' => $HeaderElements, - ); - - return $Block; + if ( + strpos($Block['element']['handler']['argument'], '|') === false + and strpos($Line['text'], '|') === false + and strpos($Line['text'], ':') === false + or strpos($Block['element']['handler']['argument'], "\n") !== false + ) { + return; } + + if (chop($Line['text'], ' -:|') !== '') + { + return; + } + + $alignments = array(); + + $divider = $Line['text']; + + $divider = trim($divider); + $divider = trim($divider, '|'); + + $dividerCells = explode('|', $divider); + + foreach ($dividerCells as $dividerCell) + { + $dividerCell = trim($dividerCell); + + if ($dividerCell === '') + { + return; + } + + $alignment = null; + + if ($dividerCell[0] === ':') + { + $alignment = 'left'; + } + + if (substr($dividerCell, - 1) === ':') + { + $alignment = $alignment === 'left' ? 'center' : 'right'; + } + + $alignments []= $alignment; + } + + # ~ + + $HeaderElements = array(); + + $header = $Block['element']['handler']['argument']; + + $header = trim($header); + $header = trim($header, '|'); + + $headerCells = explode('|', $header); + + if (count($headerCells) !== count($alignments)) + { + return; + } + + foreach ($headerCells as $index => $headerCell) + { + $headerCell = trim($headerCell); + + $HeaderElement = array( + 'name' => 'th', + 'handler' => array( + 'function' => 'lineElements', + 'argument' => $headerCell, + 'destination' => 'elements', + ) + ); + + if (isset($alignments[$index])) + { + $alignment = $alignments[$index]; + + $HeaderElement['attributes'] = array( + 'style' => "text-align: $alignment;", + ); + } + + $HeaderElements []= $HeaderElement; + } + + # ~ + + $Block = array( + 'alignments' => $alignments, + 'identified' => true, + 'element' => array( + 'name' => 'table', + 'elements' => array(), + ), + ); + + $Block['element']['elements'] []= array( + 'name' => 'thead', + ); + + $Block['element']['elements'] []= array( + 'name' => 'tbody', + 'elements' => array(), + ); + + $Block['element']['elements'][0]['elements'] []= array( + 'name' => 'tr', + 'elements' => $HeaderElements, + ); + + return $Block; } protected function blockTableContinue($Line, array $Block) @@ -964,7 +1024,7 @@ class Parsedown return; } - if ($Line['text'][0] === '|' or strpos($Line['text'], '|')) + if (count($Block['alignments']) === 1 or $Line['text'][0] === '|' or strpos($Line['text'], '|')) { $Elements = array(); @@ -973,22 +1033,27 @@ class Parsedown $row = trim($row); $row = trim($row, '|'); - preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]+`|`)+/', $row, $matches); + preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]++`|`)++/', $row, $matches); - foreach ($matches[0] as $index => $cell) + $cells = array_slice($matches[0], 0, count($Block['alignments'])); + + foreach ($cells as $index => $cell) { $cell = trim($cell); $Element = array( 'name' => 'td', - 'handler' => 'line', - 'text' => $cell, + 'handler' => array( + 'function' => 'lineElements', + 'argument' => $cell, + 'destination' => 'elements', + ) ); if (isset($Block['alignments'][$index])) { $Element['attributes'] = array( - 'style' => 'text-align: '.$Block['alignments'][$index].';', + 'style' => 'text-align: ' . $Block['alignments'][$index] . ';', ); } @@ -997,11 +1062,10 @@ class Parsedown $Element = array( 'name' => 'tr', - 'handler' => 'elements', - 'text' => $Elements, + 'elements' => $Elements, ); - $Block['element']['text'][1]['text'] []= $Element; + $Block['element']['elements'][1]['elements'] []= $Element; return $Block; } @@ -1013,13 +1077,27 @@ class Parsedown protected function paragraph($Line) { - $Block = array( + return array( + 'type' => 'Paragraph', 'element' => array( 'name' => 'p', - 'text' => $Line['text'], - 'handler' => 'line', + 'handler' => array( + 'function' => 'lineElements', + 'argument' => $Line['text'], + 'destination' => 'elements', + ), ), ); + } + + protected function paragraphContinue($Line, array $Block) + { + if (isset($Block['interrupted'])) + { + return; + } + + $Block['element']['handler']['argument'] .= "\n".$Line['text']; return $Block; } @@ -1029,13 +1107,11 @@ class Parsedown # protected $InlineTypes = array( - '"' => array('SpecialCharacter'), '!' => array('Image'), '&' => array('SpecialCharacter'), '*' => array('Emphasis'), ':' => array('Url'), - '<' => array('UrlTag', 'EmailTag', 'Markup', 'SpecialCharacter'), - '>' => array('SpecialCharacter'), + '<' => array('UrlTag', 'EmailTag', 'Markup'), '[' => array('Link'), '_' => array('Emphasis'), '`' => array('Code'), @@ -1045,15 +1121,28 @@ class Parsedown # ~ - protected $inlineMarkerList = '!"*_&[:<>`~\\'; + protected $inlineMarkerList = '!*_&[:<`~\\'; # # ~ # - public function line($text, $nonNestables=array()) + public function line($text, $nonNestables = array()) { - $markup = ''; + return $this->elements($this->lineElements($text, $nonNestables)); + } + + protected function lineElements($text, $nonNestables = array()) + { + # standardize line breaks + $text = str_replace(array("\r\n", "\r"), "\n", $text); + + $Elements = array(); + + $nonNestables = (empty($nonNestables) + ? array() + : array_combine($nonNestables, $nonNestables) + ); # $excerpt is based on the first occurrence of a marker @@ -1061,7 +1150,7 @@ class Parsedown { $marker = $excerpt[0]; - $markerPosition = strpos($text, $marker); + $markerPosition = strlen($text) - strlen($excerpt); $Excerpt = array('text' => $excerpt, 'context' => $text); @@ -1069,12 +1158,12 @@ class Parsedown { # check to see if the current inline type is nestable in the current context - if ( ! empty($nonNestables) and in_array($inlineType, $nonNestables)) + if (isset($nonNestables[$inlineType])) { continue; } - $Inline = $this->{'inline'.$inlineType}($Excerpt); + $Inline = $this->{"inline$inlineType"}($Excerpt); if ( ! isset($Inline)) { @@ -1097,19 +1186,21 @@ class Parsedown # cause the new element to 'inherit' our non nestables - foreach ($nonNestables as $non_nestable) - { - $Inline['element']['nonNestables'][] = $non_nestable; - } + + $Inline['element']['nonNestables'] = isset($Inline['element']['nonNestables']) + ? array_merge($Inline['element']['nonNestables'], $nonNestables) + : $nonNestables + ; # the text that comes before the inline $unmarkedText = substr($text, 0, $Inline['position']); # compile the unmarked text - $markup .= $this->unmarkedText($unmarkedText); + $InlineText = $this->inlineText($unmarkedText); + $Elements[] = $InlineText['element']; # compile the inline - $markup .= isset($Inline['markup']) ? $Inline['markup'] : $this->element($Inline['element']); + $Elements[] = $this->extractElement($Inline); # remove the examined text $text = substr($text, $Inline['position'] + $Inline['extent']); @@ -1121,28 +1212,57 @@ class Parsedown $unmarkedText = substr($text, 0, $markerPosition + 1); - $markup .= $this->unmarkedText($unmarkedText); + $InlineText = $this->inlineText($unmarkedText); + $Elements[] = $InlineText['element']; $text = substr($text, $markerPosition + 1); } - $markup .= $this->unmarkedText($text); + $InlineText = $this->inlineText($text); + $Elements[] = $InlineText['element']; - return $markup; + foreach ($Elements as &$Element) + { + if ( ! isset($Element['autobreak'])) + { + $Element['autobreak'] = false; + } + } + + return $Elements; } # # ~ # + protected function inlineText($text) + { + $Inline = array( + 'extent' => strlen($text), + 'element' => array(), + ); + + $Inline['element']['elements'] = self::pregReplaceElements( + $this->breaksEnabled ? '/[ ]*+\n/' : '/(?:[ ]*+\\\\|[ ]{2,}+)\n/', + array( + array('name' => 'br'), + array('text' => "\n"), + ), + $text + ); + + return $Inline; + } + protected function inlineCode($Excerpt) { $marker = $Excerpt['text'][0]; - if (preg_match('/^('.$marker.'+)[ ]*(.+?)[ ]*(? strlen($matches[0]), @@ -1156,13 +1276,19 @@ class Parsedown protected function inlineEmailTag($Excerpt) { - if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<((mailto:)?\S+?@\S+?)>/i', $Excerpt['text'], $matches)) - { + $hostnameLabel = '[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?'; + + $commonMarkEmail = '[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]++@' + . $hostnameLabel . '(?:\.' . $hostnameLabel . ')*'; + + if (strpos($Excerpt['text'], '>') !== false + and preg_match("/^<((mailto:)?$commonMarkEmail)>/i", $Excerpt['text'], $matches) + ){ $url = $matches[1]; if ( ! isset($matches[2])) { - $url = 'mailto:' . $url; + $url = "mailto:$url"; } return array( @@ -1204,8 +1330,11 @@ class Parsedown 'extent' => strlen($matches[0]), 'element' => array( 'name' => $emphasis, - 'handler' => 'line', - 'text' => $matches[1], + 'handler' => array( + 'function' => 'lineElements', + 'argument' => $matches[1], + 'destination' => 'elements', + ) ), ); } @@ -1215,7 +1344,7 @@ class Parsedown if (isset($Excerpt['text'][1]) and in_array($Excerpt['text'][1], $this->specialCharacters)) { return array( - 'markup' => $Excerpt['text'][1], + 'element' => array('rawHtml' => $Excerpt['text'][1]), 'extent' => 2, ); } @@ -1243,8 +1372,9 @@ class Parsedown 'name' => 'img', 'attributes' => array( 'src' => $Link['element']['attributes']['href'], - 'alt' => $Link['element']['text'], + 'alt' => $Link['element']['handler']['argument'], ), + 'autobreak' => true, ), ); @@ -1259,9 +1389,12 @@ class Parsedown { $Element = array( 'name' => 'a', - 'handler' => 'line', + 'handler' => array( + 'function' => 'lineElements', + 'argument' => null, + 'destination' => 'elements', + ), 'nonNestables' => array('Url', 'Link'), - 'text' => null, 'attributes' => array( 'href' => null, 'title' => null, @@ -1274,7 +1407,7 @@ class Parsedown if (preg_match('/\[((?:[^][]++|(?R))*+)\]/', $remainder, $matches)) { - $Element['text'] = $matches[1]; + $Element['handler']['argument'] = $matches[1]; $extent += strlen($matches[0]); @@ -1285,7 +1418,7 @@ class Parsedown return; } - if (preg_match('/^[(]\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+("[^"]*"|\'[^\']*\'))?\s*[)]/', $remainder, $matches)) + if (preg_match('/^[(]\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+("[^"]*+"|\'[^\']*+\'))?\s*+[)]/', $remainder, $matches)) { $Element['attributes']['href'] = $matches[1]; @@ -1300,14 +1433,14 @@ class Parsedown { if (preg_match('/^\s*\[(.*?)\]/', $remainder, $matches)) { - $definition = strlen($matches[1]) ? $matches[1] : $Element['text']; + $definition = strlen($matches[1]) ? $matches[1] : $Element['handler']['argument']; $definition = strtolower($definition); $extent += strlen($matches[0]); } else { - $definition = strtolower($Element['text']); + $definition = strtolower($Element['handler']['argument']); } if ( ! isset($this->DefinitionData['Reference'][$definition])) @@ -1334,26 +1467,26 @@ class Parsedown return; } - if ($Excerpt['text'][1] === '/' and preg_match('/^<\/\w[\w-]*[ ]*>/s', $Excerpt['text'], $matches)) + if ($Excerpt['text'][1] === '/' and preg_match('/^<\/\w[\w-]*+[ ]*+>/s', $Excerpt['text'], $matches)) { return array( - 'markup' => $matches[0], + 'element' => array('rawHtml' => $matches[0]), 'extent' => strlen($matches[0]), ); } - if ($Excerpt['text'][1] === '!' and preg_match('/^/s', $Excerpt['text'], $matches)) + if ($Excerpt['text'][1] === '!' and preg_match('/^/s', $Excerpt['text'], $matches)) { return array( - 'markup' => $matches[0], + 'element' => array('rawHtml' => $matches[0]), 'extent' => strlen($matches[0]), ); } - if ($Excerpt['text'][1] !== ' ' and preg_match('/^<\w[\w-]*(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*\/?>/s', $Excerpt['text'], $matches)) + if ($Excerpt['text'][1] !== ' ' and preg_match('/^<\w[\w-]*+(?:[ ]*+'.$this->regexHtmlAttribute.')*+[ ]*+\/?>/s', $Excerpt['text'], $matches)) { return array( - 'markup' => $matches[0], + 'element' => array('rawHtml' => $matches[0]), 'extent' => strlen($matches[0]), ); } @@ -1361,23 +1494,16 @@ class Parsedown protected function inlineSpecialCharacter($Excerpt) { - if ($Excerpt['text'][0] === '&' and ! preg_match('/^&#?\w+;/', $Excerpt['text'])) - { + if (substr($Excerpt['text'], 1, 1) !== ' ' and strpos($Excerpt['text'], ';') !== false + and preg_match('/^&(#?+[0-9a-zA-Z]++);/', $Excerpt['text'], $matches) + ) { return array( - 'markup' => '&', - 'extent' => 1, + 'element' => array('rawHtml' => '&' . $matches[1] . ';'), + 'extent' => strlen($matches[0]), ); } - $SpecialCharacter = array('>' => 'gt', '<' => 'lt', '"' => 'quot'); - - if (isset($SpecialCharacter[$Excerpt['text'][0]])) - { - return array( - 'markup' => '&'.$SpecialCharacter[$Excerpt['text'][0]].';', - 'extent' => 1, - ); - } + return; } protected function inlineStrikethrough($Excerpt) @@ -1393,8 +1519,11 @@ class Parsedown 'extent' => strlen($matches[0]), 'element' => array( 'name' => 'del', - 'text' => $matches[1], - 'handler' => 'line', + 'handler' => array( + 'function' => 'lineElements', + 'argument' => $matches[1], + 'destination' => 'elements', + ) ), ); } @@ -1407,8 +1536,9 @@ class Parsedown return; } - if (preg_match('/\bhttps?:[\/]{2}[^\s<]+\b\/*/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE)) - { + if (strpos($Excerpt['context'], 'http') !== false + and preg_match('/\bhttps?+:[\/]{2}[^\s<]+\b\/*+/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE) + ) { $url = $matches[0][0]; $Inline = array( @@ -1429,7 +1559,7 @@ class Parsedown protected function inlineUrlTag($Excerpt) { - if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<(\w+:\/{2}[^ >]+)>/i', $Excerpt['text'], $matches)) + if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<(\w++:\/{2}[^ >]++)>/i', $Excerpt['text'], $matches)) { $url = $matches[1]; @@ -1450,23 +1580,112 @@ class Parsedown protected function unmarkedText($text) { - if ($this->breaksEnabled) - { - $text = preg_replace('/[ ]*\n/', "
\n", $text); - } - else - { - $text = preg_replace('/(?:[ ][ ]+|[ ]*\\\\)\n/', "
\n", $text); - $text = str_replace(" \n", "\n", $text); - } - - return $text; + $Inline = $this->inlineText($text); + return $this->element($Inline['element']); } # # Handlers # + protected function handle(array $Element) + { + if (isset($Element['handler'])) + { + if (!isset($Element['nonNestables'])) + { + $Element['nonNestables'] = array(); + } + + if (is_string($Element['handler'])) + { + $function = $Element['handler']; + $argument = $Element['text']; + unset($Element['text']); + $destination = 'rawHtml'; + } + else + { + $function = $Element['handler']['function']; + $argument = $Element['handler']['argument']; + $destination = $Element['handler']['destination']; + } + + $Element[$destination] = $this->{$function}($argument, $Element['nonNestables']); + + if ($destination === 'handler') + { + $Element = $this->handle($Element); + } + + unset($Element['handler']); + } + + return $Element; + } + + protected function handleElementRecursive(array $Element) + { + return $this->elementApplyRecursive(array($this, 'handle'), $Element); + } + + protected function handleElementsRecursive(array $Elements) + { + return $this->elementsApplyRecursive(array($this, 'handle'), $Elements); + } + + protected function elementApplyRecursive($closure, array $Element) + { + $Element = call_user_func($closure, $Element); + + if (isset($Element['elements'])) + { + $Element['elements'] = $this->elementsApplyRecursive($closure, $Element['elements']); + } + elseif (isset($Element['element'])) + { + $Element['element'] = $this->elementApplyRecursive($closure, $Element['element']); + } + + return $Element; + } + + protected function elementApplyRecursiveDepthFirst($closure, array $Element) + { + if (isset($Element['elements'])) + { + $Element['elements'] = $this->elementsApplyRecursiveDepthFirst($closure, $Element['elements']); + } + elseif (isset($Element['element'])) + { + $Element['element'] = $this->elementsApplyRecursiveDepthFirst($closure, $Element['element']); + } + + $Element = call_user_func($closure, $Element); + + return $Element; + } + + protected function elementsApplyRecursive($closure, array $Elements) + { + foreach ($Elements as &$Element) + { + $Element = $this->elementApplyRecursive($closure, $Element); + } + + return $Elements; + } + + protected function elementsApplyRecursiveDepthFirst($closure, array $Elements) + { + foreach ($Elements as &$Element) + { + $Element = $this->elementApplyRecursiveDepthFirst($closure, $Element); + } + + return $Elements; + } + protected function element(array $Element) { if ($this->safeMode) @@ -1474,18 +1693,28 @@ class Parsedown $Element = $this->sanitiseElement($Element); } - $markup = '<'.$Element['name']; + # identity map if element has no handler + $Element = $this->handle($Element); - if (isset($Element['attributes'])) + $hasName = isset($Element['name']); + + $markup = ''; + + if ($hasName) { - foreach ($Element['attributes'] as $name => $value) - { - if ($value === null) - { - continue; - } + $markup .= '<' . $Element['name']; - $markup .= ' '.$name.'="'.self::escape($value).'"'; + if (isset($Element['attributes'])) + { + foreach ($Element['attributes'] as $name => $value) + { + if ($value === null) + { + continue; + } + + $markup .= " $name=\"".self::escape($value).'"'; + } } } @@ -1500,35 +1729,40 @@ class Parsedown elseif (isset($Element['rawHtml'])) { $text = $Element['rawHtml']; + $allowRawHtmlInSafeMode = isset($Element['allowRawHtmlInSafeMode']) && $Element['allowRawHtmlInSafeMode']; $permitRawHtml = !$this->safeMode || $allowRawHtmlInSafeMode; } - if (isset($text)) + $hasContent = isset($text) || isset($Element['element']) || isset($Element['elements']); + + if ($hasContent) { - $markup .= '>'; + $markup .= $hasName ? '>' : ''; - if (!isset($Element['nonNestables'])) + if (isset($Element['elements'])) { - $Element['nonNestables'] = array(); + $markup .= $this->elements($Element['elements']); } - - if (isset($Element['handler'])) + elseif (isset($Element['element'])) { - $markup .= $this->{$Element['handler']}($text, $Element['nonNestables']); - } - elseif (!$permitRawHtml) - { - $markup .= self::escape($text, true); + $markup .= $this->element($Element['element']); } else { - $markup .= $text; + if (!$permitRawHtml) + { + $markup .= self::escape($text, true); + } + else + { + $markup .= $text; + } } - $markup .= ''; + $markup .= $hasName ? '' : ''; } - else + elseif ($hasName) { $markup .= ' />'; } @@ -1540,12 +1774,26 @@ class Parsedown { $markup = ''; + $autoBreak = true; + foreach ($Elements as $Element) { - $markup .= "\n" . $this->element($Element); + if (empty($Element)) + { + continue; + } + + $autoBreakNext = (isset($Element['autobreak']) + ? $Element['autobreak'] : isset($Element['name']) + ); + // (autobreak === false) covers both sides of an element + $autoBreak = !$autoBreak ? $autoBreak : $autoBreakNext; + + $markup .= ($autoBreak ? "\n" : '') . $this->element($Element); + $autoBreak = $autoBreakNext; } - $markup .= "\n"; + $markup .= $autoBreak ? "\n" : ''; return $markup; } @@ -1554,21 +1802,49 @@ class Parsedown protected function li($lines) { - $markup = $this->lines($lines); + $Elements = $this->linesElements($lines); - $trimmedMarkup = trim($markup); - - if ( ! in_array('', $lines) and substr($trimmedMarkup, 0, 3) === '

') - { - $markup = $trimmedMarkup; - $markup = substr($markup, 3); - - $position = strpos($markup, "

"); - - $markup = substr_replace($markup, '', $position, 4); + if ( ! in_array('', $lines) + and isset($Elements[0]) and isset($Elements[0]['name']) + and $Elements[0]['name'] === 'p' + ) { + unset($Elements[0]['name']); } - return $markup; + return $Elements; + } + + # + # AST Convenience + # + + /** + * Replace occurrences $regexp with $Elements in $text. Return an array of + * elements representing the replacement. + */ + protected static function pregReplaceElements($regexp, $Elements, $text) + { + $newElements = array(); + + while (preg_match($regexp, $text, $matches, PREG_OFFSET_CAPTURE)) + { + $offset = $matches[0][1]; + $before = substr($text, 0, $offset); + $after = substr($text, $offset + strlen($matches[0][0])); + + $newElements[] = array('text' => $before); + + foreach ($Elements as $Element) + { + $newElements[] = $Element; + } + + $text = $after; + } + + $newElements[] = array('text' => $text); + + return $newElements; } # @@ -1590,6 +1866,12 @@ class Parsedown 'img' => 'src', ); + if ( ! isset($Element['name'])) + { + unset($Element['attributes']); + return $Element; + } + if (isset($safeUrlNameToAtt[$Element['name']])) { $Element = $this->filterUnsafeUrlInAttribute($Element, $safeUrlNameToAtt[$Element['name']]); @@ -1679,12 +1961,12 @@ class Parsedown # Read-Only protected $specialCharacters = array( - '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', + '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', '~' ); protected $StrongRegex = array( - '*' => '/^[*]{2}((?:\\\\\*|[^*]|[*][^*]*[*])+?)[*]{2}(?![*])/s', - '_' => '/^__((?:\\\\_|[^_]|_[^_]*_)+?)__(?!_)/us', + '*' => '/^[*]{2}((?:\\\\\*|[^*]|[*][^*]*+[*])+?)[*]{2}(?![*])/s', + '_' => '/^__((?:\\\\_|[^_]|_[^_]*+_)+?)__(?!_)/us', ); protected $EmRegex = array( @@ -1692,7 +1974,7 @@ class Parsedown '_' => '/^_((?:\\\\_|[^_]|__[^_]*__)+?)_(?!_)\b/us', ); - protected $regexHtmlAttribute = '[a-zA-Z_:][\w:.-]*(?:\s*=\s*(?:[^"\'=<>`\s]+|"[^"]*"|\'[^\']*\'))?'; + protected $regexHtmlAttribute = '[a-zA-Z_:][\w:.-]*+(?:\s*+=\s*+(?:[^"\'=<>`\s]+|"[^"]*+"|\'[^\']*+\'))?+'; protected $voidElements = array( 'area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', diff --git a/bibli/parsedown/README.md b/bibli/parsedown/README.md index b5d9ed2..a4b8c63 100755 --- a/bibli/parsedown/README.md +++ b/bibli/parsedown/README.md @@ -1,49 +1,61 @@ -> I also make [Caret](https://caret.io?ref=parsedown) - a Markdown editor for Mac and PC. + -## Parsedown +

Parsedown

-[![Build Status](https://img.shields.io/travis/erusev/parsedown/master.svg?style=flat-square)](https://travis-ci.org/erusev/parsedown) - +

Parsedown

-Better Markdown Parser in PHP +[![Build Status](https://travis-ci.org/erusev/parsedown.svg)](https://travis-ci.org/erusev/parsedown) +[![Total Downloads](https://poser.pugx.org/erusev/parsedown/d/total.svg)](https://packagist.org/packages/erusev/parsedown) +[![Version](https://poser.pugx.org/erusev/parsedown/v/stable.svg)](https://packagist.org/packages/erusev/parsedown) +[![License](https://poser.pugx.org/erusev/parsedown/license.svg)](https://packagist.org/packages/erusev/parsedown) -[Demo](http://parsedown.org/demo) | -[Benchmarks](http://parsedown.org/speed) | -[Tests](http://parsedown.org/tests/) | -[Documentation](https://github.com/erusev/parsedown/wiki/) +Better Markdown Parser in PHP - Demo. -### Features +## Features * One File * No Dependencies -* Super Fast +* [Super Fast](http://parsedown.org/speed) * Extensible -* [GitHub flavored](https://help.github.com/articles/github-flavored-markdown) -* Tested in 5.3 to 7.1 and in HHVM +* [GitHub flavored](https://github.github.com/gfm) +* [Tested](http://parsedown.org/tests/) in 5.3 to 7.3 * [Markdown Extra extension](https://github.com/erusev/parsedown-extra) -### Installation +## Installation -Include `Parsedown.php` or install [the composer package](https://packagist.org/packages/erusev/parsedown). +Install the [composer package]: -### Example + composer require erusev/parsedown -``` php +Or download the [latest release] and include `Parsedown.php` + +[composer package]: https://packagist.org/packages/erusev/parsedown "The Parsedown package on packagist.org" +[latest release]: https://github.com/erusev/parsedown/releases/latest "The latest release of Parsedown" + +## Example + +```php $Parsedown = new Parsedown(); echo $Parsedown->text('Hello _Parsedown_!'); # prints:

Hello Parsedown!

``` +You can also parse inline markdown only: + +```php +echo $Parsedown->line('Hello _Parsedown_!'); # prints: Hello Parsedown! +``` + More examples in [the wiki](https://github.com/erusev/parsedown/wiki/) and in [this video tutorial](http://youtu.be/wYZBY8DEikI). -### Security +## Security Parsedown is capable of escaping user-input within the HTML that it generates. Additionally Parsedown will apply sanitisation to additional scripting vectors (such as scripting link destinations) that are introduced by the markdown syntax itself. To tell Parsedown that it is processing untrusted user-input, use the following: + ```php -$parsedown = new Parsedown; -$parsedown->setSafeMode(true); +$Parsedown->setSafeMode(true); ``` If instead, you wish to allow HTML within untrusted user-input, but still want output to be free from XSS it is recommended that you make use of a HTML sanitiser that allows HTML tags to be whitelisted, like [HTML Purifier](http://htmlpurifier.org/). @@ -54,18 +66,19 @@ In both cases you should strongly consider employing defence-in-depth measures, Safe mode does not necessarily yield safe results when using extensions to Parsedown. Extensions should be evaluated on their own to determine their specific safety against XSS. -### Escaping HTML -> ⚠️  **WARNING:** This method isn't safe from XSS! +## Escaping HTML + +> **WARNING:** This method isn't safe from XSS! If you wish to escape HTML **in trusted input**, you can use the following: + ```php -$parsedown = new Parsedown; -$parsedown->setMarkupEscaped(true); +$Parsedown->setMarkupEscaped(true); ``` Beware that this still allows users to insert unsafe scripting vectors, such as links like `[xss](javascript:alert%281%29)`. -### Questions +## Questions **How does Parsedown work?** @@ -79,8 +92,12 @@ It passes most of the CommonMark tests. Most of the tests that don't pass deal w **Who uses it?** -[Laravel Framework](https://laravel.com/), [Bolt CMS](http://bolt.cm/), [Grav CMS](http://getgrav.org/), [Herbie CMS](http://www.getherbie.org/), [Kirby CMS](http://getkirby.com/), [October CMS](http://octobercms.com/), [Pico CMS](http://picocms.org), [Statamic CMS](http://www.statamic.com/), [phpDocumentor](http://www.phpdoc.org/), [RaspberryPi.org](http://www.raspberrypi.org/), [Symfony demo](https://github.com/symfony/symfony-demo) and [more](https://packagist.org/packages/erusev/parsedown/dependents). +[Laravel Framework](https://laravel.com/), [Bolt CMS](http://bolt.cm/), [Grav CMS](http://getgrav.org/), [Herbie CMS](http://www.getherbie.org/), [Kirby CMS](http://getkirby.com/), [October CMS](http://octobercms.com/), [Pico CMS](http://picocms.org), [Statamic CMS](http://www.statamic.com/), [phpDocumentor](http://www.phpdoc.org/), [RaspberryPi.org](http://www.raspberrypi.org/), [Symfony Demo](https://github.com/symfony/demo) and [more](https://packagist.org/packages/erusev/parsedown/dependents). **How can I help?** Use it, star it, share it and if you feel generous, [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2). + +**What else should I know?** + +I also make [Nota](https://nota.md/) — a writing app designed for Markdown files :) diff --git a/bibli/ubuntu/.gitignore b/bibli/ubuntu/.gitignore deleted file mode 100755 index ee9cdde..0000000 --- a/bibli/ubuntu/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.DS_Store -webify diff --git a/bibli/ubuntu/CHANGELOG.md b/bibli/ubuntu/CHANGELOG.md deleted file mode 100755 index 23c8a87..0000000 --- a/bibli/ubuntu/CHANGELOG.md +++ /dev/null @@ -1,35 +0,0 @@ -## Changelog - -### v0.1.13 -- Add woff2 files (thanks, @rene-s) - -### v0.1.12 -- Fix missing webfont files - -### v0.1.11 -- Create `package.json` for NPM -- Create `composer.json` for Packagist - -### v0.1.10 -- Improve documentation -- Minify the pure CSS file - -### v0.1.8, v0.1.9 -- Fix problems with the invalid bower.json - -### v0.1.5 – Fixes and improvements -- Greek and Cyrillic charsets added -- Project page created - -### v0.1.3 -- Fixes an issue with sprockets stack creating final files for each *.scss -file instead of importing them to be compiled later as a whole. - -### v0.1.2 -- LESS and SASS files/descriptors available -- The font family is divided into three different files: Ubuntu (ubuntu-base); -Ubuntu Condensed (ubuntu-condensed); and Ubuntu Monospace (ubuntu-mono) - -### v0.1.1 -- Font files provided -- CSS descriptor available diff --git a/bibli/ubuntu/MIT-LICENSE b/bibli/ubuntu/MIT-LICENSE deleted file mode 100755 index 73cb5e2..0000000 --- a/bibli/ubuntu/MIT-LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2016 Ewerton Assis - -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/bibli/ubuntu/README.md b/bibli/ubuntu/README.md deleted file mode 100755 index b54da4c..0000000 --- a/bibli/ubuntu/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Ubuntu Font Family - -> Ubuntu Font Family Bower-ready (also SCSS-ready, LESS-ready, and plain CSS-ready) - -## How to use it - -0. Install it from [Bower](http://bower.io/) - - ```sh - $ bower install [--save] ubuntu-fontface - ``` - - or from [NPM](http://npmjs.com/) - - ```sh - $ npm install [--save] ubuntu-fontface - ``` - -1. Import it on SCSS/LESS/CSS source code. Assuming `{BOWER_PATH}` is `bower_components/`; `{SUFFIX}` options -are `-base`, `-condensed` and `-mono`; `{EXTENSION}` options are `css`, `less`, `scss`, depending -whether you're using pure CSS, [SCSS](http://sass-lang.com/) or [LESS](http://lesscss.org/). The `{SUFFIX}` is -not available if you're importing the pure CSS file. A minified file is available for the pure CSS version. - - ```css - @import "{BOWER_PATH}/ubuntu-fontface/ubuntu{SUFFIX}.{EXTENSION}"; - ``` - -2. If you need any help (or have found any bug 🐞), please post it on -[/issues](//github.com/earaujoassis/ubuntu-fontface/issues). Thank you! - -## Contributors - -- Pavel Rykov ([@PavelRykov](https://github.com/PavelRykov)) -- Jordan Last ([@lastmjs](https://github.com/lastmjs)) -- Rene Schmidt ([@rene-s](https://github.com/rene-s)) - -## License - -The Ubuntu Font Family is distributed under the [Ubuntu Font Licence](http://font.ubuntu.com/licence/). - -The source code in this project is distributed under the [MIT License](http://earaujoassis.mit-license.org/) © Ewerton Assis diff --git a/bibli/ubuntu/UBUNTU-FONT-LICENSE b/bibli/ubuntu/UBUNTU-FONT-LICENSE deleted file mode 100755 index 5a002cf..0000000 --- a/bibli/ubuntu/UBUNTU-FONT-LICENSE +++ /dev/null @@ -1,94 +0,0 @@ -Ubuntu Font License v1.0 - -PREAMBLE -This licence allows the licensed fonts to be used, studied, modified and -redistributed freely. The fonts, including any derivative works, can be -bundled, embedded, and redistributed provided the terms of this licence -are met. The fonts and derivatives, however, cannot be released under -any other licence. The requirement for fonts to remain under this -licence does not require any document created using the fonts or their -derivatives to be published under this licence, as long as the primary -purpose of the document is not to be a vehicle for the distribution of -the fonts. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this licence and clearly marked as such. This may -include source files, build scripts and documentation. - -"Original Version" refers to the collection of Font Software components -as received under this licence. - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to -a new environment. - -"Copyright Holder(s)" refers to all individuals and companies who have a -copyright ownership of the Font Software. - -"Substantially Changed" refers to Modified Versions which can be easily -identified as dissimilar to the Font Software by users of the Font -Software comparing the Original Version with the Modified Version. - -To "Propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification and with or without charging -a redistribution fee), making available to the public, and in some -countries other activities as well. - -PERMISSION & CONDITIONS -This licence does not grant any rights under trademark law and all such -rights are reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of the Font Software, to propagate the Font Software, subject to -the below conditions: - -1) Each copy of the Font Software must contain the above copyright -notice and this licence. These can be included either as stand-alone -text files, human-readable headers or in the appropriate machine- -readable metadata fields within text or binary files as long as those -fields can be easily viewed by the user. - -2) The font name complies with the following: -(a) The Original Version must retain its name, unmodified. -(b) Modified Versions which are Substantially Changed must be renamed to -avoid use of the name of the Original Version or similar names entirely. -(c) Modified Versions which are not Substantially Changed must be -renamed to both (i) retain the name of the Original Version and (ii) add -additional naming elements to distinguish the Modified Version from the -Original Version. The name of such Modified Versions must be the name of -the Original Version, with "derivative X" where X represents the name of -the new work, appended to that name. - -3) The name(s) of the Copyright Holder(s) and any contributor to the -Font Software shall not be used to promote, endorse or advertise any -Modified Version, except (i) as required by this licence, (ii) to -acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with -their explicit written permission. - -4) The Font Software, modified or unmodified, in part or in whole, must -be distributed entirely under this licence, and must not be distributed -under any other licence. The requirement for fonts to remain under this -licence does not affect any document created using the Font Software, -except any version of the Font Software extracted from a document -created using the Font Software may only be distributed under this -licence. - -TERMINATION -This licence becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF -COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER -DEALINGS IN THE FONT SOFTWARE. diff --git a/bibli/ubuntu/fonts/ubuntu-bold-italic-webfont.eot b/bibli/ubuntu/fonts/ubuntu-bold-italic-webfont.eot deleted file mode 100755 index 9be35a013d003efc7713a4a6a88c0d89d09ea944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357174 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
"; } require "inc/footer.php"; - file_put_contents($nomPage . ".html", ob_get_contents()); + file_put_contents($site . "/" . $pageId . ".html", ob_get_contents()); ob_end_clean(); } // exemple.html > exemple.html.gz - // Compresse les fichiers textes statiques HTML & CSS à la racine - exec('/usr/bin/static-compress -c zopfli "*.html" "*.css" "css/*.css"'); + // Compresse les fichiers textes statiques HTML & CSS + exec('/usr/local/bin/static-compress -c zopfli "' . $site . '/*.html" "' . $site . '/css/*.css"'); } else { - echo "Non authentifié·e"; + echo "Non authentifié·e, ou pas de site définit"; } diff --git a/css/lessphp_2i6tnfof8js4gko4s0sc008844ocgow.lesscache b/css/lessphp_2i6tnfof8js4gko4s0sc008844ocgow.lesscache deleted file mode 100644 index 9b5e545..0000000 --- a/css/lessphp_2i6tnfof8js4gko4s0sc008844ocgow.lesscache +++ /dev/null @@ -1,2 +0,0 @@ - new Less_Tree_Directive('@font-face',NULL, new Less_Tree_Ruleset(NULL, Array(0 => new Less_Tree_NameValue('font-family','"Ubuntu"',14, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('src'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Call('local', Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"Ubuntu"','Ubuntu',false,49, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),),43, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),1 => new Less_Tree_Expression( Array(0 => new Less_Tree_Call('local', Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"Ubuntu Regular"','Ubuntu Regular',false,66, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),),60, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),2 => new Less_Tree_Expression( Array(0 => new Less_Tree_Url( new Less_Tree_Quoted('"bibli/ubuntu/fonts/ubuntu-regular-webfont.woff2"','bibli/ubuntu/fonts/ubuntu-regular-webfont.woff2',false,89, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)), Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Call('format', Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"woff2"','woff2',false,147, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),),140, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,38, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),0, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Directive('@font-face',NULL, new Less_Tree_Ruleset(NULL, Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('font-family'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"Ubuntu Mono"','Ubuntu Mono',false,187, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,174, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('src'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Call('local', Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"Ubuntu Mono"','Ubuntu Mono',false,214, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),),208, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),1 => new Less_Tree_Expression( Array(0 => new Less_Tree_Call('local', Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"Ubuntu Monospace"','Ubuntu Monospace',false,236, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),),230, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),2 => new Less_Tree_Expression( Array(0 => new Less_Tree_Url( new Less_Tree_Quoted('"bibli/ubuntu/fonts/ubuntumono-regular-webfont.woff2"','bibli/ubuntu/fonts/ubuntumono-regular-webfont.woff2',false,261, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)), Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Call('format', Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"woff2"','woff2',false,323, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),),316, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,203, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),160, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_Rule('@fond', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Color('2a2a2a'),)),)),NULL,false,336, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_Rule('@fondSecondaire', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Color('222222'),)),)),NULL,false,352, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_Rule('@fondOptionHover', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Call('lighten', Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@fond',404, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),1 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('10','%'),)),),396, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,378, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_Rule('@texte', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Color('ffffff'),)),)),NULL,false,417, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),6 => new Less_Tree_Rule('@couleurLien', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Color('ffffff'),)),)),NULL,false,432, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),7 => new Less_Tree_Rule('@couleurPrincipale', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Color('ff0000'),)),)),NULL,false,453, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),8 => new Less_Tree_Rule('@border', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Color('5f5f5f'),)),)),NULL,false,478, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),9 => new Less_Tree_Rule('@borderHover', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Color('808080'),)),)),NULL,false,496, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),10 => new Less_Tree_Rule('@borderFocus', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Color('ffffff'),)),)),NULL,false,519, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),11 => new Less_Tree_Rule('@mainFontFamily', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Keyword('system-ui'),)),)),NULL,false,540, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),12 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','::selection',569, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,569, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@fond',591, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,584, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('background-color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@texte',617, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,599, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),13 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.bouton',628, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,628, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('border'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('2','px'),1 => new Less_Tree_Keyword('solid'),2 => new Less_Tree_Color('808080'),)),)),NULL,false,639, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('padding','10px',664, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('padding-left','15px',680, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('padding-right','15px',701, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('margin','5px',723, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_NameValue('display','inline-block',737, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),6 => new Less_Tree_NameValue('border-radius','14px',761, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),7 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@texte',790, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,783, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),8 => new Less_Tree_NameValue('text-decoration','none',799, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),9 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','&',824, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Element(NULL,':hover',825, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,824, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@couleurPrincipale',843, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,836, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('border'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('2','px'),1 => new Less_Tree_Keyword('solid'),2 => new Less_Tree_Variable('@couleurPrincipale',883, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,865, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),14 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.petit-bouton',910, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,910, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('border'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('2','px'),1 => new Less_Tree_Keyword('solid'),2 => new Less_Tree_Color('808080'),)),)),NULL,false,927, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('padding','2px',952, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('padding-left','10px',967, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('padding-right','10px',988, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('margin','5px',1010, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_NameValue('font-size','80%',1024, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),6 => new Less_Tree_NameValue('display','inline-block',1041, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),7 => new Less_Tree_NameValue('border-radius','14px',1065, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),8 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@texte',1094, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1087, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),9 => new Less_Tree_NameValue('text-decoration','none',1103, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),10 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','&',1128, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Element(NULL,':hover',1129, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1128, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@couleurPrincipale',1147, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1140, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('border'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('2','px'),1 => new Less_Tree_Keyword('solid'),2 => new Less_Tree_Variable('@couleurPrincipale',1187, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1169, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),15 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','html',1214, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1214, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-size','20px',1222, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('scrollbar-color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@texte',1257, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Variable('@fond',1264, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1240, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('scrollbar-width','auto',1272, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),16 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','a',1299, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1299, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','a',1302, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Element(NULL,':visited',1303, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1302, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('text-decoration','underline',1315, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@couleurLien',1351, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1344, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('transition'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Keyword('all'),1 => new Less_Tree_Dimension('0.1','s'),2 => new Less_Tree_Keyword('linear'),)),)),NULL,false,1366, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','&',1397, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Element(NULL,':hover',1398, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1397, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('text-decoration','none',1409, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@couleurPrincipale',1441, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1434, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),17 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.logo',1468, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1468, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('margin-bottom','10px',1477, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),18 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','img',1501, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1501, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('height','auto',1508, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('max-width','100%',1523, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),19 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.imgArticle',1543, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1543, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('border'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('1','px'),1 => new Less_Tree_Color('ffffff'),2 => new Less_Tree_Keyword('solid'),)),)),NULL,false,1558, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('border-radius','5px',1584, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('display','block',1605, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('margin','auto',1622, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('margin-top','20px',1637, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_NameValue('margin-bottom','20px',1656, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),20 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','strong',1680, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1680, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-weight','bold',1690, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),21 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','code',1712, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1712, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','var',1718, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1718, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','samp',1723, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1723, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('font-family'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"Ubuntu Mono"','Ubuntu Mono',false,1744, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),1 => new Less_Tree_Expression( Array(0 => new Less_Tree_Keyword('monospace'),)),)),NULL,false,1731, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('background-color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@fondSecondaire',1789, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1771, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('padding','5px',1807, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('border-radius','10px',1822, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('font-style','normal',1844, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),22 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','body',1867, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,1867, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-family','system-ui',1875, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('padding','0px',1900, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin','0px',1915, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('background-color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@fondSecondaire',1947, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1929, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@texte',1972, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,1965, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_NameValue('font-size','25px',1981, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),6 => new Less_Tree_NameValue('line-height','35px',1999, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),23 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','address',2021, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2021, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-style','normal',2032, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),24 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','ul',2055, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2055, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('padding-left','35px',2061, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin','0px',2082, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),25 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','dt',2098, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2098, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-weight','500',2104, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),26 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','dd',2125, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2125, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('margin-left','25px',2131, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('padding-bottom','10px',2151, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),27 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','p',2176, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2176, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('margin','0px',2181, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('padding-top','10px',2195, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('padding-bottom','10px',2215, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),28 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.grille-services',2240, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2240, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('display','grid',2260, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('grid-template-columns'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('1','fr'),1 => new Less_Tree_Dimension('1','fr'),2 => new Less_Tree_Dimension('1','fr'),3 => new Less_Tree_Dimension('1','fr'),)),)),NULL,false,2276, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('grid-gap','30px',2317, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_Media( Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('grid-template-columns'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('1','fr'),1 => new Less_Tree_Dimension('1','fr'),2 => new Less_Tree_Dimension('1','fr'),)),)),NULL,false,2368, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('1500','px'),)),)),NULL,NULL,2362, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),2410, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_Media( Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('grid-template-columns'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('1','fr'),1 => new Less_Tree_Dimension('1','fr'),)),)),NULL,false,2443, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('1000','px'),)),)),NULL,NULL,2437, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),2481, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_Media( Array(0 => new Less_Tree_NameValue('grid-template-columns','1fr',2513, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('600','px'),)),)),NULL,NULL,2507, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),2546, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),29 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.titreService',2549, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2549, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-size','1.3em',2566, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('text-align','center',2585, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),30 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.metaService',2608, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2608, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('text-decoration','none',2624, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('font-size','28px',2648, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin-top','6px',2666, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),31 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.metasService',2686, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2686, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('display','flex',2703, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('flex-direction','row',2719, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('justify-content','center',2741, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('font-size','0.8em',2767, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),32 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.logoService',2788, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2788, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('text-align','center',2804, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),33 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.elLogoServ',2827, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2827, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('max-width','150px',2842, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('max-height','100px',2861, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@texte',2888, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,2881, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),34 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.descService',2899, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2899, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('padding-top','5px',2915, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('padding-bottom','10px',2934, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('text-align','left',2957, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),35 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.domService',2978, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,2978, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('font-family'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Quoted('"Ubuntu Mono"','Ubuntu Mono',false,3006, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),1 => new Less_Tree_Expression( Array(0 => new Less_Tree_Keyword('monospace'),)),)),NULL,false,2993, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('overflow-wrap','anywhere',3033, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin-top','-6px',3059, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('font-size','0.8em',3078, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('color','#eeeeee',3097, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),36 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','main',3116, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3116, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('background-color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@fond',3142, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,3124, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin','0px',3150, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('padding','30px',3164, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('padding-top','15px',3180, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_Media( Array(0 => new Less_Tree_NameValue('padding-left','10px',3231, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('padding-right','10px',3253, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('500','px'),)),)),NULL,NULL,3227, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),3277, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),37 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.centre',3280, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3280, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('text-align','center',3291, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('justify-content','center',3312, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),38 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','article',3340, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3340, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('margin-left','20%',3351, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin-right','20%',3370, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_Media( Array(0 => new Less_Tree_NameValue('margin-left','10%',3422, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin-right','10%',3442, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('1400','px'),)),)),NULL,NULL,3418, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),3466, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_Media( Array(0 => new Less_Tree_NameValue('margin-left','0px',3496, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin-right','0px',3516, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('800','px'),)),)),NULL,NULL,3492, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),3538, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),39 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','#pres',3541, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3541, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('text-align','center',3550, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('line-height','40px',3571, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin-left','100px',3591, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('margin-right','100px',3612, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_Media( Array(0 => new Less_Tree_NameValue('margin-left','0px',3666, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin-right','0px',3686, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('1400','px'),)),)),NULL,NULL,3662, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),3708, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),40 => new Less_Tree_Comment('// FOOTER',true,3722, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),41 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.textefooter',3722, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3722, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('margin','30px',3738, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('line-height','1.5em',3753, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('text-align','center',3774, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),42 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.interlude',3797, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3797, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('display','flex',3811, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('justify-content','center',3827, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),43 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.traitinterlude',3855, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Element('>','hr',3873, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3855, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('display','none',3879, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),44 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.traitinterlude',3897, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3897, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('border-top'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('2','px'),1 => new Less_Tree_Color('808080'),2 => new Less_Tree_Keyword('dashed'),)),)),NULL,false,3916, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('width','450px',3946, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),45 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','footer',3963, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,3963, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('text-align','center',3973, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('display','flex',3994, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('flex-direction','column',4010, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),46 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.logofooter',4037, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4037, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('padding-left','6%',4052, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin-top','20px',4071, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('text-align','center',4090, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),47 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.liensfooter',4113, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4113, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('display','flex',4129, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('flex-direction','row',4145, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('padding','20px',4167, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),48 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.lienfooter',4185, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4185, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('margin','10px',4200, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),49 => new Less_Tree_Comment('/* ----------------------- HEADER ------------------------ */ -',false,4280, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),50 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','#lienHeader',4280, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4280, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('margin','0px',4295, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Comment('//border: 3px white solid;',true,4337, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_Comment('//border-top: none;',true,4358, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_Comment('//border-radius: 0px 0px 12px 12px;',true,4395, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('text-align','center',4395, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_NameValue('font-size','2em',4416, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),6 => new Less_Tree_NameValue('display','flex',4433, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),7 => new Less_Tree_NameValue('justify-content','center',4449, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),8 => new Less_Tree_NameValue('padding','30px',4475, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),9 => new Less_Tree_NameValue('padding-bottom','20px',4491, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),10 => new Less_Tree_NameValue('margin-left','35px',4514, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),11 => new Less_Tree_NameValue('margin-right','35px',4534, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),12 => new Less_Tree_Media( Array(0 => new Less_Tree_NameValue('border','none',4586, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('padding','0px',4602, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin-top','20px',4618, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('margin-left','20px',4638, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('margin-right','20px',4659, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('600','px'),)),)),NULL,NULL,4582, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),4682, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),51 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','header',4685, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4685, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('display','flex',4695, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('justify-content','center',4711, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),52 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','#header',4740, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Element(NULL,':active',4747, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4740, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('box-shadow'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('2','px'),1 => new Less_Tree_Dimension('2','px'),2 => new Less_Tree_Dimension('3','px'),3 => new Less_Tree_Color('ffffff'),4 => new Less_Tree_Keyword('inset'),)),)),NULL,false,4758, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),53 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','#header',4799, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Element(NULL,':hover',4806, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4799, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('background-color'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Variable('@fondOptionHover',4834, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),)),NULL,false,4816, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Rule( Array(0 => new Less_Tree_Keyword('transition'),), new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Keyword('all'),1 => new Less_Tree_Dimension('0.2','s'),2 => new Less_Tree_Keyword('ease-in-out'),)),)),NULL,false,4854, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_Media( Array(0 => new Less_Tree_NameValue('background-color','inherit',4919, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('600','px'),)),)),NULL,NULL,4915, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),4949, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),54 => new Less_Tree_Comment('// ----- TITRES -----',true,4976, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),55 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h1',4976, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4976, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h2',4980, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4980, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h3',4984, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4984, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h4',4988, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4988, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h5',4992, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4992, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h6',4996, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,4996, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-weight','normal',5002, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('line-height','100%',5024, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),56 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h1',5046, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5046, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-size','250%',5052, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('text-align','center',5070, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin','0px',5091, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('padding-bottom','20px',5105, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('padding-top','15px',5128, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),57 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h2',5150, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5150, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-size','200%',5156, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin-top','50px',5174, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin-bottom','20px',5193, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),58 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h3',5217, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5217, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-size','160%',5223, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin-top','30px',5241, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin-bottom','10px',5260, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),59 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h4',5284, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5284, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-size','130%',5290, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_NameValue('margin-top','0px',5308, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('margin-bottom','0px',5326, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),60 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h5',5349, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5349, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-size','115%',5355, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),61 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','h6',5375, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5375, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('font-size','107%',5381, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),62 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.gomeza',5401, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5401, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('display','none',5412, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),1 => new Less_Tree_Comment('// Sera changé le moment voulu en JS',true,5466, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),2 => new Less_Tree_NameValue('position','fixed',5466, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),3 => new Less_Tree_NameValue('bottom','0px',5484, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),4 => new Less_Tree_NameValue('left','30px',5498, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),5 => new Less_Tree_NameValue('z-index','100',5511, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),63 => new Less_Tree_Media( Array(0 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.basfooter',5558, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5558, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('flex-direction','column',5573, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),1 => new Less_Tree_Ruleset( Array(0 => new Less_Tree_Selector( Array(0 => new Less_Tree_Element(' ','.logofooter',5602, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(),NULL,5602, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),), Array(0 => new Less_Tree_NameValue('padding','0px',5618, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),)),), Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Paren( new Less_Tree_Rule('max-width', new Less_Tree_Value( Array(0 => new Less_Tree_Expression( Array(0 => new Less_Tree_Dimension('800','px'),)),)),NULL,NULL,5554, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',),true)),)),),5638, Array('entryPath' => '/srv/http/web/','entryUri' => '','rootpath' => '/srv/http/web/','currentDirectory' => '/srv/http/web/','currentUri' => 'style.less','filename' => '/srv/http/web/style.less','uri_root' => '',)),); ?> \ No newline at end of file diff --git a/css/lessphp_46a61b00ca9461ec3e4242b744419414.list b/css/lessphp_46a61b00ca9461ec3e4242b744419414.list deleted file mode 100644 index 45eca80..0000000 --- a/css/lessphp_46a61b00ca9461ec3e4242b744419414.list +++ /dev/null @@ -1,2 +0,0 @@ -/srv/http/web/style.less -lessphp_5a7436669e1c2246e13a7acc861143267173c4e5.css \ No newline at end of file diff --git a/css/lessphp_5a7436669e1c2246e13a7acc861143267173c4e5.css b/css/lessphp_5a7436669e1c2246e13a7acc861143267173c4e5.css deleted file mode 100644 index f87b540..0000000 --- a/css/lessphp_5a7436669e1c2246e13a7acc861143267173c4e5.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:"Ubuntu";src:local("Ubuntu"),local("Ubuntu Regular"),url("bibli/ubuntu/fonts/ubuntu-regular-webfont.woff2") format("woff2")}@font-face{font-family:"Ubuntu Mono";src:local("Ubuntu Mono"),local("Ubuntu Monospace"),url("bibli/ubuntu/fonts/ubuntumono-regular-webfont.woff2") format("woff2")}::selection{color:#2a2a2a;background-color:#fff}.bouton{border:2px solid #808080;padding:10px;padding-left:15px;padding-right:15px;margin:5px;display:inline-block;border-radius:14px;color:#fff;text-decoration:none}.bouton:hover{color:#f00;border:2px solid #f00}.petit-bouton{border:2px solid #808080;padding:2px;padding-left:10px;padding-right:10px;margin:5px;font-size:80%;display:inline-block;border-radius:14px;color:#fff;text-decoration:none}.petit-bouton:hover{color:#f00;border:2px solid #f00}html{font-size:20px;scrollbar-color:#fff #2a2a2a;scrollbar-width:auto}a,a:visited{text-decoration:underline;color:#fff;transition:all .1s linear}a:hover,a:visited:hover{text-decoration:none;color:#f00}.logo{margin-bottom:10px}img{height:auto;max-width:100%}.imgArticle{border:1px #fff solid;border-radius:5px;display:block;margin:auto;margin-top:20px;margin-bottom:20px}strong{font-weight:bold}code,var,samp{font-family:"Ubuntu Mono",monospace;background-color:#222;padding:5px;border-radius:10px;font-style:normal}body{font-family:system-ui;padding:0px;margin:0px;background-color:#222;color:#fff;font-size:25px;line-height:35px}address{font-style:normal}ul{padding-left:35px;margin:0px}dt{font-weight:500}dd{margin-left:25px;padding-bottom:10px}p{margin:0px;padding-top:10px;padding-bottom:10px}.grille-services{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-gap:30px}@media (max-width:1500px){.grille-services{grid-template-columns:1fr 1fr 1fr}}@media (max-width:1000px){.grille-services{grid-template-columns:1fr 1fr}}@media (max-width:600px){.grille-services{grid-template-columns:1fr}}.titreService{font-size:1.3em;text-align:center}.metaService{text-decoration:none;font-size:28px;margin-top:6px}.metasService{display:flex;flex-direction:row;justify-content:center;font-size:0.8em}.logoService{text-align:center}.elLogoServ{max-width:150px;max-height:100px;color:#fff}.descService{padding-top:5px;padding-bottom:10px;text-align:left}.domService{font-family:"Ubuntu Mono",monospace;overflow-wrap:anywhere;margin-top:-6px;font-size:0.8em;color:#eeeeee}main{background-color:#2a2a2a;margin:0px;padding:30px;padding-top:15px}@media (max-width:500px){main{padding-left:10px;padding-right:10px}}.centre{text-align:center;justify-content:center}article{margin-left:20%;margin-right:20%}@media (max-width:1400px){article{margin-left:10%;margin-right:10%}}@media (max-width:800px){article{margin-left:0px;margin-right:0px}}#pres{text-align:center;line-height:40px;margin-left:100px;margin-right:100px}@media (max-width:1400px){#pres{margin-left:0px;margin-right:0px}}.textefooter{margin:30px;line-height:1.5em;text-align:center}.interlude{display:flex;justify-content:center}.traitinterlude>hr{display:none}.traitinterlude{border-top:2px #808080 dashed;width:450px}footer{text-align:center;display:flex;flex-direction:column}.logofooter{padding-left:6%;margin-top:20px;text-align:center}.liensfooter{display:flex;flex-direction:row;padding:20px}.lienfooter{margin:10px}#lienHeader{margin:0px;text-align:center;font-size:2em;display:flex;justify-content:center;padding:30px;padding-bottom:20px;margin-left:35px;margin-right:35px}@media (max-width:600px){#lienHeader{border:none;padding:0px;margin-top:20px;margin-left:20px;margin-right:20px}}header{display:flex;justify-content:center}#header:active{box-shadow:2px 2px 3px #fff inset}#header:hover{background-color:#444;transition:all .2s ease-in-out}@media (max-width:600px){#header:hover{background-color:inherit}}h1,h2,h3,h4,h5,h6{font-weight:normal;line-height:100%}h1{font-size:250%;text-align:center;margin:0px;padding-bottom:20px;padding-top:15px}h2{font-size:200%;margin-top:50px;margin-bottom:20px}h3{font-size:160%;margin-top:30px;margin-bottom:10px}h4{font-size:130%;margin-top:0px;margin-bottom:0px}h5{font-size:115%}h6{font-size:107%}.gomeza{display:none;position:fixed;bottom:0px;left:30px;z-index:100}@media (max-width:800px){.basfooter{flex-direction:column}.logofooter{padding:0px}} \ No newline at end of file diff --git a/img/docs/config-thunderbird.png b/img/docs/config-thunderbird.png deleted file mode 100755 index c08dc026da61a551249956b89562332016acec60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18917 zcmb@ubyQr>(kKc9Cs+s`+y@KpZoy|@fZz!lJh+A6uE7Jrh5*B0A-E^F>);j~26u-? ze&?L;e)rz>y?@@Dwb$<5WnJA})m>{>?}-FzDB)sLU?U+R;VQq8*Fr*i21P04_cTW;Px{vDX5kJVN5H`9=sblkD zZELgblWIsWVtHwqOVF7|TwPxOgLBiajG$O&caOWY=+?#(JAl*D>bpqQZ8HUc58{XtVpPeDbKfmwbS(IHX36Alt(V6_;|F*8?@ z*c^!48O?6=k{4lNn}B{~X6E)+66CRfT3hJ(`Ujbd3F-)luFmvw%Y2ZOd-EI7!6PRB z6EVDo*yGlS6>zG_HWo9|Rxvl#va+>)Eoin@<@{}C8~oO2Vq)ThgHy2uU~+X+KV!&| zmu+@q*R6g{Ltb*EIbG1yr*Eg3K|W+OR@ceZ(_4%U;;jC;ePg>j`0?R7IrVFX7F)%@ z!rbBE_mw#%Hny4BIYC9;#?d9kPt9$=+jZ2H;z!qwSlE88ZFGfbnOInd{utm<|I7>i zCiZn`VWmR*y^WyHuY&dC)~t^|*Jf+#8unLUbxy+e%*>rHYpVT=IE3Fs^RkccNJUr@hek)tC z)D933?bm#%jcBzPp{d~IwBqUlSWqBE}*W6y#Q1tvZ`7gipcUFDO zYvlNC?uqBD13ijQHM=t%_PEl$JkT^o2mW+T_45NkYT%X53 zJ;7@o)|wukCic&ej>@5;42BbXU$nEZ%|Qci;X`J2gTZ1_pF<_O&O8mCdPdpEn?~=+ zvSybV3C+y3^R~Y|ND8jN!+W7gC^rA&9_f$qC`rSsN(m-}6|=2G!TFy)x|1{E(=+`o z1uCR~N2x_D%`e4^&dkK_uCj2_d+X&_cWZ<`!E=XFV&dZBpQkF?nLn|Y25x5tYjf&@ zNU6yC%NmC{n{kGgR@IyP-u^kS9(Au+Q03TP*(y^82@PB&g@)EB_Ad^fhWmTpZC{_} zP+#7L_iUFTTC&i8U~=k_2y}hL$?VrP{*Z$J6TANoysaJkKnt=Kt1;nS`bgqrCZ4*r zRmIX3plsxMQxlBlfcv8;n1sZmnS07i`FQJa+Ufh=(kacu{RsXgL1NJ1JvH@G8#0G1 zZARD%rt2}Q_<1n^5%dfVM`C;7!mXMKt7vX`)QH3504hAoSHzp?Dl(jf9TEu%J_}sy z?imt&$o)(Y_kPUo_)RW)u_*tPEsDbDq_GSK9HY7-Lo-ps5;nR4@*?1vw;3nO!@UiPG@|9rOZ-N~jTR~q!Wkot=dJyiA z!;u+1Ql!G9MT<=Y*PJD~h}N?bQ6?BYzc?kS-Hz?gBzAQ2D+{?uSXhuk&AcvyvR=H` z_-LPrv|y8k?h6_g+d4wFN@%wITPV4nyj#YpWaa zyzE{vE%7PJDN5-3uEF^M%AUWy*p>NGFPv{d@)ggnZ+=21|BF|@jX6l~XGKUFGtj;L`F)h)M|dm!-3ZdGlWzK?H?DHQ0CM-#YG zP#uyeaK`}@nxN)4pjKtjB7+e|*-IOMy+#16*eYP*uHW{V2#KwWi`@jg)lSx ztR^ge7HET7tJSAU??dkcb4M#5{u2o6JX;lhL0rSQMtD^tq_UYdCoDX_^+}?Tj!jML z*UmL_2dmYR$&}Zt%(v%v)Fj7D2Wq2z^xKKT_`{|*o5kayDeEBy9Aj)v$9~`Ek44-M zS5AE+@NhW-em5My$l5rPQ~g81?{M)!6nm|JE#HFwdlQ8T-ZmpQ3wwNXbyV*}HT!t= za<{^VduRr8uQbmp=CnM+cQ^U$^04|BmbQla%AK!^qpTC>lo{LOIW^uCQ7iQQ@cLXF z6kN!=_@w6CE}PYqSVgT3d5g;Y07blcALgnN4GC(i4L@b+Ur$ZM*m7dtDAwW;JeRGk z?=M`quc%Gy@C#OG=|G7lC@y?|Ou`B`-DAB#VLhM>Uq1DGo}Hqna~pNrcew1}h~jWZF`c)iea*jlA= zaE*O9l{`mMZJJP=IZ;Wrxshk3^Zu-Vw#`=Yq}ee_>yZNF1)KlO{YdYy6Z1V>268~~ zOBVI&6fXMyxdNO03lyanA+rn-tn?q6-Rwbl;jEkN5>5&0cAqqfd`Wmt5?}CF%(&3L z2w7&v%wqV+Gq%)2E>mksWO-z4s;8p(eJ8b4g;!G^X3>QDB~>1-W~klaRT#!%(;De> zCSb~fqCBoHLQV(3`!dL_gZZk{(=XpS$Mw9{9^8|p%s+Levz#C4XDCp0@w5BMvUUE{ zjPky4KY51lmfa31e+QZtJee6<{^VV->V+Y=5(F<_3n#jezGLae(Ogi# z89ADJrLLJ;s$TJnacsAuH0ex4yt2!=Wf!Mf&$pv((OW6!0W(i>*uL~VXbj8UAwN~- zZgncn|32-gr+4$>VfN7T;I0<^8+u5U&IHq?+L;Q5+|2vK?E60ajYCbw1nBl$oiLMa z*+q$A&RXb(eEjXb@zGf|85BbE?Td*7!MR^w3R$3$q{~tNweVZtz!mX*Sfab zj*1H8B1~t&xw}2S8J)vW1F=pa(RL39z$d~-uMfzN35Q+R?$itSD+fb%0yADnN7)S_ z{+p!Hjh}Zy_PDW71PPHi0-?Ka;WcRy*iSorM5FGnN6#*$A3R9!^sg}=HA!g!NZ+tP z)6=R?4;&RxCJVq5;lNPOUpN&=wIKezInu9_C<9qYc`y{|#~!5oX@!#kBfT{N>6wH6 z;i`i&aUc)~mVXJga2FtSeutEG!!AEb4^;EMYtpQ6rfw;4YL3Ze-*GMb4S4-SS z*dT6*Q1KghEFS|b&;NJ_qnET1S&88ZE;O7Dy~EgH<4p~Py1E*7#A$S43opHUE{`pAJabWlt{zur0M-LF!8no&+bP*g7D69v2h z^XW+zNC-wH7SPE>r~gY8E|WzSkxLI{Z9{gitq7oa(eP14#sN^K1pLaMcQba=f@j0g z_|mT0IL$GVtmm0+p)@WT4g4sC;mG>kP@BTYK~5nh*ohFFTj*CBG zqGvVvB~c0Hvwh#!6@ne~$_qW)IFIdncT5jwVQ>1z8lzdtVyY&#E>cMS6)f04Kh_^< z1;@sxy>fWV(>yppYj^qWeXfhAILhFxi^X$bL4CS*uoOInbUD@02-bAPYHHvfkeCT> z)B`j$ecxh3JMWuBpYKq6)W6A4FXpe}jAODS$tvFzbw;?=5N3>8=hb|5ld-KR!&{r- zK)?(37~7+krCg(&-{CSxvGH12z2@aK#|-0+tJz*uH7%PcR~<7v!l0~P?JP~6*>#h=?RLp6Jcu&wb%)Uuyo2j>^7VlzV&hq ztXW6NXJfQ-D8CrxR%nk}A|-EZ^QB7Vkr%mtfK5Dy3MB%EX_i zr^@;qJoD$-F)A{aJj1^9*zrdRAriLe(peIL9pC%c6qGSY5@Yt0LMk-KE6}xJKg=%e&B+V& zf&hiR{O!hPW4VNVc z&w$F8bJEl6zftj3#(n>nj^&HA!TpVYRTMOml$9YqK!utgg1)Mhb4l$WtWOP$P~Z=1 z;Y`I9)!Fy4(X$6qxmq6sgx@%irpj1;bC>}2eH_;zZ6*bF`_U|-7PFN9teXm(7qJKJJXADBp=uLzTtC>(}< zQ2|Pj>v#xZ0ofuJGczxaTp7>->P5t}XRYlte1K3?-8KeZfM$g5v8Y$?!@D+OF~yv~kKT2vP%myZJ0L0c)tbui{pN zNx+PI?%vMLmvACtuuIH@&r=v+;@G~)Ppj$6!OsD9+4VXxYWyZgrV-nK{!h}&wJ(nmxuD0St9iRtWJI`YVfPA(ep0sZk{-sR zMec(P`9z;rF60gyj$cFuuOkT(4dxbnTHQ732*B_h5_o_#DzS{hwIDPQ`G2kTp?{Zm z)XB>bCQcwGj0Q7WK92w_MUZMNPX}dvi7lg$2gC$mhvq_ntf=no?H!CSgAf?)@z(zk zw;ct@0`H}-h-F_swewfdQv*QI|1SNB{Xf8`jRqYaHNK7|dS9Q<{&`gjj)UFc>DwrM z|BSe2?ZDxZ6v%Qc*J7pJxo#V-2^$tBVe%Ks#amFz7KdgmP2xG_9z57olh1A4kRuB? zTpk*>E!|Y5@$z>s2;GizlzXDUQc2@@NE%DLGR=$dz^a*g+1;4O<2;d`$@4Rr9nLuz zh<)irw?COzeZeqetivBd(vu!NZNUWi>CLr?5G(k|v-j9`;;Q@jZcd#h2i>gO2JgQwWTXQ0`q#MajJvBh8EJL5ZjfqjYGZir z3|3R!I+$)@iLD46%GX-O40A+>Z^;^+YsYBJ|u zuks~rjRxlitL56@m!@JI{I+aYjw3LG(o=*CF z^^36Gg9?qH0ErBPI6mm2^Co!&NkAZ1cIPl~2+xG>Zl-KKA^ldqoK$kutc=X3ng~YO zp>xI-mgiQ#VBznL>>P^2DuQR(eJi+$X-FYw0S@iS1*Nq*^Ayb#*lY_dYW(b9WidEG zgQ`ER$jjQ!-s( z);XL%K!doRT-+irJc?w_fbSgNHE)lzZ>C|4v!K)vSdTwCXpqk2#htE zgGD)F1^rw-{$;DfPaKlu;C>oNk(PJJ4S8-MD*Su77`tA%{X^ob0S)GlD_e32*4Nmv zWRy0op(RZte9!f@9I3S}zz4Dx@HawGdh`J(`K$-OOXy+xv%R4bsX-qltS&) zLjaik{BbYqUi;-1)vw0{--C}~r0#{lFV&npaQ=L1>2G;hX;~u=l8P&E#4ljr%(!W-ZobE|B4R~XA${n1Y zetm!Gkz<|H)M71l*}UMg%yfUcba-28S99n|Q+}Z=Hu;)gIeKod7Fr&u@l#YW^^vH? z&R#y{-emGt{R5~*!IGF+)7d?C5;8T*X)EjVTGxrQrDq1;on8O^AwZpA(gtJ<+TR+5 zkd%;|x4uwNUXCA7$)a69PfeaueZ>Lu<@l}$mur-m_X6QDrRgN+G@C_I0H3LiEiynP z=&ScV>P$Xc9-cCm@WAeYWpWd(-)=W&V(nX z$f>_>c(jS*LU8@F;=3Xq&GI?tj7JwmzDa^PoXYlN!`%jxFUB{9M=qrrN<1+LS9+5g zp4k4UB_0^tNq&{%Pm=S@s>vzS?lq&XVolk`*QTsCk7E^o6Ye3ru%rPKw0H^Uwml2Bdm;N5>1qQ44`~? z`U;1QP^T_Hw$#_=*I@75ay?XJVM+qB@@G)QSbb`I@08K7s~J*V9CPQke2H_X+8 zaE!t5ytINH_Enz*_qKMh$=#v2s1sxGrqxAmWaL4uB|@MT|E7-1adG{WYO!u(tFC-U ze_2<6=hma`Q>}o@u1sIIp2K!l$^EEVzi@gydn{*q0nWiYWKn+B#J-NP`tOO`lFe`0k<2FZjSPm5A7wH62L0~K z{B||7h*x8SaY{7cDR<_(H&YT*<4Jbg9~@iJwkGTYp$X)W?0LE}QMcRC6H(%o>btX( z8jmZ*FJgW=3deEmDQLcWI;FSwB~#_Z>UnZBx=|lmgl{sDiQUB;Ckz@Js0nD?`{KTl z>K0C*fav7pvuci4=Ym?EwHcULw?|Qe&MztlQhe?=qlpc`U(fF1Gjv?~XflP29=9}R z#imp>%YP*pFCX5EZq=B6|0_XT-tVCx(42Hy1*9{;%K6PqesW&PA9%g@AmX~o0UsN5 zEz$&qwNm)3Rb8Lf2}NIh2|e60e3Fyb1I4KwGP)>pGoS@nL_y8wNm)Fj895P^hhT(4 zhi29_;{-&~_qvody^LaN8&80oDJ|PbjTsqIXadI#=dRF&^nXu_t#u_si?;Lb-0~7AkV50&IghIS1FrBU2O&aY0)hJvVq6}6)9=%S zAE?hUBW|uDGH!k%V5$$3QQD45B6Y#3yY-u8zRBMjDjv78VCuC{ ztS=*vi{ouADvm_}pePcAnNZ;BdSjAVqXF;ygWz7evt2S&Tl4;WErJR0r+4dVAIQFT z`o3~g2u6F74Yx3de8fJ7~XMzo|J7(QuYmkNMQ<+-1Oom_hxQrn9>->B1Yj(Y8+8kqn0L;&SLx z@0PYPsE7Hla&t+_J*CKnQQGDC-!fzAf7c_40awSimxH969>~Xg~Ah8MdExYXcvf*nF%N^+%HY?n6%5=aj6Ax4z9pRaMt| z)K7zz+v)E*-~+FqU2%*g#CVJ0l_-xJB75k49A5=RipT&@%1BIdNIgx?|1kak-58z> z+xwP!p9^+nUKyb zbce-O8vA9G22^<_bFUz-Ru5!I_VvstzlFjR6zo?M8fh(@3?1I-*`-N%lCcQ680@Vx zfY-hiUT{{Px~Ojbc+PS>H?&Xa7ua8B-H$N4{@qM{4HVS%==KtBZU9~sswpN_S#;CW zVfVwg+*nO0%ZG)$gS>Or9hSZpl}EpAnzeD+?NneB&SBmSavxSCwrhch+XKtuX?+C_ zAc}^KhU@c=OOk$J8n_}(SNtswESo)cVnSPnI>zi$IZeJDylKj>j2^`Z1r`n9?a;m6 zzBwG?NhR6i)b2l2*TT#dyDsjyy*_sFy+e)4E*5k2e7bt+F?saf`{7Y@3^M!KNfQjV zm3!GWS%1}nJ>*mM4^vc45DPGohEGCLQ$(%vqbIq~^DqLa3dZ19@BVWZ;Gkb>7}C#& zeZlFXFloI#m2e*>Ht*qDVgS~j+)^+s-eX?Rl-Io94JHs6GJwkxmc;kYvFqCQ`Ap9h z$1egwt&TD(`&RNSZ@SbJjXQkg8n!miA`B$+Synf(HjASTQ*#9eHT2+cqidHKiq9}` zz4Zj676S}H{b8qUQaIYcNH?#Bk^@#3c1G#wz!C+Uh&^O>2Huyb$in&UKnlt^2>jwH zO`UWYuuTbEGoN*?lNOjY_M(Q5qf)-c)kmIqqw=F~exEshp4mR)%|9JJjYBr1J)Hgi z23}fP>L|cft-HoyYt-VGsY;|!W7m5d#u9-L(&3c%G<9++V~1T*$-$qpISSQ#^HkX+ z0{$PP4YsPG*L?=?D4Ag42}lP1{+p-h_hg2Pq;4TaY)~UfOvjXf4Af$sL;;eh;&BmZ zg`^H%N%?L)fV;k+{gJY;LfR$Sa3rpAf6s$L;r)GdKrTd;G3W}VpB9CQYXtRmQ?4SA zKaBTn)atWkGWR@s3Tnw(d3jqRjXu216B3KA)&aiUmlC8S*YD?c zCio_{&aOAzMyS4)O%!Q{OMbkxkH4#n&&Gbg5!sRq zZbPLHiV6zKh2-YaLRnd#-Y;Qe{{{So`~|Qc3PQuuBWSsmS%AUKI}q9pSbH)7={^>A zMo5tx!R!-GY+vS|q{`Dfu)n#Le-%3Zxi{-(n6T#vM)86oGOQOxA+%2kmw#TO{Z9pg zCbxTeF(em(4$pw`kGQkiU#R5-QOwL6ES{Dw3oxLxT@^7<6ilqN;7ZK*%WC^5_AT{E zpgnnfnj?W{cp+J=#E7E;0s~&Jv$o5-Rk!mD-a0?IVOqd$d2s)1pxlFG7PW>qo#c0l z;LM*fI?_D0As2V)wUJ6idWn3O6hlZaHPn37;?pN}8=zPtSL>40be9w#<&uMoy!nos z*FJ)mEFkt=b!AzOvJVNqFYykNKhDA2cKtrfoXW;2M={D~f8P;9pz5~tb5SdU-csRZ z&2V+HzX3hih^-pS)(l;ynwMb=osvWJZC-#uC24noDvL#~Rl_vWxw;!we^;SI_GBHL$ z$M!ok3>_F1*F;c%ey?(+h&=$P_-%yER>AIp~HYY2y^V#3BoL`>^4 z5;B`pPi+u|hb(!3d-cWa+;2{+4_)+g$UukLH4f-|tohz`I#_|1OjnBe$7Ny9UH5gF zBYD$lQ4?ipVk{`Q*paHqN9XD{X#og}`3n`G+w%9lJGhL_pGO4IV<;%yGJ{G+^GSh= za?t|Dke0-U7!rt!y*lLmrO@UiWCfn3#&t^?kIFw#5BL{CEB*U$B6%x^R+4NRyARu%kIm zUKj1iP{gYlD9F8zRj}xLI6X#bD+ww#1goZh@QePqi z3r1fOEkN=O6h~fiB-+-dsiYy&WDAbtuJzm2a|uWbf`T~&h=NrxC90~1Pyh)R$3=Fn z3$4%k%NLtxf7MhODadTxT)mwM#0^j>dHbRYdU)KDA?_5A0T%$k7w-#W)7pDYWAT>? zH8Ejb0!=ZVF-^=T$y!YPV{}7#Xh3B zUxTO?rM&rKQ`0;o0|A&a<9)J_u!z#@m1EftEKWVuLDCy6A*`Dg8Q4OEYkOQ z7rtU9>xQVH{_|>=KN(okEz*8;Ebn6tmUc@{(4nu@m+SW1KGywVa+5l6Y^4GQ!i^Kv z1>a%5ar+Sztm63H0GQ%292NUsI~dl9WuZ9t3=gmvPKg<>hCQz)JHtcrW&DIFnx^Hc zm$iR;`Tf>~Gg2KXMX8!0ckV||L5_78qN=W_IBk%rqfHjA;(M;uRvGwbTVV|fU@~=K zkMy@_Y_}v-Yi(q4=*4qst?9D<{%@&Ps;I)^>-+n*82Zm@oNg=Tg$8mzf2|8H73i^o z<8V*?GPvN-i|vDkrpDOPfj~*-f0{FuQ}m>nEbs*ER94hvGO2(CullH=0e^rJ>M3&P zZN27No|a$=41fc{4ob0ZxH>NE1&cW!fFp6I(8`y>X_yZn&!`&Xn$b&zUONlZt+E8B z#He_GH$(@BE%5-$=ARte*{&|k-+6=VD;+XRrg|Sf)^#SB*QgLBMYj??@wO8iDz5P^rGfS44#E4v zlsDyCGqLG?EcO?+eJMu0K07dPaA-t~7-OhV>zrm?Td@HT@EWTpxIfO5092569ebT zQZ@a&58pS+`zr}3kFiyxwjt#Z*7l7O0IsfCd7c+I_Y_De>HbHl&qH(raT8ot#|=B3HP;u4KddNIWpSHtqn!j2POe!`AoqG z?O-B5veDIBB*LjYgjjR)v#q0F5q1o<9bZxQNKb0? zKI`#}{**LE5BQ0qocl#EOu8`(jwL`8k2Gd{aW%;vl1SR6@-BYRW8*%wFR<}3GQsz= z_1Md2I^$^2i>|Jh+iboBU?u4x2OdunZwmO}(@6Bnll>F46cx1|?mcFE>q$?h{r6zy z<{*e-TR{fc6CjGEiFRY+Hc9R|7yOhB{67L2*n?yf*{TFa=pSp+ns7t+)_!d|$#^?s z_wKTbDGhvJJXK5l7GcslhLNW@ex?y@(e!WR-PR5k6qNl z3mK=A*-^(eMNjQr&aG+wU*X{2eB^(E!&T0)juAfed$;bEi>DCrAn|Y9*P8O~90$Mk zAjbD8MBCrQYV%(Cy=jM)?Ykl);u>-|h8Z^svR<&o53<#~+ai{|ftdbiF|3-XAefVI zO~9iUd!w1L*-T?fD%$VH`WRS|!||Nt zMT*f3KYup(=_5UPaZ%a}7ve<@OwJ+LApkqLX^Q*ge{2M4hJLlpV~~{m{GESkD3#Ri znKjxgTYJ#6fxXv`uEPt-+J^I@XEo(zLp;z_(aQV^ooBH8hkATO7k{B|H;(0+F^{y* z#yQoHkvxVtkB+FwZj3Dl@@ig?+bj92kOg-3K{2ctDP7yR14~5mSBFIch0G!h? zq9#*e4aZRduK`>$PDHss{ijJ15)R40RT{z@&NqpGDlQiw6qB*=dOL#MpnlX?k{x!^aElolz2&Qj=b9`^*YIL)^t z8jv#qQsef{nk~{tVOUd$GhZ%bF3ZnDV_>61RL6s=X8{ww6(MeD?=oHPDRnnjB)2PMpC7>&ts`p$~5H6baV> zR*QS2sFScL_ON6s9QXaBcO33o$+hu?c_+E8AD=s!HWP=pDIv0@Nt09IulC59{{Ywax{4PDrnF7JM3~h2 z!lkSWGR~68;T1fw(_A$SNXPj`oCk04N!xQ>ocCTe<%Q*%bXZ4_hm^GsP5}dZa%HnM zL~35UIvY>8ttt0=VQBg(A)Y(d*{{6JdtS+^v4n@u{VlTN4T))gCH|8$Fa>LWWH-hM z=-*|e+^0TBeMao$Nz&;Y)b+zbKE(Y;)b~oWubT5(K&Vl$SLQK^^(H+~M4<@<7X09K zbvbBZqow|BL*4ZPUNQPxga@i@vvYTK$U@=-18gY4-%-Q&4E0v+b)Ef?>nsG#P@x}w( zH@LDxJDepbjd{w|Yx0rL?Jf;#$G?5}362BBAhHKW9v8sTUqY&s8jzr)Kw?s52fKly zG}IJD(Y*Z_=+Q8l|I5iv=dK1qVn8AlS)Q5pk#(X%@jG)e)D_9%*tGE(v9Y)DJ+-)I-V`lz8GUuHD!zx*7A;7CYm^Re!qqaM%sI#ACvrq6~n zOe#I@O%2{7YE-hkd`^TEHQZsCeTj*9>ts*TTpUxcYBO+nnhT*Et~`k;gbV2vx5+h- zW^Kt#D(?PqV4szzX=FLyqfHYmJ=1wedrH> zI=Hl1E)~qtMDcd!&P0XN3g33VG5KU*h65X3e&pT+WPe41zG1-xdu7c;CWoJO0gHWq z7LYFG%l;l8vL+{WjgPYW0sI21;s@LFJ$$kTMWLnGedK}K`;p2J@5SHdGS|FZ8uoql zEQS=|xskO_BNzYtmkfANv`ZOR$;?!8U8W$(pq(N901bv?c?BZ(h)y!#?-T6r@+5H1egCM@6lfG0pzTG-AU*Xi*@ua(6~ zAwY^RcKLMftm!qVmc0U1k0<>2gVi_9LEoLw;);YI&VKH@i1C;BTf3ZJtf@DCF-SI# z1*dwGCgrh^RH-3Z=a7MC8P}&Mz-OMeY^Ij_(h8z7x#QiLZ@jlL1v<8)g0pW-{K+ux zx7A)_LKuw;^c8rcEG5fScye8ExzHy|w~5hH_@s8#D^rLhp8xctWqiQRB^5v(7&WWR z0hW|(4l$lBOy3J74vX9>Ch8ToR=aAO9@gx=ao*+~y30+QNEIdf(tA-qnx`+y+52Mb z^VNsIw;@tlwxhPID;Uj_G$+`3s<|2%z9$bsuDOCzd0MyoQsep^xvfthlf4svg_2ex zg$mY_7O-i2K7b3Wt+7uFyVpz#P?2WJEniT*9=O7$Lv|;odXAj(59|eS`ZbiE?vxD7 zV!)jH0*D2*LjsTW&%;E?oG!xuP2%@!YATWB0R`*w(n~qI!0<1j-ssc}J?O&wdcYj)dxK+c`|=%+xS@NZc|qqs{4LH6gI_{x`;pxFs0NzpH-I*CBq=HJl1o)QeASy_P8$p zVo3Tg1~_SORI1x&EExe4R?5RDYJj%XiI$7cjI3!^|pn2bHr&^?;GEGk_FOBn()dO3CO;Kew1cI#r?7lvdtbTjd zKBO{~zy2r%T3T*@JZ5LY;n?{MSJ9)Fb2%2Xox*mB}Jbn6L!$Url!x+ zJ%(4G^-rjxM2H-&h6$hs5kg^_GS-)+mSmh-WnO&Nvk;4WWd8dvej($es6y`_0uV_3 z4<5rdBq-PhsSoe{S%D7GU;JL8&cOae1BJ2ee?-080pnO2ef?VM;0JPcfMsFZsFaP9 z7Y3hy>h4Gum9srmQ-CR3U(xtl(-0~6^f=FNRnI+sDrF-43nx2lSxeM_UUV?8#t6t z!geOlytBVrds>ltgj-g299*7a#Gi_fh*ycVEn8=MTYb5=Fh5;NAeyYWn%Npj()F{* z`eI#0QpTE4vhij+B2EJoENYKTDA4BBz*w_9xN50)+Fbt<@L|h0dJ>|THh`a$Se|T? zF$?Lre_SKx{O(-c#uMEmb)lsCfiwfvUJl&&;(cWOVDu9IsJMAORJGIiBE}|zgof~u z=<&%TTq#EO=Re!=`iu%RTc{sbNReQ}VQ`pP) zmWsFa%H>DTtS;a4oyg-28G&eLji>FGAa=1CXG9b8#<*^vs_EqFUuRX-+-govdtXS! z^mfdw`3(1x!tPI)wEaar2T$U zqX???5V(f}BNr(5H6894c+xArsCDcsPLX}OrXGLECWplca!PI@{lgis`1@BE;gupM zSosWMiQ|vkOOcy1mCsj486r<}vy^l5utMkmss8@g-dP!OVVkidM=6Z&>zqf$<9&Y9 z-7%eCRpyL&m;Kx;TgVM5P2)te>984os5jk6ySSn#Bwrhzi#H!2r4;)Gb0t35%;%a& zeQbE766;=QSH{c?B9ZA{7_n*Y*$AfigK_Dnv;bsJr#sD5Ze3-VQ})mQXV57>Pm@CE z?Fonp!=adz@>Jg<@QsgDum4k5=%fR*qk{;YLvSJVs|3XFgP|2Dp9;|0t@eJ%fbm)x zvETD~%+LZbOq(Kptk{tvBRxZfpdf*ekqC(Yrumjl>>+rF1UYXvI>eg@Y+8VPC=>~Tt_43PAeM&f@%r4KX%i#%Yo{oq zF|^^^HwPJ%%SI(<_x-DqZ5xN=Jat)Wp-_TJzM?`+f$vadJ&tdew@V`C`^6lSg%bON zX~-F%`D}iDuB=}7L+6h+1^lj|L$`)ExPF9F{$01eie_Re*tE89qUPKg>|V>qX4zE= z5ARibTi9?%?uJ7vsdg{*U+qpyUH+^)XE;xlcpp77!DB)w(4Gk$+mB_z^K1JM>Wkr0 z^V<`%v`8D{rR=Vl;KEJVcj&n<-gmq>sMz;GYkb5fi{i`9eM2}ITVrkL@VoIr2KBfy z)$cKDxYmZ5d~s5(6X||V!}}S0TOTH4ISh`~^Vdw8t8%zO44@B|HZI?#xQpsq9qR00TuVd!GjhwHw)(rAX&%;2_e6L00u^Ri9%jc9vpxrA zf%k_$i7%~LQnV;XEE<`uIhQ76BO#%`|NFlHh7H3P2nO{~ZkLjHeiKoic!xeFd0cXk zUYaC(3)lY>QwFU0ITJ>d&Mad&C1-__aQzTfs$W~C%BfhMrJ^F~P9r^#rpn_8UT>`P znW%|Z99y5ze`FlbZm~3E9Je@fYAl6Strk|rM722HYO$0!`wd)FYnyWQp~5c6>?o~_ zOIf!io!*8lt~9Ij|)UU zJ)(y7E-F!IFJ8{eT2^M9tcy!YC8YDc#q`#f5GpFKZ!cz|(t3IdQ@&94OuAA=-!CEb zq8^C~KxQF%$PG=v^#YFx@xdSsWVyuNLvN>tiTtY@F*5EFQixQ%SjHp-tJbQM{jVvM(LX;{|MOMfOr(e_^ zWHrq$v3Hln()^NTsWZunjx4$tpQx_#ID$7(qZLt?ZlJ_7E19VD=Rr$}N>o}Qiz@f? zDe5>bYJ?Y2<5Eg&ni+MvR@BKCT3fuBx0CXl=jc_*b4H!+6jkX#hxqTdEU_ip z$O<{(`Xeg6rM0PZN}fJNg+%O|8(ylb zJdWUdMs067MW>n{*nEj9`UODLnDWN2;wSH4L*HF)QpeItcTwZgO716h^kgNb?Xbmm z^eCdPrpM23EsLGItboYt3GL3#9;E)`rwul-CEDqlHrJZWR<>mSAtFkM8Y-e5s>(8v75x{Lv_Gg*=M>LUQ8Dunv2J|)A9Yo~M3raM#9fv%e|dVX(wC^BpFUB; zy@^VsvrlU*moAX%?#Aq`ONhIur0w?Xsz)ocNdE5iZ#}xJh#J?uFX!RqGLnBFn?3dQ z*xA*CbUEsrTh8|CCpGM;Z+BB+)lNc02~k5sR6fPgwbGtj?xL!*OvwsAM73Tmy{^tF zmZf62`~$PoX{M^H{FqUR{c@w_(uw=NL>2vfh#C>DLsYX_DcxR>TrW9qP9@qylFY7V zDcWNUw*gc=+_t1X_JOFOAgbA!1peYxC0`@codz^|uWyDPQ&Lx%mHamANN`=ES`_+x zA#=8n%+t-eJ%|->H2A!ybnj}Mcbazq1Au52V z#uYVO7By^~r>F^&4eIG+{9WH*Bk;MVPLiQKx)7BvQK_hry@{H<&X}f7#$U=0Is%?+ zleK@#e&~+w5;d|fQH}fEGiGFVkTD3~-(n7q(KVuu?NwCcLXg?u|C=PQdUPi0SSo5{ zSQJ7FfKiE}6RIrgXq*fHjLK+P)Ugm10Aq_f7NP<$Bt#uUO@*ic7*|y4=@>5RNSq7+ zASwXBZ$`?ZQd1!+0LB%SdMb+=fs+A%QHfAQ9RpDTFtVsr(qSX$kBA948vqy*^MnYh z=m;+A*oinF02q^rW4WlWjbQh_6EUX(U_8i#iQ&xC*SM%-#zaPp96fq;6lMJQQKLqE zmoa?!w_xb#3@?E*=$dJS8fMD*3q!Nlj>is2%+u97&UudWy&8HPp7=`_3j5Q WQA6Vr88F-c0000JSi+Ob`%II0(@HB!(g!y$}%45UPrr z(rj#OEG#UapP%gP?5wP;%*@P$goOX@xzteI=jYz%y-Q^UZ*T9# z#l_#he_L5u?eFi;&CRW@u0}^kKRrEha&oq{wTX+1-`v~;2L~G%7&tmQPE1Vr`ueuC zv}9#vecaz`YimzUO-V{hK0G{petf*Xz8V`F|M~MrUS2*aDe2p{Z|3Iaii(Ql=~qA? z@bK_(dU`q_AV5=7v!|!$^z`)Z?#|TIbar<3`}gl45GXx8y{@hg~ByRT>{3cXxOHxVa%EC4IlV{P)#9UtjzC`>zc3S5{U~kdfbZcizv> zZeyZiV`GPhhqJS@-%pO8r>7z!A_fNs_qo|VpPw(K#jC2S_BohqYHFUx#@JZsUzV1h z7v`OvogW$+A|oUF`uYkB3m*pu*cizuk`9)ZmTtT}uC&ze3k$AvG+8-$?=sTaSedV# z9jT&LX#57@;o%=TIang;O%dxfPeZ{YvK>r(H{h^!;%QqW(yYkDt+_T_72D5Bh zukMTVv{N51RzZ1IKCvTR?Yq1jCcUT^TM-7ULaNx!Lv@wg<|caQx|8ot)S)xy32~4i zOZyar&qiz?2~Ovc5p49>ERu#SqUs;vmRA~rEZ;2NzRR6U@qNTQK;_o^K|qi}$VrK7 zdas@3s@VUq!|RJ`R3AIMf_|djc=8#P79-!5K@p0E;X;OXK`6D@DYZq=qq0q5o_*;h)iprsNG;6y?~ZZPiips0T}TLVb-RogT)-lZwO1c z7p(=WsG`ML!}5qZ)3I;u&3fkkwL3gbqVvp$-G9lA)*3NolYp*Q8B{=gt9anl%yGtd zc2AwV?2($EBZDh^1~1M4IcVv2bU;Gq#+PtuPaqI!>ySb>tKbpV{wGz<*`m422e$wF zht?-0JvBxRorHEfOeP^UDJTBu-s;y|-W2Y(3~Zx5q-iFvltpn}5}v5A(YXvS=r|Ed z491U#;gNoSDoW zjsyMzvys4DH);D|WOk=HnrTjGSG67@lRHo->|QuO!vnKgb}D{ixNO{Q^LqiZV76^W z=4gFRPGb+nTtYjOv#ak|zG(>Qw}&}|aZX;FeU`2H5_c4!(A^7=kOs&=-rJPEIF8}G zq3yrDw&AZmY^odhpz3SFuxU<6uCj_@M}>m1O$+!{kn<%!FfQ<9pn6!C$|al1I^;n;!y8Bpbc; ztiOM?{^^mrIge?{e=-gXT>U(b;!6AWLSFC@bMOZ;PHunbhCFRNZXY^hJdQddqhH>% z45+S4U!(ay1Y7%`Z~T+}_rm)+U{Qtg8UD20=kSSCvB*7f^%Fs@ix& z?8~kHme0luMe>8~&V`x@I8V>YF_THPA6P&e{+MNxh$%XA|E9|8E$MWr{?qa*Gag9OqNt`fLO*!Y67P2B zi|xT04Hoo?CnI?1~|wZXGxJY+l5Ld*_(1!%#XH zC})k*jv$e1rwqM!Jn;oO+jIiH)uStD0TQz!e+6rS<;k*T(t@cv*?uJ&ZU<29$;WQ9 zR1`vIULp--MxX4mBk(si%;RVg=O;p`-w3<{b}_>}P$~MybJ%MXA+$$=lP9CZpt@9F zZKm>*4b$elTYrrMU|^~o5CjyI#Q5bLr0nfQRv^(2^HKPvIZ6b?tJSsk$PY6KLKzi8 zt4lWXncKICcX-U6I)I@+en=~@Js-f`Lp^Nmp<{9Qi1wQHKO65*CE8!-7; zU5u{v$c)yxG}&$$yLJh78BsL-0wWl8KF0TA6GZL)1ux%RC6P>QxG5#7XZd&$qqrGW zh{KX1?CS+n`UIBkW_)zJET+D_{^O5XtkM7r2m?He@)c_NpnBlE5O%5w@3q|6s>Q{(|^$loEsPuzUM+D1$(xZXrdgV4GQM7(CJ zyXk&VaS5i2M390dcbrTQj(~mCWOw*&x|kaK?~>Dl2T$0z-238o&qt%!hV|KepydMH z?MK1T&2{1}IeduzlbkQ%!)V&SzjOr#tBuJ4PDz{}|AmNb3?|nq*u;x=`RM-1G!gjRzfEZwImNGgmeEL}}7Oe^f$u?lb{0+wuB zuj&AD0!x;}J(m?iH_l>YJ`qAnR`-k@Jye#&4p*BPae5QhAFmi?m6(a43gJnCalcfU zjsbgH^eo>lo72*Q3lo)r!nj>Ugw^W3X03@JlW2#YhhukD@aureb>k+h{PHrg{BqIu zXJO4Aj%{zr$u&!sH=gFEzvfHnE4V|&il5;$#Oa*=dB`)eB6X$L-NAG_$<@h#@+zHHjFmuZufplF)A&Z)Oh^z`yv zu-RR;^Pq``+^XD z$#vIvg6WYD9RW>TVJ$J4G3r7IQ@o$si8ujp#3AclP$*$+8;Bd;gcU;rzYPbST zIWc5z^Nul^)uA%AV334GM)jFk7AoYv+bZO7Gs_<>2p4!&-z?nl7lE0VWVtwSSIq-} z5w)UqFi8xYt3u9X4_UHG{9-Yhd(>3{5rs^W{?*QJ?s|Mzu{YQFZqy1q;Z$#E8R~Y? zR08sLFv&E*Ob(++{taqD*}I_2%z)pHkyD9eGPRHCRYeG>BI#)MDL2&=A)VnFIyZpi zKS#H9q@k-Zvhv&S4`Z~S?}9A^sfniQ(;l0_XJ*Vjdx91abD~blRVN&g;9p-^hif#clFVs-TDe)2Y6bBe-yLGE@V_f3j&4;0YhoR-+)9TU+ljRVu`p7aFHq$Zz zDT<# zF(s9f&x9zwh)1!;4uR>EvEI8_1KDi9b}^x%T{Uih(fna-A19xv(ezT#P#1xfk#PcV zDCfV-3y}CWoiXU?uW{%aP5(`w$rDSN_^C{+UTO<1-x%TdMMhp5L%ZCv>{jkbp#6^}z2n71N7qm$k0(|v5VCyHb1uC_CsDJP z*9>a4l)J?UW-`Gpz}U5If^Zip;3#Wrjk8Q=z1)`#ovq$N=m8t3+Bp9d<1x?lk65QL z^TA$bkyXD*+D0FWm&+U2+`%tWx0V|ymGBj z9adz6KS>b!w1QIU;Lks;1U&6hff+s&T@SInq)Xasl^(2NWlYSX9l-ph^KN+kX z@Vmu#?+npz2A$p=bQl^8Zv&~%@KckC^Jn?gtDAskls3Ii0ZN-@l#B_v`%sCt=?Na6 zY_LDC&e+D#$(npY|DTMnyyqSPHeWqD-1M}^^>H)cWi44PJ(?jDJ#z)}{SZ`@BqqW7 z_8JPvu*68c{OHZ^* z5GkNzE~#36W@I5{*&nkWboSm*+nO<3BU(M>ZIKR%FLc ztsmbqO|6Yn_Rl-w2-i{H`VYSFK_Ho=MMw~^D&uurRB>8ci!GdLy3Ws>WRg>1-$*`= zq(hj8a`za7JL>%HVj|Ma-xLcl+prTHAR5QCip%o9B%BWZZVuI+zm7*}4t1@d=iy{; z0-A2wJm|oFtmGWPDYsMNB;9U>=`Jt#l1w+}MEq5tb0>_bJ?4ewh(Gcw)IyY%Vc~V< z4(g=^HZ*g4a~t-9vPHh|5-Mbile?q0&Mo{*IZj6y$I+IAv0AaB&&9SeWW%w}22slw z%u>lmZu%Z!c?XN&G_k|QRkYf}&?OBYa7{q}K|KK(@hm0pf$DIRZW|Q-(4@(S$nWq; zy6IJpUR3R+YVh}nk5dq5;6nEPj`pjhqu3H(@y9csu*cj{SbfwlmCMKA`Oo%_V32=yBl#)m<(I_WX<6afpjXHp zx)0Zdvio187>T>~nCyuE_4f}iqBG^<+dpry`#YDhf5Fjo5Z6{M%Og0$lMlQE$im-7 zgY-|LO{l8+z*FazPyuZV8+TTxs;~lH1#rnmth9eVpxVC7gt)(OL?gk&f0@CPAR!<) z6vthfR`C&1P-*T5W0 z=iXx6v@lpjb+rw#0oRP_SFodw2PG%Nv#ReB)CXbKay2OuXxqd{aW&DMwjApaS!YP$ zO2~mdV}A6HfkJ}I$WeoRH*Tf8kTpZ>pJkanYvO9p&5)ngBENT@_ zDOyIOA^0~Wt{1yOLhb}AqUY|7BYn6;#pDDMbEMcAkxN9_QYc3RCq1^7t3h0;ywkLz ze2#HR88XB%cCcm?K(Ad9L+gK6*iVcI9h!C%7R-;dZntAO3tQ-`^_ipo=rk1mV<)mv zW&~rK(o%|XC0YcAP#IMloZp1w5K~`neK@Ev<%l>DhhbfC&35&^@W|)^i%j}VUI?T{ za(-X7J*R%Hv7Wy(fDNbBl2%)w&aLo4|C0Zq^L9#0AxPbd2i;$+Bi-`E zT_vlBjMQ9Vxt=BLgfYo)53=HYRFUH4yfmq=krG2IPUL^9^B*pkTtykD7m zZ96&}`Ir0Pa+X)&e5>J?w4>{nNyR`J+yEpXcGjNLdI8BEO&#d8j$GvCriSSZ#5wuL zEhw|5f{*m+GGHI^?|zP*H|>)}?9c93vgQOxN60Nx60Lzl3mh{XMtV(mi12cRwM2{e zdb^{FI(`iJmyoBwBPlgOj@yt|(&w+9R+FRS{g`7uf6H7%!JeW$SuFAXY*>ctM14zD z5K1lYcx|Yp6#rl1@L%ihC0@{bm3Op1Uj@gUBy+I%o2&k4*pG}(?OC(&q-qiKi0%WV^pj4I=d;I=w0i1`g+tvAxF=#@G(tiy3Mc zq*K}+24N4f=x+0(dyYTcs~;}Hbw~XT$3XE5-m#dmYHNT zs77gUf+j_&tR^k-zsc8IAOL<*7&57-U?n-xd+DWU;}+O1pF84L06I%$MB%7AayypL zlP&Y^B_I_AnW4p48q;u%NUPj_{}bPfrWeFm;K}zD3EDy*9U|IM?Udc2)#^ec$zTYS zs0$<57vf;cKM@2in3ZAK1g%+nor(0hGVFOLj6$oo(zU}ZuJ4PUx+kj`yKI9v_# zh08ZuZu79vI?nx0|I5zO(s*woS3uipam@wc*D${I#}9?cae+=U@)0@;b)Q1DD^XwG zz1EFVCS$0ugy11Ek@Sovt}-THJq%0B6n#h^=7u{@l~M47nu>L^acYMo!aOmA0S&xn z>S3r5J4-_&C=;qwJ*)U?=_9Q(RBLgw2pI8~E zPr9;|6ZQ8F*2H6u(rNMjBG0Kft^sPLtR7tCA5L1l=^M!(jD1Hcsh?7tl4TuCzU^}B zOfTtotL{65tB8OWGo>XvxLcf+CZoftMo{!tx|w_%34%u*ix&(_IImQ;mut!J|XP zSpbX+E{fjwGb12xP1NR~fj=HkDx0w1gf1f-Cxc@ZM2!rONIQb@isp*2-$lJOIYk5=b`JpJNJW?@n)2{ zt|S~3tpXE}jLaw1x!Uh7tE*lXbvpxDkz_8qnVbUh-Vrq%49hTO_L@<9+8NrWjTLBa z{r+tGZTVvVt-54244NN7SuDOjetmCIEg33RFerhzG+8uiqlaiVNjsyws#bBR>BB{s zE-0U{w!B7x?pQ>m50=Fp@-~b@=q09rcx9~2(;qMu?KN5Yi~D!rdKQ@xkiwdq4_nN8 zN;11~AIvZU|AfC_gX}?lT&hiZ1i3Qp)YhN9_-oAgCGb^LqN~Kg$Bf)!RVYt#KY&(yUH?u zN1d;{LrPX{56`hbH6h^m+u#O=;=mmsB@YfrZth)84D-3oJ)77QqfV2lbU=K`350J9 zRYKy3K#e^*GLA|(X70Ncz{&XYiX`if7zTTgY*VxZ-LhyF8ASqH;1OM0(t zdtj#6apn+)N+_o%>Ggb!>7Xfk8ni0dTg27EoLK){hAwj&W@`n9Flv*m_MAdNQGsA1 z*&M7%d1Ky22c;euO=oNOBStE9EnDnGYz>~C@ZXRa zj40DM*t^`}8&yE9uEUj6^|Z&AV%c=KpLjuiW|{7_sJf;?NgaOI$1z_9j&9g!vw{z# zD_d*7d8>~F=pTZ zYVU!5!*QW&jBp%l+W8Yl+6L}|Suk&pAz)>pJvRFgu)nv>s=_g_KV-(?>k zG7Ow`&DSX>l?iSg;xdDzn=&xTkyY;3WHFOTcb>Foq3BGbn#n-Bd?Fu@q1t*OCog>P zlF!RUv8?e+d7KF&&M93@T%9-qc!dT#xd}u3d}-VJDv!BlyT3u;!tTzw(;04=NRhH-emz;c3o{2J9$NUMb z%E)E|0}@<7uw^4_hl$rO2plfHT8rKyYO>t$?WUI`Hudb zL5k!-OBu7pPEE_>Yo9*JR00&=NQmzZxn)cR5~FD+3Sgnl0EUJAgIOG&NZf;6yv_QJ zbfHl!aXkS>j6GwQjyH&1^kNX;&N~E|ll)bqN_MhpA5d0I9)rQ!G}W}c8xay}O?4-S zM3ZD427bV9x@oM;-{m686**zeCuUZ?5OMs2CRn|AqhH5#m5b6_RduZ|(syD{DU5c& zK7fQ=mCYk(!#Pu>(0o57VH#^QAMu0IK`ltP0jA>C_1GphS3}++G>?UKHjzFQtTnat zb?J~=$awVV4-+<>*-`X$LGV1L_h8Kt{m5A`&<|@VcBSfCRyMX${u>-}dFBuL7Xod1 zF37)JBNpRvH+z>rec2_5n`2xP5^awiS(G@1Lu@24=0@K=TvQzWQze6>J`__*x6T4ixc< zM@f}-!e>@>z-iy1jFM(fOfmB)d@EtANm$o2VJQhfs=cnUko@gei1IKB=zcJsU$;zG zun^!y(p^Z~*-_1yV!#<_*KnBd1)UjWr0_o!gL^)o2L z{ym_J7jTru&wv=^Bg=<|v2(=iEBRS^r2S(-oTD`cO=i=P!R2w&R+2wVYVl}ZQ$vY+ z@jqlCL2KI3VDGD?L9eeL@Fi)}-Tm?OKr&1#hBQVxw!-!81>Q2A#`XOHr1~dwL4_E-VR>}^=&M2%!VNGT)RLx)?Xoi#PH9c7>ojfcG{u)IE}=?p z^%arQl^>#qTS!%Lf`4e+)=TA6>gb`q7MxW}GBsMQ)*gp|z;pZ`EPyf8z0Q^?_A5XTPU14XIcCtz+Wvhl=L2GdA&V#9+!gHO63udKTw5bv(esYyLZdrhXMS;gdcbnPbweF znaab(>vrfP_9n_Nk}B(x>k~is`|F9Hy;%V`=2~h7ErRF9s7N7O%6!=QxPlpeapF`Y zfmmyJQR?FXDB9tV9+vjV)|0$|Zt5{)V*GBuA)zVn*F|-&rlXOfZ`OEga7KH~StQra zuJNY72orHQ>ZRc_(yzyF5k;9l??vimY)zG+M zh*_KE>(UQYLB6nH+n8v`z)Qm{Z93yRZa{4cz+Ko>@XnVMZKG7xk2!4jL2*Y4Dz{Cd zWX6#fpv68KZlT7^tbC;>gtBLMv{aZ1Ec`&B4e*uz+zN=%%RR|X=whr9Tf$r_b71l7 zOO^Jdx2OYD`W0~lV1@sHR)=x_g(O~`UES!>H@+`bQUPtMRGKH*vZ8_c)x}OcPmrhK zvbG}{`+4@dg>W_CW&R&bdmX$$nXEsX{Cx&cF!jso2$}AD**_;cLU>DB&GK2EJ5ncd zyY3cB%YUZ*F<-(QVA9nIE7Z1v9XSy!s$>!=)H57{`~E|?uuSi@4^=lXE6)s$Nkn+0l7VPG*5>jWJk+Q>kplF4OO#-#uc2ne7Bs%8}P&PNknyDj9PkP`7iAQ z9BKEAuGjAqHQLFYL9QP5n&m^LiIzB!M*N6XV7$vP@ta+kwRD`d_`6<-sPq4!8ur z+r-3z4Jo#`Xb0Ei{*dWi%CRu^h+Ib0h)Wl@72|o^8S@iM?FkuPQ#9*f{NiTIOq{aP1Sqm4XI$suQca8mqjqb}Kl)1SR5>dwroVjLqc9pyH_ z&M~QaFmL$oAX=)F&}H#nQG06ST~6-PeVqQ;=Ddpq)Ui}skdiHIvjqkKn7KA5uUdV| zPmOOqw0njub`|C5z(-KW$*@8Tb_vd0uM>~3HKAIpvNTxnW7sEcEFk?27fDa$sT_3O zr`tBC3MTtex?RgjCuZh$0yg6%vWkklQ9>zFEN5K5vx159*rAs&fdE^y3pJMji?Q}4 zaysyw0Q1)+H7xRvPip;6S|317F52Wbqyn>^sZ=LY7<*EETFR1jt6sq|Pa>un-nUkC zv!1b|JMNTyvkePbZ>73TY%h-ZI>J#@X8+;|7)ff!)+e4HJhfLiZ^G5NF2U3qarD>Y znMlnv{va{B^afLUSganFln6Nlpa5cUILu0VtVsq?o8`@*nI`C64FyQp?*_!@8MQZc z@vqFy&4EP?s|ZvVbSJ7estjac2-Z0V$m zoFUVfC&97IMiEOR3~EZFv>>}ehv8UuUSEH zM)-tm+RSHwrh?F&lK#He@bd4;>K>*=w9#oW*Lu4a{bSYnsQ+nT!9ZOzV^qrIkF@`| zzE>agDgMp(e|uXnySd~qd$!3*pGPP4UQUHGk6Gy7#he+vxH zFe@bZNaO2rSAB_x<(FX+(4%XSrW<>Ug^%gz;w=^Kg<%{nA#`!B{ecd85eX?$wn*3( z92ue8d_4=`$=)_yppl~KLu{o;2mY@BvTg0j%> zodS`jAI3Q&Aa88AR4@ABu8v|t3k3<`kivCU%T!i_EB0{lKr&Upw`UUt8q7QAxGAvp zM2x;i!&ms*X@s{_fQ+*0R0jE8=c|fBvRHp6f^kzp#HotgAVNwGdHu6vgY)RlN^6?t zljg3rKN&Ncu!?ubdUXx{FWYJG4_C+IVa4K>EYL(joX3lN^}1vDN=aa*Waw6cQ-p$=}R4DA5A91CY0!s&GXaoVa` zmhXubqASkUhEf`w;PdFmcWTMxqFR~qdFBeY!CL%vL&@6j$TYN~hm(~`2E)_2imn}! zgxiG}R*8!&%XXNE_7VpVx>$jM(Y@2obo2tj{P+)#k_J-4O~tp+sy9q9>wTH@M4aim zb#UHaPql4)z8cV2v*=+NE!5Zd;RFR&!6 z+RFC~h0$?m37Ux@M#FQvuQXb5Ak#8BKJ@nk4-E?*czLz)tzBPyZ+f@>I68r5y-URy z`g1pd(^3Ln2SRCzNxjHR+6jBAyN4ItmTq<>5_RO>173$m0X5Ye^nqXbM+z^T@JZn8%~u13ObI%mle9T>d+RF8<;$LNfk3 zKpyvz?)Q8RXlVu^a!X&B-LeM4m>~B2vEL!)lALZ7Xm!pAkf2ta4|uAwMO5w<2yBosY>3 zX_oydbXSZ+xn6X&D{W@@>QPt5L0VFS(3s9NJW8o2HCtZ-)gIL7)zfQBX-h=P>gkP9 zR+(M_LPY?^Af&^n>SH2&AycKc7`Pl#{VpN-c!R7iFQ!G`tDhR{ z+<;87f?7}Ig_m^VU@8Et`cd@t+zX^)W=KX-<3!v!fGA-%**`DO^KA_*()r<_;HvOy z%(Tok;v}r_4KAjPQ~Fdd(;O}2xWREe7A9Ds*@Qf~oZ*U~+woWMS z2U+iLkb%R0U6ppZq?g)(Uz(`XZTFBJl!{oI&T&{Kn|5r`4CS=(?l<~7!ktuX9_Eq2 z7P(_pIH)rBFWcXXRSiVM7$zEnJx3z|;NJheLvBM%)}DM7fyT2src1@Dc~-(Lj4$o5)^$Vj^cf ziny40>!R+d@W2r7yvN{VMJ%w9rVVXZW=A)?J9}%W45V2y z>6vIQ*`_TTyNiAn*ZE|uU3)w14f2W*eLqJw^1u-;I&T@jm`^ZqWd14o@qu(y2>oAR z$)NS_r)f;qCv!_ihCIjXtL9<@9MIy`$x3y05}s6~v6whAM8;fa$=$lTcn!HwFGsg1 znO3u^JJ5`{roz>bf2}tqh)X$SGvmp}T2<{DacJ5mr!)*{oLe-;sIjMix(B0twD!1+4zumiw}3cWW38(#dx_h>#+YNkWYB*);;aQnu(#rfkgAhla*{3 zhG3gGtt-+EZ{jg-G05U=KE7;aHBoTVt4yVr>BUbnI9IcZ*Y`>eWep#b^$(zORL$ny zcIu3eu<3d-y(h{$s5+zaicf9xwfcBSnk%WFwhWde*|JADsZU$uodfl{@I+|F*k-|%gB zJ7hWY7Ifo7kdFE%slK)+x!h1Kd?LVpIDq<=At%mc3A4fG^f)AsZB1<*$Ll7=eb_8& zoC!|Hdh6=(K^>{VR~QHjHN!b1ee!paHerfjXNK0BI=nTKfd4A@NhehDE!|WA1zkPc zwkUlWwjtYeU$E%XWgl-acmCjkPlr}^!k-Xjst$iUdnlE)erI)N!JrO0){;%@+Zn`V zOhl0fq1R$dQzjsy#B%H}TwO#7{5~@Uh0wXs&YAbtV;EhgqNvgwwQlX$ZR%--7^ydToHw&<^}SX}O>WNnfH~Q{{BckeXVvj>LmCRWW1z;KsT!}C zWEMV&_$DpL@5^Wim5BmZ&I1{MNum69CWq739XihW15k^&Foen07AYtpb#kdG80gL) z{6C1U|Aig=|FP)m?dT8`Y_M=7zLZU}E`A6;jJ_=Lf79sQIKxK>ws6$KqpZ3B(D5e< z&)wyHOAk#53ZW+i&j4m9+`>>mJG*{2yG?0j!UJt(gx7;eX?o{GATT2K*J%B>8Y@Vi z8J=nn{^*kT%FH!h z_Bzl%zFY!SLT2;Yihu-Tl3g4caW&y#%8M`5`3GBc>jUq!QN1kv%x1^FOO4{3QXBHn zLTDNAMLu$VyM(K8x5Ed>{YJh_3Pfz^x1^z7M7S&#$SE_u4df+;va}D4J65a;H^gSt zu<2q!wi}yRYIhgAaR8}372e?-bWG$~zEf2iakFr^I7ID$LN-7yDTeb@@iNk>dR(p4 z37l^<^E1*F$pm1@qz}jb6>e4hpbl|f{2DF`?+mzGe9ow!PY5GS%{|k?V_5DS~Nk# zIjw`I)8AMt0#W|{%Npf0_&dZ;=SvK9R^Dex8-sCY1PuXwTnj?O1iK{3>9G9@W8};O z56y?REOH;*-=I?q0Ytl2XrLa|b)Ii#kPMVq4gIX;_c=oHF6G)R=63mD8fG;JD76Tk zd^k&b$uBTKznw3k21|ft0ICvHvfQB!EVT0_bTcnS2(e_I1-cOa5*Gx>c80n-xL+m@ zGrynFNg9)&3I@jSk@E_F>?dJz(+Vo5UHy|)^@KgT=Jv4_UfAYL^^hO)Oos%J`yGXD zZ%%Z*(|oBVgbi(vm5*AI27PHpTp^OBGSjI%oGV?GBfaSk&Wo-Ldktk#^JpVg{pv5b zleQ)Zd2Tc zP!lZT=#H;ktm&YlJpD1$sNRT6b+^7S@B1^|_SXi&bdH3xuJ$`KM$9yazcS|OTeR0n z_tYiY)L5&G%?pbvty3tqdDNeDKgBYgya@cPAY$x(yE#y4AP;|{vDJk z@Rr;$4VV4D?@P77t|Z}yQIks_6fQ6rmI*)(fJD~)pA*%4-S@{skCl~=RY$*|lUR?B zzf!N7t_hNjuj@igt;6f~dv%BRgB||Q;`2?``%7%iS_hUnS|s+;w9SJ8rv&=8O!KV<<+X3uOsb5){w-{@uZ;`vMT z$P@nE)xL|)$*ajY!1A%7^dw^*r#4*^UYq!hclyrymT{fAq8a9t6or?bNJk U?}7O5pHm1qX=SN82|(!o0lq}>tN;K2 diff --git a/img/docs/k9-imap.png b/img/docs/k9-imap.png deleted file mode 100755 index a57965d756c09c291394769e3ab77ead9b8651f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28300 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�{i6N14ls58bxEX?2;spN^Ti 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 diff --git a/img/docs/k9-smtp-300.png b/img/docs/k9-smtp-300.png deleted file mode 100755 index fc0744ceb99b264a9df21df2de721be11f5ade73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12668 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 diff --git a/img/docs/nextcloud-files-zoom.png b/img/docs/nextcloud-files-zoom.png deleted file mode 100755 index 313a1a2b5bacd9f91fdb07860afea84357115f1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20712 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 Iw)rvfFMMkp-~a#s diff --git a/img/docs/nextcloud-files-zoom.webp b/img/docs/nextcloud-files-zoom.webp deleted file mode 100755 index dc67e2eeacff5ba14947bfba21aa1518c01972d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13164 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
  • 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 N?%veBf!44L`5*op{-yu` diff --git a/img/logos/etherpad-colibris.png b/img/logos/etherpad-colibris.png deleted file mode 100755 index 63d2fce94e38d254c46da01be9b7d4b96a176874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4372 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 Ctl(4t diff --git a/img/logos/matrix.png b/img/logos/matrix.png deleted file mode 100755 index 5165d90a3e6f55e51ece7cf80a9c07dbf6c45591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5293 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 s@B=gjGcoF6PV|}}8*G - - - - - diff --git a/inc/debut.php b/inc/debut.php index 33a40a7..2d9fcbe 100755 --- a/inc/debut.php +++ b/inc/debut.php @@ -1,61 +1,72 @@ - - - - - - <?php echo $page['titre']; ?> - - - - - - - - - - - - 'css', 'compress' => true); -$lessFiles = array('style.less' => ''); -$cssFileName = Less_Cache::Get($lessFiles, $options); ?> - -setFormatter("compressed"); - $less->checkedCompile("style.less", "style.min.css"); */ ?> - -setFormatter("compressed"); - $less->checkedCompile("bibli/gomez/gomez.css", "bibli/gomez/gomez.min.css"); */ ?> - -setFormatter("compressed"); - $less->checkedCompile("bibli/fontello/css/fontello.css", "bibli/fontello/css/fontello.min.css"); */ ?> - - - - - + + + + + <?php echo $pageMetas['titre'] . $suffix; ?> + + + + + - + $options = array('cache_dir' => $site . '/css', 'compress' => true); + $lessFiles = array('style.less' => ''); + $cssFileName = Less_Cache::Get($lessFiles, $options); + ?> + + + + + + + + + + + + + -
    + +
    + + + + + + + + + + + + +
    + +
    diff --git a/inc/footer.php b/inc/footer.php index f4a9ae4..00aa14b 100755 --- a/inc/footer.php +++ b/inc/footer.php @@ -1,6 +1,7 @@
    -
    + + + +
    + Site créé avec Base Antopie +
    + Documentation sous CC BY-SA. +
    + Source du document Kopimi +
    + + diff --git a/inc/pages.php b/inc/pages.php deleted file mode 100755 index b73db08..0000000 --- a/inc/pages.php +++ /dev/null @@ -1,67 +0,0 @@ -Antopie vous lie aux conditions suivantes. -Antopie se réserve le droit de mettre à jour et modifier ces conditions à tout moment. -Ces conditions sont dérivées de [celles de Framasoft](https://framasoft.org/fr/cgu/). - -## Conditions des services - -* Vous ne pouvez pas vendre, échanger ou exploiter dans un but commercial un compte du service utilisé. -* Les services étant hébergés en France par une personne de nationalité française, vous devez respecter au moins la législation en vigueur en France. -* Savoir orthographier correctement le mot « spatule » n'est pas nécessaire pour utiliser les services Antopie. - -## Garantie - -* Antopie se dégage de toutes responsabilités dans la limite de la loi et peut à tout moment modifier ou interrompre, temporairement ou définitivement, les services avec ou sans préavis. - -## Données personnelles - -* Conformément à l’article 34 de la loi « Informatique et Libertés », Antopie garantit à l’utilisateurice un droit d’opposition, d’accès et de rectification sur les données nominatives læ concernant. L'utilisateurice a la possibilité d’exercer ce droit en envoyant un [email](mailto:miraty+legal@antopie.org) à l'admin. -* Malgré ce que certaines interfaces pourraient laisser penser, il n'est jamais nécessaire de révéler votre identité pour utiliser les services. -* Tout comme d’autres services en ligne, Antopie enregistre automatiquement certaines informations concernant votre utilisation du service (exemple : type de navigateur, adresse IP, date et heure de l’accès, URL de référence). -Ces données ne sont ni vendues, ni transmises à des tiers, dans la limite de la loi. diff --git a/pages/manifeste-sur-le-contenu.md b/pages/manifeste-sur-le-contenu.md deleted file mode 100755 index cbc4ec2..0000000 --- a/pages/manifeste-sur-le-contenu.md +++ /dev/null @@ -1,20 +0,0 @@ -Ce manifeste s'applique aux cas où les services Antopie sont utilisés pour diffuser publiquement du contenu. L'utilisation des services dans un cadre privé n'est pas concernée par ce manifeste. - -Antopie refuse d'héberger du contenu soutenant une vision du monde droitiste, y compris : -* Fascisme, racisme, capacitisme, essentialisme -* Capitalisme, publicité -* Sexisme, homophobie, transphobie -* Théisme, conspirationnisme, spiritualisme - -Antopie encourage la diffusion d'idées gauchistes, y compris : -* Librisme, datalove, kopimisme -* Anarchisme, communisme, socialisme -* Féminisme, queer -* Écologisme, véganisme, décroissance -* Éducation populaire, pensée critique - -**Les contenus qui n'ont pas particulièrement d'impact politique sont également les bienvenus.** - -Ces règles sont édictées pour que vous puissiez vous faire une idée de la modération et du but d'Antopie. Il ne s'agit pas d'une vérité absolue. Je garde ma liberté de ne pas modérer ou de modérer pour d'autres raisons. - -**Ce n'est pas une atteinte à la liberté d'expression.** Ce manifeste ne vous interdit pas de vous exprimer. Il vous demande simplement de ne pas le faire par un service Antopie si vous avez des idées trop différentes, auquel cas vous pourrez trouvez un service qui vous convient mieux. diff --git a/style.less b/style.less index 31b6fbb..f6d90c6 100755 --- a/style.less +++ b/style.less @@ -1,27 +1,88 @@ -@font-face { - font-family: "Ubuntu"; - src: local("Ubuntu"), local("Ubuntu Regular"), url("bibli/ubuntu/fonts/ubuntu-regular-webfont.woff2") format("woff2"); -} +@light: ~"(prefers-color-scheme: light)"; +@dark: ~"(prefers-color-scheme: dark)"; -@font-face { - font-family: "Ubuntu Mono"; - src: local("Ubuntu Mono"), local("Ubuntu Monospace"), url("bibli/ubuntu/fonts/ubuntumono-regular-webfont.woff2") format("woff2"); -} - -@fond: #2a2a2a; -@fondSecondaire: #222222; -@fondOptionHover: lighten(@fond, 10%); -@texte: white; -@couleurLien: white; -@couleurPrincipale: red; -@border: #5f5f5f; -@borderHover: #808080; -@borderFocus: white; -@mainFontFamily: system-ui; +@darkColor: #2a2a2a; +@darkerColor: #222222; +@lightColor: white; +@lightlessColor: #eeeeee; +@mainColor: red; ::selection { - color: @fond; - background-color: @texte; + @media @light { + color: @lightColor; + background-color: @darkColor; + } + @media @dark { + color: @darkColor; + background-color: @lightColor; + } +} + +html { + @media @light { + scrollbar-color: @darkColor @lightColor; + } + @media @dark { + scrollbar-color: @lightColor @darkColor; + } +} + +body { + font-family: system-ui, sans-serif; + padding: 0px; + margin: 0px; + + font-size: 30px; + line-height: 42px; + + @media @light { + background-color: @lightlessColor; + color: @darkColor; + } + + @media @dark { + background-color: @darkerColor; + color: @lightColor; + } + +} + +main { + margin: 0px; + padding: 30px; + padding-top: 15px; + + @media (max-width: 500px) { + padding-left: 10px; + padding-right: 10px; + } + + @media @light { + background-color: @lightColor; + } + + @media @dark { + background-color: @darkColor; + } +} + +a, a:visited { + text-decoration: underline; + transition: color 0.1s linear; + + @media @light { + color: @darkColor; + } + + @media @dark { + color: @lightColor; + } + + &:hover { + text-decoration: none; + color: @mainColor; + } + } .bouton { @@ -32,12 +93,11 @@ margin: 5px; display: inline-block; border-radius: 14px; - color: @texte; text-decoration: none; &:hover { - color: @couleurPrincipale; - border: 2px solid @couleurPrincipale; + color: @mainColor; + border: 2px solid @mainColor; } } @@ -51,31 +111,11 @@ font-size: 80%; display: inline-block; border-radius: 14px; - color: @texte; text-decoration: none; &:hover { - color: @couleurPrincipale; - border: 2px solid @couleurPrincipale; - } - -} - -html { - font-size: 20px; - scrollbar-color: @texte @fond; - scrollbar-width: auto; -} - - -a, a:visited { - text-decoration: underline; - color: @couleurLien; - transition: all 0.1s linear; - - &:hover { - text-decoration: none; - color: @couleurPrincipale; + color: @mainColor; + border: 2px solid @mainColor; } } @@ -90,34 +130,45 @@ img { } .imgArticle { - border: 1px white solid; - border-radius: 5px; display: block; margin: auto; margin-top: 20px; - margin-bottom: 20px; + margin-bottom: 20px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + + @media @light { + border-color: @darkColor; + } + + @media @dark { + border-color: @lightColor; + } } strong { font-weight: bold; } -code, var, samp { - font-family: "Ubuntu Mono", monospace; - background-color: @fondSecondaire; +pre, code, var, samp { + font-family: monospace; + overflow: scroll; padding: 5px; border-radius: 10px; font-style: normal; + + @media @dark { + background-color: @darkerColor; + } + + @media @light { + background-color: @lightlessColor; + } } -body { - font-family: system-ui; - padding: 0px; - margin: 0px; - background-color: @fondSecondaire; - color: @texte; - font-size: 25px; - line-height: 35px; +abbr[title] { + text-decoration: dotted underline; } address { @@ -188,7 +239,6 @@ p { .elLogoServ { max-width: 150px; max-height: 100px; - color: @texte; } .descService { @@ -198,23 +248,16 @@ p { } .domService { - font-family: "Ubuntu Mono", monospace; + font-family: monospace; overflow-wrap: anywhere; margin-top: -6px; font-size: 0.8em; - color: #eeeeee; -} - -main { - background-color: @fond; - margin: 0px; - padding: 30px; - padding-top: 15px; - - @media (max-width: 500px) { - padding-left: 10px; - padding-right: 10px; - } + @media @light { + color: @darkerColor; + } + @media @dark { + color: @lightlessColor; + } } .centre { @@ -237,18 +280,6 @@ article { } } -#pres { - text-align: center; - line-height: 40px; - margin-left: 100px; - margin-right: 100px; - - @media (max-width: 1400px) { - margin-left: 0px; - margin-right: 0px; - } -} - // FOOTER .textefooter { @@ -272,7 +303,10 @@ article { } footer { - text-align: center; + text-align: center; +} + +footer.antopie { display: flex; flex-direction: column; } @@ -297,20 +331,12 @@ footer { #lienHeader { margin: 0px; - //border: 3px white solid; - //border-top: none; - //border-radius: 0px 0px 12px 12px; - text-align: center; - font-size: 2em; - display: flex; - justify-content: center; padding: 30px; padding-bottom: 20px; margin-left: 35px; margin-right: 35px; @media (max-width: 600px) { - border: none; padding: 0px; margin-top: 20px; margin-left: 20px; @@ -323,21 +349,6 @@ header { justify-content: center; } - -#header:active { - box-shadow: 2px 2px 3px white inset; - -} - -#header:hover { - background-color: @fondOptionHover; - transition: all 0.2s ease-in-out; - @media (max-width: 600px) { - background-color: inherit; - } -} - - // ----- TITRES ----- h1, h2, h3, h4, h5, h6 {
    - - - -