├── .dependencies ├── .editorconfig ├── .github ├── FUNDING.yml └── workflows │ ├── build.yaml │ ├── tests.yaml │ └── trigger-skeletons.yml ├── .gitignore ├── .htaccess ├── .phan ├── config.php └── internal_stubs │ ├── Redis.phan_php │ ├── memcache.phan_php │ └── memcached.phan_php ├── .travis.yml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── SECURITY.md ├── assets └── .gitkeep ├── backup └── .gitkeep ├── bin ├── composer.phar ├── gpm ├── grav └── plugin ├── cache └── .gitkeep ├── codeception.yml ├── composer.json ├── composer.lock ├── images └── .gitkeep ├── index.php ├── logs └── .gitkeep ├── now.json ├── robots.txt ├── system ├── assets │ ├── debugger │ │ ├── clockwork.css │ │ ├── clockwork.js │ │ └── phpdebugbar.css │ ├── grav.png │ ├── jquery │ │ ├── jquery-2.1.4.min.js │ │ ├── jquery-2.x.min.js │ │ └── jquery-3.x.min.js │ ├── responsive-overlays │ │ ├── 1x.png │ │ ├── 2x.png │ │ ├── 3x.png │ │ ├── 4x.png │ │ └── unknown.png │ └── whoops.css ├── blueprints │ ├── config │ │ ├── backups.yaml │ │ ├── media.yaml │ │ ├── scheduler.yaml │ │ ├── security.yaml │ │ ├── site.yaml │ │ ├── streams.yaml │ │ └── system.yaml │ ├── flex │ │ ├── accounts.yaml │ │ ├── configure │ │ │ └── compat.yaml │ │ ├── pages.yaml │ │ ├── shared │ │ │ └── configure.yaml │ │ ├── user-accounts.yaml │ │ └── user-groups.yaml │ ├── pages │ │ ├── default.yaml │ │ ├── external.yaml │ │ ├── modular.yaml │ │ ├── partials │ │ │ └── security.yaml │ │ └── root.yaml │ └── user │ │ ├── account.yaml │ │ ├── account_new.yaml │ │ ├── group.yaml │ │ └── group_new.yaml ├── config │ ├── backups.yaml │ ├── media.yaml │ ├── mime.yaml │ ├── permissions.yaml │ ├── security.yaml │ ├── site.yaml │ └── system.yaml ├── defines.php ├── images │ ├── media │ │ ├── thumb-3dm.png │ │ ├── thumb-3ds.png │ │ ├── thumb-3g2.png │ │ ├── thumb-3gp.png │ │ ├── thumb-7z.png │ │ ├── thumb-aac.png │ │ ├── thumb-ai.png │ │ ├── thumb-aif.png │ │ ├── thumb-apk.png │ │ ├── thumb-app.png │ │ ├── thumb-asf.png │ │ ├── thumb-asp.png │ │ ├── thumb-aspx.png │ │ ├── thumb-asx.png │ │ ├── thumb-avi.png │ │ ├── thumb-bak.png │ │ ├── thumb-bat.png │ │ ├── thumb-bin.png │ │ ├── thumb-bmp.png │ │ ├── thumb-cab.png │ │ ├── thumb-cad.png │ │ ├── thumb-cdr.png │ │ ├── thumb-cer.png │ │ ├── thumb-cfg.png │ │ ├── thumb-cfm.png │ │ ├── thumb-cgi.png │ │ ├── thumb-com.png │ │ ├── thumb-cpl.png │ │ ├── thumb-cpp.png │ │ ├── thumb-crx.png │ │ ├── thumb-csr.png │ │ ├── thumb-css.png │ │ ├── thumb-csv.png │ │ ├── thumb-cue.png │ │ ├── thumb-cur.png │ │ ├── thumb-dat.png │ │ ├── thumb-db.png │ │ ├── thumb-dbf.png │ │ ├── thumb-dds.png │ │ ├── thumb-dem.png │ │ ├── thumb-dll.png │ │ ├── thumb-dmg.png │ │ ├── thumb-dmp.png │ │ ├── thumb-doc.png │ │ ├── thumb-docx.png │ │ ├── thumb-drv.png │ │ ├── thumb-dtd.png │ │ ├── thumb-dwg.png │ │ ├── thumb-dxf.png │ │ ├── thumb-elf.png │ │ ├── thumb-eot.png │ │ ├── thumb-eps.png │ │ ├── thumb-exe.png │ │ ├── thumb-fla.png │ │ ├── thumb-flv.png │ │ ├── thumb-fnt.png │ │ ├── thumb-fon.png │ │ ├── thumb-gam.png │ │ ├── thumb-gbr.png │ │ ├── thumb-ged.png │ │ ├── thumb-gif.png │ │ ├── thumb-gpx.png │ │ ├── thumb-gz.png │ │ ├── thumb-gzip.png │ │ ├── thumb-hqz.png │ │ ├── thumb-html.png │ │ ├── thumb-icns.png │ │ ├── thumb-ico.png │ │ ├── thumb-ics.png │ │ ├── thumb-iff.png │ │ ├── thumb-indd.png │ │ ├── thumb-iso.png │ │ ├── thumb-jar.png │ │ ├── thumb-jpg.png │ │ ├── thumb-js.png │ │ ├── thumb-json.png │ │ ├── thumb-jsp.png │ │ ├── thumb-key.png │ │ ├── thumb-kml.png │ │ ├── thumb-kmz.png │ │ ├── thumb-lnk.png │ │ ├── thumb-log.png │ │ ├── thumb-lua.png │ │ ├── thumb-m3u.png │ │ ├── thumb-m4a.png │ │ ├── thumb-m4v.png │ │ ├── thumb-max.png │ │ ├── thumb-mdb.png │ │ ├── thumb-mdf.png │ │ ├── thumb-mid.png │ │ ├── thumb-mim.png │ │ ├── thumb-mov.png │ │ ├── thumb-mp3.png │ │ ├── thumb-mp4.png │ │ ├── thumb-mpa.png │ │ ├── thumb-mpe.png │ │ ├── thumb-mpg.png │ │ ├── thumb-msg.png │ │ ├── thumb-msi.png │ │ ├── thumb-nes.png │ │ ├── thumb-obj.png │ │ ├── thumb-odb.png │ │ ├── thumb-odc.png │ │ ├── thumb-odf.png │ │ ├── thumb-odg.png │ │ ├── thumb-odi.png │ │ ├── thumb-odp.png │ │ ├── thumb-ods.png │ │ ├── thumb-odt.png │ │ ├── thumb-odx.png │ │ ├── thumb-ogg.png │ │ ├── thumb-pct.png │ │ ├── thumb-pdb.png │ │ ├── thumb-pdf.png │ │ ├── thumb-pif.png │ │ ├── thumb-pkg.png │ │ ├── thumb-pl.png │ │ ├── thumb-png.png │ │ ├── thumb-pps.png │ │ ├── thumb-ppt.png │ │ ├── thumb-pptx.png │ │ ├── thumb-ps.png │ │ ├── thumb-psd.png │ │ ├── thumb-pub.png │ │ ├── thumb-py.png │ │ ├── thumb-ra.png │ │ ├── thumb-rar.png │ │ ├── thumb-raw.png │ │ ├── thumb-rm.png │ │ ├── thumb-rom.png │ │ ├── thumb-rpm.png │ │ ├── thumb-rss.png │ │ ├── thumb-rtf.png │ │ ├── thumb-sav.png │ │ ├── thumb-sdf.png │ │ ├── thumb-sql.png │ │ ├── thumb-srt.png │ │ ├── thumb-svg.png │ │ ├── thumb-swf.png │ │ ├── thumb-sys.png │ │ ├── thumb-tar.png │ │ ├── thumb-tex.png │ │ ├── thumb-tga.png │ │ ├── thumb-thm.png │ │ ├── thumb-tiff.png │ │ ├── thumb-tmp.png │ │ ├── thumb-ttf.png │ │ ├── thumb-txt.png │ │ ├── thumb-uue.png │ │ ├── thumb-vb.png │ │ ├── thumb-vcd.png │ │ ├── thumb-vcf.png │ │ ├── thumb-wav.png │ │ ├── thumb-webm.png │ │ ├── thumb-wma.png │ │ ├── thumb-wmv.png │ │ ├── thumb-woff.png │ │ ├── thumb-woff2.png │ │ ├── thumb-wpd.png │ │ ├── thumb-wps.png │ │ ├── thumb-wsf.png │ │ ├── thumb-xls.png │ │ ├── thumb-xlsx.png │ │ ├── thumb-xml.png │ │ ├── thumb-yuv.png │ │ ├── thumb-zip.png │ │ └── thumb.png │ └── watermark.png ├── install.php ├── languages │ ├── ar.yaml │ ├── bg.yaml │ ├── ca.yaml │ ├── cs.yaml │ ├── da.yaml │ ├── de.yaml │ ├── el.yaml │ ├── en.yaml │ ├── eo.yaml │ ├── es.yaml │ ├── et.yaml │ ├── eu.yaml │ ├── fa.yaml │ ├── fi.yaml │ ├── fr.yaml │ ├── gl.yaml │ ├── he.yaml │ ├── hr.yaml │ ├── hu.yaml │ ├── id.yaml │ ├── is.yaml │ ├── it.yaml │ ├── ja.yaml │ ├── ko.yaml │ ├── lt.yaml │ ├── lv.yaml │ ├── mn.yaml │ ├── my.yaml │ ├── nb.yaml │ ├── nl.yaml │ ├── no.yaml │ ├── pl.yaml │ ├── pt.yaml │ ├── ro.yaml │ ├── ru.yaml │ ├── si.yaml │ ├── sk.yaml │ ├── sl.yaml │ ├── sr.yaml │ ├── sv.yaml │ ├── sw.yaml │ ├── th.yaml │ ├── tr.yaml │ ├── uk.yaml │ ├── vi.yaml │ ├── zh-cn.yaml │ ├── zh-tw.yaml │ └── zh.yaml ├── pages │ └── notfound.md ├── router.php ├── src │ ├── DOMLettersIterator.php │ ├── DOMWordsIterator.php │ ├── Grav │ │ ├── Common │ │ │ ├── Assets.php │ │ │ ├── Assets │ │ │ │ ├── BaseAsset.php │ │ │ │ ├── BlockAssets.php │ │ │ │ ├── Css.php │ │ │ │ ├── InlineCss.php │ │ │ │ ├── InlineJs.php │ │ │ │ ├── InlineJsModule.php │ │ │ │ ├── Js.php │ │ │ │ ├── JsModule.php │ │ │ │ ├── Link.php │ │ │ │ ├── Pipeline.php │ │ │ │ └── Traits │ │ │ │ │ ├── AssetUtilsTrait.php │ │ │ │ │ ├── LegacyAssetsTrait.php │ │ │ │ │ └── TestingAssetsTrait.php │ │ │ ├── Backup │ │ │ │ └── Backups.php │ │ │ ├── Browser.php │ │ │ ├── Cache.php │ │ │ ├── Composer.php │ │ │ ├── Config │ │ │ │ ├── CompiledBase.php │ │ │ │ ├── CompiledBlueprints.php │ │ │ │ ├── CompiledConfig.php │ │ │ │ ├── CompiledLanguages.php │ │ │ │ ├── Config.php │ │ │ │ ├── ConfigFileFinder.php │ │ │ │ ├── Languages.php │ │ │ │ └── Setup.php │ │ │ ├── Data │ │ │ │ ├── Blueprint.php │ │ │ │ ├── BlueprintSchema.php │ │ │ │ ├── Blueprints.php │ │ │ │ ├── Data.php │ │ │ │ ├── DataInterface.php │ │ │ │ ├── Validation.php │ │ │ │ └── ValidationException.php │ │ │ ├── Debugger.php │ │ │ ├── Errors │ │ │ │ ├── BareHandler.php │ │ │ │ ├── Errors.php │ │ │ │ ├── Resources │ │ │ │ │ ├── error.css │ │ │ │ │ └── layout.html.php │ │ │ │ ├── SimplePageHandler.php │ │ │ │ └── SystemFacade.php │ │ │ ├── File │ │ │ │ ├── CompiledFile.php │ │ │ │ ├── CompiledJsonFile.php │ │ │ │ ├── CompiledMarkdownFile.php │ │ │ │ └── CompiledYamlFile.php │ │ │ ├── Filesystem │ │ │ │ ├── Archiver.php │ │ │ │ ├── Folder.php │ │ │ │ ├── RecursiveDirectoryFilterIterator.php │ │ │ │ ├── RecursiveFolderFilterIterator.php │ │ │ │ └── ZipArchiver.php │ │ │ ├── Flex │ │ │ │ ├── FlexCollection.php │ │ │ │ ├── FlexIndex.php │ │ │ │ ├── FlexObject.php │ │ │ │ ├── Traits │ │ │ │ │ ├── FlexCollectionTrait.php │ │ │ │ │ ├── FlexCommonTrait.php │ │ │ │ │ ├── FlexGravTrait.php │ │ │ │ │ ├── FlexIndexTrait.php │ │ │ │ │ └── FlexObjectTrait.php │ │ │ │ └── Types │ │ │ │ │ ├── Generic │ │ │ │ │ ├── GenericCollection.php │ │ │ │ │ ├── GenericIndex.php │ │ │ │ │ └── GenericObject.php │ │ │ │ │ ├── Pages │ │ │ │ │ ├── PageCollection.php │ │ │ │ │ ├── PageIndex.php │ │ │ │ │ ├── PageObject.php │ │ │ │ │ ├── Storage │ │ │ │ │ │ └── PageStorage.php │ │ │ │ │ └── Traits │ │ │ │ │ │ ├── PageContentTrait.php │ │ │ │ │ │ ├── PageLegacyTrait.php │ │ │ │ │ │ ├── PageRoutableTrait.php │ │ │ │ │ │ └── PageTranslateTrait.php │ │ │ │ │ ├── UserGroups │ │ │ │ │ ├── UserGroupCollection.php │ │ │ │ │ ├── UserGroupIndex.php │ │ │ │ │ └── UserGroupObject.php │ │ │ │ │ └── Users │ │ │ │ │ ├── Storage │ │ │ │ │ ├── UserFileStorage.php │ │ │ │ │ └── UserFolderStorage.php │ │ │ │ │ ├── Traits │ │ │ │ │ └── UserObjectLegacyTrait.php │ │ │ │ │ ├── UserCollection.php │ │ │ │ │ ├── UserIndex.php │ │ │ │ │ └── UserObject.php │ │ │ ├── Form │ │ │ │ └── FormFlash.php │ │ │ ├── GPM │ │ │ │ ├── AbstractCollection.php │ │ │ │ ├── Common │ │ │ │ │ ├── AbstractPackageCollection.php │ │ │ │ │ ├── CachedCollection.php │ │ │ │ │ └── Package.php │ │ │ │ ├── GPM.php │ │ │ │ ├── Installer.php │ │ │ │ ├── Licenses.php │ │ │ │ ├── Local │ │ │ │ │ ├── AbstractPackageCollection.php │ │ │ │ │ ├── Package.php │ │ │ │ │ ├── Packages.php │ │ │ │ │ ├── Plugins.php │ │ │ │ │ └── Themes.php │ │ │ │ ├── Remote │ │ │ │ │ ├── AbstractPackageCollection.php │ │ │ │ │ ├── GravCore.php │ │ │ │ │ ├── Package.php │ │ │ │ │ ├── Packages.php │ │ │ │ │ ├── Plugins.php │ │ │ │ │ └── Themes.php │ │ │ │ ├── Response.php │ │ │ │ └── Upgrader.php │ │ │ ├── Getters.php │ │ │ ├── Grav.php │ │ │ ├── GravTrait.php │ │ │ ├── HTTP │ │ │ │ ├── Client.php │ │ │ │ └── Response.php │ │ │ ├── Helpers │ │ │ │ ├── Base32.php │ │ │ │ ├── Excerpts.php │ │ │ │ ├── Exif.php │ │ │ │ ├── LogViewer.php │ │ │ │ ├── Truncator.php │ │ │ │ └── YamlLinter.php │ │ │ ├── Inflector.php │ │ │ ├── Iterator.php │ │ │ ├── Language │ │ │ │ ├── Language.php │ │ │ │ └── LanguageCodes.php │ │ │ ├── Markdown │ │ │ │ ├── Parsedown.php │ │ │ │ ├── ParsedownExtra.php │ │ │ │ └── ParsedownGravTrait.php │ │ │ ├── Media │ │ │ │ ├── Interfaces │ │ │ │ │ ├── AudioMediaInterface.php │ │ │ │ │ ├── ImageManipulateInterface.php │ │ │ │ │ ├── ImageMediaInterface.php │ │ │ │ │ ├── MediaCollectionInterface.php │ │ │ │ │ ├── MediaFileInterface.php │ │ │ │ │ ├── MediaInterface.php │ │ │ │ │ ├── MediaLinkInterface.php │ │ │ │ │ ├── MediaObjectInterface.php │ │ │ │ │ ├── MediaPlayerInterface.php │ │ │ │ │ ├── MediaUploadInterface.php │ │ │ │ │ └── VideoMediaInterface.php │ │ │ │ └── Traits │ │ │ │ │ ├── AudioMediaTrait.php │ │ │ │ │ ├── ImageDecodingTrait.php │ │ │ │ │ ├── ImageFetchPriorityTrait.php │ │ │ │ │ ├── ImageLoadingTrait.php │ │ │ │ │ ├── ImageMediaTrait.php │ │ │ │ │ ├── MediaFileTrait.php │ │ │ │ │ ├── MediaObjectTrait.php │ │ │ │ │ ├── MediaPlayerTrait.php │ │ │ │ │ ├── MediaTrait.php │ │ │ │ │ ├── MediaUploadTrait.php │ │ │ │ │ ├── StaticResizeTrait.php │ │ │ │ │ ├── ThumbnailMediaTrait.php │ │ │ │ │ └── VideoMediaTrait.php │ │ │ ├── Page │ │ │ │ ├── Collection.php │ │ │ │ ├── Header.php │ │ │ │ ├── Interfaces │ │ │ │ │ ├── PageCollectionInterface.php │ │ │ │ │ ├── PageContentInterface.php │ │ │ │ │ ├── PageFormInterface.php │ │ │ │ │ ├── PageInterface.php │ │ │ │ │ ├── PageLegacyInterface.php │ │ │ │ │ ├── PageRoutableInterface.php │ │ │ │ │ ├── PageTranslateInterface.php │ │ │ │ │ └── PagesSourceInterface.php │ │ │ │ ├── Markdown │ │ │ │ │ └── Excerpts.php │ │ │ │ ├── Media.php │ │ │ │ ├── Medium │ │ │ │ │ ├── AbstractMedia.php │ │ │ │ │ ├── AudioMedium.php │ │ │ │ │ ├── GlobalMedia.php │ │ │ │ │ ├── ImageFile.php │ │ │ │ │ ├── ImageMedium.php │ │ │ │ │ ├── Link.php │ │ │ │ │ ├── Medium.php │ │ │ │ │ ├── MediumFactory.php │ │ │ │ │ ├── ParsedownHtmlTrait.php │ │ │ │ │ ├── RenderableInterface.php │ │ │ │ │ ├── StaticImageMedium.php │ │ │ │ │ ├── StaticResizeTrait.php │ │ │ │ │ ├── ThumbnailImageMedium.php │ │ │ │ │ ├── VectorImageMedium.php │ │ │ │ │ └── VideoMedium.php │ │ │ │ ├── Page.php │ │ │ │ ├── Pages.php │ │ │ │ ├── Traits │ │ │ │ │ └── PageFormTrait.php │ │ │ │ └── Types.php │ │ │ ├── Plugin.php │ │ │ ├── Plugins.php │ │ │ ├── Processors │ │ │ │ ├── AssetsProcessor.php │ │ │ │ ├── BackupsProcessor.php │ │ │ │ ├── DebuggerAssetsProcessor.php │ │ │ │ ├── Events │ │ │ │ │ └── RequestHandlerEvent.php │ │ │ │ ├── InitializeProcessor.php │ │ │ │ ├── PagesProcessor.php │ │ │ │ ├── PluginsProcessor.php │ │ │ │ ├── ProcessorBase.php │ │ │ │ ├── ProcessorInterface.php │ │ │ │ ├── RenderProcessor.php │ │ │ │ ├── RequestProcessor.php │ │ │ │ ├── SchedulerProcessor.php │ │ │ │ ├── TasksProcessor.php │ │ │ │ ├── ThemesProcessor.php │ │ │ │ └── TwigProcessor.php │ │ │ ├── Scheduler │ │ │ │ ├── Cron.php │ │ │ │ ├── IntervalTrait.php │ │ │ │ ├── Job.php │ │ │ │ └── Scheduler.php │ │ │ ├── Security.php │ │ │ ├── Service │ │ │ │ ├── AccountsServiceProvider.php │ │ │ │ ├── AssetsServiceProvider.php │ │ │ │ ├── BackupsServiceProvider.php │ │ │ │ ├── ConfigServiceProvider.php │ │ │ │ ├── ErrorServiceProvider.php │ │ │ │ ├── FilesystemServiceProvider.php │ │ │ │ ├── FlexServiceProvider.php │ │ │ │ ├── InflectorServiceProvider.php │ │ │ │ ├── LoggerServiceProvider.php │ │ │ │ ├── OutputServiceProvider.php │ │ │ │ ├── PagesServiceProvider.php │ │ │ │ ├── RequestServiceProvider.php │ │ │ │ ├── SchedulerServiceProvider.php │ │ │ │ ├── SessionServiceProvider.php │ │ │ │ ├── StreamsServiceProvider.php │ │ │ │ └── TaskServiceProvider.php │ │ │ ├── Session.php │ │ │ ├── Taxonomy.php │ │ │ ├── Theme.php │ │ │ ├── Themes.php │ │ │ ├── Twig │ │ │ │ ├── Exception │ │ │ │ │ └── TwigException.php │ │ │ │ ├── Extension │ │ │ │ │ ├── FilesystemExtension.php │ │ │ │ │ └── GravExtension.php │ │ │ │ ├── Node │ │ │ │ │ ├── TwigNodeCache.php │ │ │ │ │ ├── TwigNodeLink.php │ │ │ │ │ ├── TwigNodeMarkdown.php │ │ │ │ │ ├── TwigNodeRender.php │ │ │ │ │ ├── TwigNodeScript.php │ │ │ │ │ ├── TwigNodeStyle.php │ │ │ │ │ ├── TwigNodeSwitch.php │ │ │ │ │ ├── TwigNodeThrow.php │ │ │ │ │ └── TwigNodeTryCatch.php │ │ │ │ ├── TokenParser │ │ │ │ │ ├── TwigTokenParserCache.php │ │ │ │ │ ├── TwigTokenParserLink.php │ │ │ │ │ ├── TwigTokenParserMarkdown.php │ │ │ │ │ ├── TwigTokenParserRender.php │ │ │ │ │ ├── TwigTokenParserScript.php │ │ │ │ │ ├── TwigTokenParserStyle.php │ │ │ │ │ ├── TwigTokenParserSwitch.php │ │ │ │ │ ├── TwigTokenParserThrow.php │ │ │ │ │ └── TwigTokenParserTryCatch.php │ │ │ │ ├── Twig.php │ │ │ │ ├── TwigClockworkDataSource.php │ │ │ │ ├── TwigClockworkDumper.php │ │ │ │ ├── TwigEnvironment.php │ │ │ │ ├── TwigExtension.php │ │ │ │ └── WriteCacheFileTrait.php │ │ │ ├── Uri.php │ │ │ ├── User │ │ │ │ ├── Access.php │ │ │ │ ├── Authentication.php │ │ │ │ ├── DataUser │ │ │ │ │ ├── User.php │ │ │ │ │ └── UserCollection.php │ │ │ │ ├── Group.php │ │ │ │ ├── Interfaces │ │ │ │ │ ├── AuthorizeInterface.php │ │ │ │ │ ├── UserCollectionInterface.php │ │ │ │ │ ├── UserGroupInterface.php │ │ │ │ │ └── UserInterface.php │ │ │ │ ├── Traits │ │ │ │ │ └── UserTrait.php │ │ │ │ └── User.php │ │ │ ├── Utils.php │ │ │ └── Yaml.php │ │ ├── Console │ │ │ ├── Application │ │ │ │ ├── Application.php │ │ │ │ ├── CommandLoader │ │ │ │ │ └── PluginCommandLoader.php │ │ │ │ ├── GpmApplication.php │ │ │ │ ├── GravApplication.php │ │ │ │ └── PluginApplication.php │ │ │ ├── Cli │ │ │ │ ├── BackupCommand.php │ │ │ │ ├── CleanCommand.php │ │ │ │ ├── ClearCacheCommand.php │ │ │ │ ├── ComposerCommand.php │ │ │ │ ├── InstallCommand.php │ │ │ │ ├── LogViewerCommand.php │ │ │ │ ├── NewProjectCommand.php │ │ │ │ ├── PageSystemValidatorCommand.php │ │ │ │ ├── SandboxCommand.php │ │ │ │ ├── SchedulerCommand.php │ │ │ │ ├── SecurityCommand.php │ │ │ │ ├── ServerCommand.php │ │ │ │ └── YamlLinterCommand.php │ │ │ ├── ConsoleCommand.php │ │ │ ├── ConsoleTrait.php │ │ │ ├── Gpm │ │ │ │ ├── DirectInstallCommand.php │ │ │ │ ├── IndexCommand.php │ │ │ │ ├── InfoCommand.php │ │ │ │ ├── InstallCommand.php │ │ │ │ ├── SelfupgradeCommand.php │ │ │ │ ├── UninstallCommand.php │ │ │ │ ├── UpdateCommand.php │ │ │ │ └── VersionCommand.php │ │ │ ├── GpmCommand.php │ │ │ ├── GravCommand.php │ │ │ ├── Plugin │ │ │ │ └── PluginListCommand.php │ │ │ └── TerminalObjects │ │ │ │ └── Table.php │ │ ├── Events │ │ │ ├── BeforeSessionStartEvent.php │ │ │ ├── FlexRegisterEvent.php │ │ │ ├── PageEvent.php │ │ │ ├── PermissionsRegisterEvent.php │ │ │ ├── PluginsLoadedEvent.php │ │ │ ├── SessionStartEvent.php │ │ │ └── TypesEvent.php │ │ ├── Framework │ │ │ ├── Acl │ │ │ │ ├── Access.php │ │ │ │ ├── Action.php │ │ │ │ ├── Permissions.php │ │ │ │ ├── PermissionsReader.php │ │ │ │ └── RecursiveActionIterator.php │ │ │ ├── Cache │ │ │ │ ├── AbstractCache.php │ │ │ │ ├── Adapter │ │ │ │ │ ├── ChainCache.php │ │ │ │ │ ├── DoctrineCache.php │ │ │ │ │ ├── FileCache.php │ │ │ │ │ ├── MemoryCache.php │ │ │ │ │ └── SessionCache.php │ │ │ │ ├── CacheInterface.php │ │ │ │ ├── CacheTrait.php │ │ │ │ └── Exception │ │ │ │ │ ├── CacheException.php │ │ │ │ │ └── InvalidArgumentException.php │ │ │ ├── Collection │ │ │ │ ├── AbstractFileCollection.php │ │ │ │ ├── AbstractIndexCollection.php │ │ │ │ ├── AbstractLazyCollection.php │ │ │ │ ├── ArrayCollection.php │ │ │ │ ├── CollectionInterface.php │ │ │ │ ├── FileCollection.php │ │ │ │ └── FileCollectionInterface.php │ │ │ ├── Compat │ │ │ │ └── Serializable.php │ │ │ ├── ContentBlock │ │ │ │ ├── ContentBlock.php │ │ │ │ ├── ContentBlockInterface.php │ │ │ │ ├── HtmlBlock.php │ │ │ │ └── HtmlBlockInterface.php │ │ │ ├── Contracts │ │ │ │ ├── Media │ │ │ │ │ └── MediaObjectInterface.php │ │ │ │ ├── Object │ │ │ │ │ └── IdentifierInterface.php │ │ │ │ └── Relationships │ │ │ │ │ ├── RelationshipIdentifierInterface.php │ │ │ │ │ ├── RelationshipInterface.php │ │ │ │ │ ├── RelationshipsInterface.php │ │ │ │ │ ├── ToManyRelationshipInterface.php │ │ │ │ │ └── ToOneRelationshipInterface.php │ │ │ ├── Controller │ │ │ │ └── Traits │ │ │ │ │ └── ControllerResponseTrait.php │ │ │ ├── DI │ │ │ │ └── Container.php │ │ │ ├── File │ │ │ │ ├── AbstractFile.php │ │ │ │ ├── CsvFile.php │ │ │ │ ├── DataFile.php │ │ │ │ ├── File.php │ │ │ │ ├── Formatter │ │ │ │ │ ├── AbstractFormatter.php │ │ │ │ │ ├── CsvFormatter.php │ │ │ │ │ ├── FormatterInterface.php │ │ │ │ │ ├── IniFormatter.php │ │ │ │ │ ├── JsonFormatter.php │ │ │ │ │ ├── MarkdownFormatter.php │ │ │ │ │ ├── SerializeFormatter.php │ │ │ │ │ └── YamlFormatter.php │ │ │ │ ├── IniFile.php │ │ │ │ ├── Interfaces │ │ │ │ │ ├── FileFormatterInterface.php │ │ │ │ │ └── FileInterface.php │ │ │ │ ├── JsonFile.php │ │ │ │ ├── MarkdownFile.php │ │ │ │ └── YamlFile.php │ │ │ ├── Filesystem │ │ │ │ ├── Filesystem.php │ │ │ │ └── Interfaces │ │ │ │ │ └── FilesystemInterface.php │ │ │ ├── Flex │ │ │ │ ├── Flex.php │ │ │ │ ├── FlexCollection.php │ │ │ │ ├── FlexDirectory.php │ │ │ │ ├── FlexDirectoryForm.php │ │ │ │ ├── FlexForm.php │ │ │ │ ├── FlexFormFlash.php │ │ │ │ ├── FlexIdentifier.php │ │ │ │ ├── FlexIndex.php │ │ │ │ ├── FlexObject.php │ │ │ │ ├── Interfaces │ │ │ │ │ ├── FlexAuthorizeInterface.php │ │ │ │ │ ├── FlexCollectionInterface.php │ │ │ │ │ ├── FlexCommonInterface.php │ │ │ │ │ ├── FlexDirectoryFormInterface.php │ │ │ │ │ ├── FlexDirectoryInterface.php │ │ │ │ │ ├── FlexFormInterface.php │ │ │ │ │ ├── FlexIndexInterface.php │ │ │ │ │ ├── FlexInterface.php │ │ │ │ │ ├── FlexObjectFormInterface.php │ │ │ │ │ ├── FlexObjectInterface.php │ │ │ │ │ ├── FlexStorageInterface.php │ │ │ │ │ └── FlexTranslateInterface.php │ │ │ │ ├── Pages │ │ │ │ │ ├── FlexPageCollection.php │ │ │ │ │ ├── FlexPageIndex.php │ │ │ │ │ ├── FlexPageObject.php │ │ │ │ │ └── Traits │ │ │ │ │ │ ├── PageAuthorsTrait.php │ │ │ │ │ │ ├── PageContentTrait.php │ │ │ │ │ │ ├── PageLegacyTrait.php │ │ │ │ │ │ ├── PageRoutableTrait.php │ │ │ │ │ │ └── PageTranslateTrait.php │ │ │ │ ├── Storage │ │ │ │ │ ├── AbstractFilesystemStorage.php │ │ │ │ │ ├── FileStorage.php │ │ │ │ │ ├── FolderStorage.php │ │ │ │ │ └── SimpleStorage.php │ │ │ │ └── Traits │ │ │ │ │ ├── FlexAuthorizeTrait.php │ │ │ │ │ ├── FlexMediaTrait.php │ │ │ │ │ ├── FlexRelatedDirectoryTrait.php │ │ │ │ │ └── FlexRelationshipsTrait.php │ │ │ ├── Form │ │ │ │ ├── FormFlash.php │ │ │ │ ├── FormFlashFile.php │ │ │ │ ├── Interfaces │ │ │ │ │ ├── FormFactoryInterface.php │ │ │ │ │ ├── FormFlashInterface.php │ │ │ │ │ └── FormInterface.php │ │ │ │ └── Traits │ │ │ │ │ └── FormTrait.php │ │ │ ├── Interfaces │ │ │ │ └── RenderInterface.php │ │ │ ├── Logger │ │ │ │ └── Processors │ │ │ │ │ └── UserProcessor.php │ │ │ ├── Media │ │ │ │ ├── Interfaces │ │ │ │ │ ├── MediaCollectionInterface.php │ │ │ │ │ ├── MediaInterface.php │ │ │ │ │ ├── MediaManipulationInterface.php │ │ │ │ │ └── MediaObjectInterface.php │ │ │ │ ├── MediaIdentifier.php │ │ │ │ ├── MediaObject.php │ │ │ │ └── UploadedMediaObject.php │ │ │ ├── Mime │ │ │ │ └── MimeTypes.php │ │ │ ├── Object │ │ │ │ ├── Access │ │ │ │ │ ├── ArrayAccessTrait.php │ │ │ │ │ ├── NestedArrayAccessTrait.php │ │ │ │ │ ├── NestedPropertyCollectionTrait.php │ │ │ │ │ ├── NestedPropertyTrait.php │ │ │ │ │ └── OverloadedPropertyTrait.php │ │ │ │ ├── ArrayObject.php │ │ │ │ ├── Base │ │ │ │ │ ├── ObjectCollectionTrait.php │ │ │ │ │ └── ObjectTrait.php │ │ │ │ ├── Collection │ │ │ │ │ └── ObjectExpressionVisitor.php │ │ │ │ ├── Identifiers │ │ │ │ │ └── Identifier.php │ │ │ │ ├── Interfaces │ │ │ │ │ ├── NestedObjectCollectionInterface.php │ │ │ │ │ ├── NestedObjectInterface.php │ │ │ │ │ ├── ObjectCollectionInterface.php │ │ │ │ │ └── ObjectInterface.php │ │ │ │ ├── LazyObject.php │ │ │ │ ├── ObjectCollection.php │ │ │ │ ├── ObjectIndex.php │ │ │ │ ├── Property │ │ │ │ │ ├── ArrayPropertyTrait.php │ │ │ │ │ ├── LazyPropertyTrait.php │ │ │ │ │ ├── MixedPropertyTrait.php │ │ │ │ │ └── ObjectPropertyTrait.php │ │ │ │ └── PropertyObject.php │ │ │ ├── Pagination │ │ │ │ ├── AbstractPagination.php │ │ │ │ ├── AbstractPaginationPage.php │ │ │ │ ├── Interfaces │ │ │ │ │ ├── PaginationInterface.php │ │ │ │ │ └── PaginationPageInterface.php │ │ │ │ ├── Pagination.php │ │ │ │ └── PaginationPage.php │ │ │ ├── Psr7 │ │ │ │ ├── AbstractUri.php │ │ │ │ ├── Request.php │ │ │ │ ├── Response.php │ │ │ │ ├── ServerRequest.php │ │ │ │ ├── Stream.php │ │ │ │ ├── Traits │ │ │ │ │ ├── MessageDecoratorTrait.php │ │ │ │ │ ├── RequestDecoratorTrait.php │ │ │ │ │ ├── ResponseDecoratorTrait.php │ │ │ │ │ ├── ServerRequestDecoratorTrait.php │ │ │ │ │ ├── StreamDecoratorTrait.php │ │ │ │ │ ├── UploadedFileDecoratorTrait.php │ │ │ │ │ └── UriDecorationTrait.php │ │ │ │ ├── UploadedFile.php │ │ │ │ └── Uri.php │ │ │ ├── Relationships │ │ │ │ ├── Relationships.php │ │ │ │ ├── ToManyRelationship.php │ │ │ │ ├── ToOneRelationship.php │ │ │ │ └── Traits │ │ │ │ │ └── RelationshipTrait.php │ │ │ ├── RequestHandler │ │ │ │ ├── Exception │ │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ │ ├── NotFoundException.php │ │ │ │ │ ├── NotHandledException.php │ │ │ │ │ ├── PageExpiredException.php │ │ │ │ │ └── RequestException.php │ │ │ │ ├── Middlewares │ │ │ │ │ ├── Exceptions.php │ │ │ │ │ └── MultipartRequestSupport.php │ │ │ │ ├── RequestHandler.php │ │ │ │ └── Traits │ │ │ │ │ └── RequestHandlerTrait.php │ │ │ ├── Route │ │ │ │ ├── Route.php │ │ │ │ └── RouteFactory.php │ │ │ ├── Session │ │ │ │ ├── Exceptions │ │ │ │ │ └── SessionException.php │ │ │ │ ├── Messages.php │ │ │ │ ├── Session.php │ │ │ │ └── SessionInterface.php │ │ │ └── Uri │ │ │ │ ├── Uri.php │ │ │ │ ├── UriFactory.php │ │ │ │ └── UriPartsFilter.php │ │ └── Installer │ │ │ ├── Install.php │ │ │ ├── InstallException.php │ │ │ ├── VersionUpdate.php │ │ │ ├── VersionUpdater.php │ │ │ ├── Versions.php │ │ │ ├── YamlUpdater.php │ │ │ └── updates │ │ │ └── 1.7.0_2020-11-20_1.php │ └── Twig │ │ └── DeferredExtension │ │ ├── DeferredBlockNode.php │ │ ├── DeferredDeclareNode.php │ │ ├── DeferredExtension.php │ │ ├── DeferredInitializeNode.php │ │ ├── DeferredNode.php │ │ ├── DeferredNodeVisitor.php │ │ ├── DeferredNodeVisitorCompat.php │ │ ├── DeferredResolveNode.php │ │ └── DeferredTokenParser.php └── templates │ ├── default.html.twig │ ├── external.html.twig │ ├── flex │ ├── 404.html.twig │ └── _default │ │ ├── collection │ │ └── debug.html.twig │ │ └── object │ │ └── debug.html.twig │ ├── modular │ └── default.html.twig │ └── partials │ ├── messages.html.twig │ └── metadata.html.twig ├── tests ├── _bootstrap.php ├── _support │ ├── AcceptanceTester.php │ ├── FunctionalTester.php │ ├── Helper │ │ ├── Acceptance.php │ │ ├── Functional.php │ │ └── Unit.php │ └── UnitTester.php ├── acceptance.suite.yml ├── acceptance │ └── _bootstrap.php ├── fake │ ├── nested-site │ │ └── user │ │ │ └── pages │ │ │ ├── 01.item1 │ │ │ ├── 01.item1-1 │ │ │ │ ├── 01.item1-1-1 │ │ │ │ │ └── default.md │ │ │ │ ├── 02.item1-1-2 │ │ │ │ │ └── default.md │ │ │ │ ├── 03.item1-1-3 │ │ │ │ │ └── default.md │ │ │ │ └── default.md │ │ │ ├── 02.item1-2 │ │ │ │ ├── 01.item1-2-1 │ │ │ │ │ └── default.md │ │ │ │ ├── 02.item1-2-2 │ │ │ │ │ └── default.md │ │ │ │ ├── 03.item1-2-3 │ │ │ │ │ └── default.md │ │ │ │ └── default.md │ │ │ ├── 03.item1-3 │ │ │ │ ├── 01.item1-3-1 │ │ │ │ │ └── default.md │ │ │ │ ├── 02.item1-3-2 │ │ │ │ │ └── default.md │ │ │ │ ├── 03.item1-3-3 │ │ │ │ │ └── default.md │ │ │ │ └── default.md │ │ │ ├── default.md │ │ │ ├── existing-file.zip │ │ │ ├── home-cache-image.jpg │ │ │ └── home-sample-image.jpg │ │ │ ├── 02.item2 │ │ │ ├── 01.item2-1 │ │ │ │ ├── 01.item2-1-1 │ │ │ │ │ └── default.md │ │ │ │ ├── 02.item2-1-2 │ │ │ │ │ └── default.md │ │ │ │ ├── 03.item2-1-3 │ │ │ │ │ └── default.md │ │ │ │ └── default.md │ │ │ ├── 02.item2-2 │ │ │ │ ├── 01.item2-2-1 │ │ │ │ │ └── default.md │ │ │ │ ├── 02.item2-2-2 │ │ │ │ │ └── default.md │ │ │ │ ├── 03.item2-2-3 │ │ │ │ │ └── default.md │ │ │ │ ├── cache-image.jpg │ │ │ │ ├── default.md │ │ │ │ ├── existing-file.zip │ │ │ │ └── sample-image.jpg │ │ │ ├── 03.item2-3 │ │ │ │ ├── 01.item2-3-1 │ │ │ │ │ └── default.md │ │ │ │ ├── 02.item2-3-2 │ │ │ │ │ └── default.md │ │ │ │ ├── 03.item2-3-3 │ │ │ │ │ └── default.md │ │ │ │ └── default.md │ │ │ └── default.md │ │ │ └── 03.item3 │ │ │ ├── 01.item3-1 │ │ │ ├── 01.item3-1-1 │ │ │ │ └── default.md │ │ │ ├── 02.item3-1-2 │ │ │ │ └── default.md │ │ │ ├── 03.item3-1-3 │ │ │ │ └── default.md │ │ │ └── default.md │ │ │ ├── 02.item3-2 │ │ │ ├── 01.item3-2-1 │ │ │ │ └── default.md │ │ │ ├── 02.item3-2-2 │ │ │ │ └── default.md │ │ │ ├── 03.item3-2-3 │ │ │ │ └── default.md │ │ │ └── default.md │ │ │ ├── 03.item3-3 │ │ │ ├── 01.item3-3-1 │ │ │ │ └── default.md │ │ │ ├── 02.item3-3-2 │ │ │ │ └── default.md │ │ │ ├── 03.item3-3-3 │ │ │ │ └── default.md │ │ │ └── default.md │ │ │ └── default.md │ ├── simple-site │ │ └── user │ │ │ └── pages │ │ │ ├── 01.home │ │ │ └── default.md │ │ │ ├── 02.blog │ │ │ ├── blog.md │ │ │ ├── post-one │ │ │ │ └── item.md │ │ │ └── post-two │ │ │ │ └── item.md │ │ │ ├── 03.about │ │ │ └── default.md │ │ │ ├── 04.page-translated │ │ │ ├── default.en.md │ │ │ └── default.fr.md │ │ │ └── 05.translatedlong │ │ │ └── part2 │ │ │ ├── default.en.md │ │ │ └── default.fr.md │ ├── single-page-translated │ │ └── user │ │ │ └── pages │ │ │ └── 01.simple-page │ │ │ ├── default.en.md │ │ │ └── default.fr.md │ └── single-pages │ │ └── 01.simple-page │ │ └── default.md ├── functional.suite.yml ├── functional │ ├── Grav │ │ └── Console │ │ │ └── DirectInstallCommandTest.php │ └── _bootstrap.php ├── phpstan │ ├── classes │ │ └── Toolbox │ │ │ └── UniformResourceLocatorExtension.php │ ├── extension.neon │ ├── phpstan-bootstrap.php │ ├── phpstan.neon │ ├── plugins-bootstrap.php │ └── plugins.neon ├── unit.suite.yml └── unit │ ├── Grav │ ├── Common │ │ ├── AssetsTest.php │ │ ├── BrowserTest.php │ │ ├── ComposerTest.php │ │ ├── Data │ │ │ └── BlueprintTest.php │ │ ├── GPM │ │ │ └── GPMTest.php │ │ ├── Helpers │ │ │ └── ExcerptsTest.php │ │ ├── InflectorTest.php │ │ ├── Language │ │ │ └── LanguageCodesTest.php │ │ ├── Markdown │ │ │ └── ParsedownTest.php │ │ ├── Page │ │ │ └── PagesTest.php │ │ ├── Twig │ │ │ └── Extensions │ │ │ │ └── GravExtensionTest.php │ │ ├── UriTest.php │ │ └── UtilsTest.php │ ├── Console │ │ └── Gpm │ │ │ └── InstallCommandTest.php │ └── Framework │ │ ├── File │ │ └── Formatter │ │ │ └── CsvFormatterTest.php │ │ └── Filesystem │ │ └── FilesystemTest.php │ ├── _bootstrap.php │ └── data │ └── blueprints │ └── strict.yaml ├── tmp └── .gitkeep ├── user ├── accounts │ └── .gitkeep ├── config │ ├── site.yaml │ └── system.yaml ├── data │ └── .gitkeep ├── pages │ ├── 01.home │ │ └── default.md │ └── 02.typography │ │ └── default.md ├── plugins │ └── .gitkeep └── themes │ └── .gitkeep └── webserver-configs ├── Caddyfile ├── Caddyfile-0.8.x ├── htaccess.txt ├── lighttpd.conf ├── nginx.conf └── web.config /.dependencies: -------------------------------------------------------------------------------- 1 | git: 2 | problems: 3 | url: https://github.com/getgrav/grav-plugin-problems 4 | path: user/plugins/problems 5 | branch: master 6 | error: 7 | url: https://github.com/getgrav/grav-plugin-error 8 | path: user/plugins/error 9 | branch: master 10 | markdown-notices: 11 | url: https://github.com/getgrav/grav-plugin-markdown-notices 12 | path: user/plugins/markdown-notices 13 | branch: master 14 | quark: 15 | url: https://github.com/getgrav/grav-theme-quark 16 | path: user/themes/quark 17 | branch: master 18 | links: 19 | problems: 20 | src: grav-plugin-problems 21 | path: user/plugins/problems 22 | scm: github 23 | error: 24 | src: grav-plugin-error 25 | path: user/plugins/error 26 | scm: github 27 | markdown-notices: 28 | src: grav-plugin-markdown-notices 29 | path: user/plugins/markdown-notices 30 | scm: github 31 | quark: 32 | src: grav-theme-quark 33 | path: user/themes/quark 34 | scm: github 35 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Unix-style newlines with a newline ending every file 7 | [*] 8 | charset = utf-8 9 | end_of_line = lf 10 | insert_final_newline = true 11 | indent_style = space 12 | indent_size = 4 13 | trim_trailing_whitespace = true 14 | 15 | # 2 space indentation 16 | [*.{yaml,yml,vue,js,css}] 17 | indent_size = 2 18 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: grav 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | custom: # Replace with a single custom sponsorship URL 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Composer 2 | .composer 3 | vendor/* 4 | !*/vendor/* 5 | 6 | # Sass 7 | .sass-cache 8 | 9 | # Grav Specific 10 | backup/* 11 | !backup/.* 12 | cache/* 13 | !cache/.* 14 | assets/* 15 | !assets/.* 16 | logs/* 17 | !logs/.* 18 | images/* 19 | !images/.* 20 | user/accounts/* 21 | !user/accounts/.* 22 | user/data/* 23 | !user/data/.* 24 | user/plugins/* 25 | !user/plugins/.* 26 | user/themes/* 27 | !user/themes/.* 28 | user/**/config/security.yaml 29 | 30 | # Environments 31 | .env 32 | .gravenv 33 | 34 | # OS Generated 35 | .DS_Store* 36 | ehthumbs.db 37 | Icon? 38 | Thumbs.db 39 | *.swp 40 | 41 | # phpstorm 42 | .idea/* 43 | 44 | # testing stuff 45 | tests/_output/* 46 | tests/_support/_generated/* 47 | tests/cache/* 48 | tests/error.log 49 | system/templates/testing/* 50 | /user/config/versions.yaml 51 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2021 Grav 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /assets/.gitkeep: -------------------------------------------------------------------------------- 1 | /* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */ 2 | -------------------------------------------------------------------------------- /backup/.gitkeep: -------------------------------------------------------------------------------- 1 | /* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */ 2 | -------------------------------------------------------------------------------- /bin/composer.phar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/bin/composer.phar -------------------------------------------------------------------------------- /cache/.gitkeep: -------------------------------------------------------------------------------- 1 | /* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */ 2 | -------------------------------------------------------------------------------- /codeception.yml: -------------------------------------------------------------------------------- 1 | actor: Tester 2 | bootstrap: _bootstrap.php 3 | paths: 4 | tests: tests 5 | log: tests/_output 6 | data: tests/_data 7 | support: tests/_support 8 | envs: tests/_envs 9 | settings: 10 | colors: true 11 | memory_limit: 1024M 12 | extensions: 13 | enabled: 14 | - Codeception\Extension\RunFailed 15 | modules: 16 | config: 17 | -------------------------------------------------------------------------------- /images/.gitkeep: -------------------------------------------------------------------------------- 1 | /* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */ 2 | -------------------------------------------------------------------------------- /logs/.gitkeep: -------------------------------------------------------------------------------- 1 | /* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */ 2 | -------------------------------------------------------------------------------- /now.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "builds": [{ "src": "*.php", "use": "@now/php" }] 4 | } 5 | -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: /.github/ 3 | Disallow: /.phan/ 4 | Disallow: /assets/ 5 | Disallow: /backup/ 6 | Disallow: /bin/ 7 | Disallow: /cache/ 8 | Disallow: /logs/ 9 | Disallow: /system/ 10 | Disallow: /tests/ 11 | Disallow: /tmp/ 12 | Disallow: /user/ 13 | Disallow: /vendor/ 14 | Disallow: /webserver-configs/ 15 | Allow: /user/pages/ 16 | Allow: /user/themes/ 17 | Allow: /user/images/ 18 | Allow: / 19 | Allow: *.css$ 20 | Allow: *.js$ 21 | Allow: /system/*.js$ 22 | -------------------------------------------------------------------------------- /system/assets/grav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/assets/grav.png -------------------------------------------------------------------------------- /system/assets/responsive-overlays/1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/assets/responsive-overlays/1x.png -------------------------------------------------------------------------------- /system/assets/responsive-overlays/2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/assets/responsive-overlays/2x.png -------------------------------------------------------------------------------- /system/assets/responsive-overlays/3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/assets/responsive-overlays/3x.png -------------------------------------------------------------------------------- /system/assets/responsive-overlays/4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/assets/responsive-overlays/4x.png -------------------------------------------------------------------------------- /system/assets/responsive-overlays/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/assets/responsive-overlays/unknown.png -------------------------------------------------------------------------------- /system/assets/whoops.css: -------------------------------------------------------------------------------- 1 | body header { 2 | background: #3085EE; 3 | } 4 | 5 | body .left-panel { 6 | background: inherit; 7 | } 8 | 9 | body .exc-title-primary { 10 | color: #fff; 11 | } 12 | 13 | body .exc-title { 14 | color: #ddd; 15 | } 16 | 17 | body .frame:not(.active):hover { 18 | background: #e6e6e6; 19 | } 20 | -------------------------------------------------------------------------------- /system/blueprints/config/media.yaml: -------------------------------------------------------------------------------- 1 | title: PLUGIN_ADMIN.MEDIA 2 | 3 | form: 4 | validation: loose 5 | fields: 6 | -------------------------------------------------------------------------------- /system/blueprints/config/streams.yaml: -------------------------------------------------------------------------------- 1 | title: PLUGIN_ADMIN.FILE_STREAMS 2 | 3 | form: 4 | validation: loose 5 | hidden: true 6 | fields: 7 | schemes.xxx: 8 | type: array 9 | -------------------------------------------------------------------------------- /system/blueprints/flex/accounts.yaml: -------------------------------------------------------------------------------- 1 | title: Flex User Accounts 2 | description: Manage your User Accounts in Flex. 3 | type: flex-objects 4 | 5 | # Deprecated in Grav 1.7.0-rc.4: file was renamed to user-accounts.yaml 6 | extends@: 7 | type: user-accounts 8 | context: blueprints://flex 9 | -------------------------------------------------------------------------------- /system/blueprints/flex/configure/compat.yaml: -------------------------------------------------------------------------------- 1 | form: 2 | compatibility: 3 | type: tab 4 | title: Compatibility 5 | fields: 6 | object.compat.events: 7 | type: toggle 8 | toggleable: true 9 | label: Admin event compatibility 10 | help: Enables onAdminSave and onAdminAfterSave events for plugins 11 | highlight: 1 12 | default: 1 13 | options: 14 | 1: PLUGIN_ADMIN.ENABLED 15 | 0: PLUGIN_ADMIN.DISABLED 16 | validate: 17 | type: bool 18 | -------------------------------------------------------------------------------- /system/blueprints/pages/external.yaml: -------------------------------------------------------------------------------- 1 | title: PLUGIN_ADMIN.EXTERNAL 2 | extends@: 3 | type: default 4 | context: blueprints://pages 5 | 6 | form: 7 | validation: loose 8 | fields: 9 | 10 | tabs: 11 | type: tabs 12 | active: 1 13 | 14 | fields: 15 | 16 | content: 17 | fields: 18 | 19 | header.title: 20 | type: text 21 | autofocus: true 22 | style: horizontal 23 | label: PLUGIN_ADMIN.TITLE 24 | 25 | content: 26 | unset@: true 27 | 28 | header.media_order: 29 | unset@: true 30 | 31 | header.external_url: 32 | type: text 33 | label: PLUGIN_ADMIN.EXTERNAL_URL 34 | placeholder: https://getgrav.org 35 | validate: 36 | required: true 37 | 38 | options: 39 | fields: 40 | 41 | publishing: 42 | fields: 43 | 44 | header.date: 45 | unset@: true 46 | 47 | header.metadata: 48 | unset@: true 49 | 50 | taxonomies: 51 | unset@: true 52 | 53 | -------------------------------------------------------------------------------- /system/blueprints/pages/modular.yaml: -------------------------------------------------------------------------------- 1 | title: PLUGIN_ADMIN.MODULE 2 | extends@: default 3 | 4 | form: 5 | fields: 6 | tabs: 7 | type: tabs 8 | active: 1 9 | 10 | fields: 11 | content: 12 | fields: 13 | 14 | modular_title: 15 | type: spacer 16 | title: PLUGIN_ADMIN.MODULE_SETUP 17 | 18 | header.content.items: 19 | type: text 20 | label: PLUGIN_ADMIN.ITEMS 21 | default: '@self.modular' 22 | size: medium 23 | 24 | header.content.order.by: 25 | type: text 26 | label: PLUGIN_ADMIN.ORDER_BY 27 | placeholder: date 28 | help: 29 | size: small 30 | 31 | header.content.order.dir: 32 | type: text 33 | label: PLUGIN_ADMIN.ORDER 34 | help: '"desc" or "asc" are valid values' 35 | placeholder: desc 36 | size: small 37 | -------------------------------------------------------------------------------- /system/blueprints/pages/root.yaml: -------------------------------------------------------------------------------- 1 | title: PLUGIN_ADMIN.ROOT 2 | 3 | rules: 4 | slug: 5 | pattern: '[a-zA-Zа-яA-Я0-9_\-]+' 6 | min: 1 7 | max: 200 8 | 9 | form: 10 | validation: loose 11 | 12 | fields: 13 | 14 | tabs: 15 | type: tabs 16 | active: 1 17 | -------------------------------------------------------------------------------- /system/blueprints/user/account_new.yaml: -------------------------------------------------------------------------------- 1 | title: PLUGIN_ADMIN.ADD_ACCOUNT 2 | 3 | form: 4 | validation: loose 5 | fields: 6 | 7 | content: 8 | type: section 9 | title: PLUGIN_ADMIN.ADD_ACCOUNT 10 | 11 | username: 12 | type: text 13 | label: PLUGIN_ADMIN.USERNAME 14 | help: PLUGIN_ADMIN.USERNAME_HELP 15 | unset-disabled@: true 16 | unset-readonly@: true 17 | validate: 18 | required: true 19 | -------------------------------------------------------------------------------- /system/blueprints/user/group_new.yaml: -------------------------------------------------------------------------------- 1 | title: PLUGIN_ADMIN_PRO.ADD_GROUP 2 | 3 | rules: 4 | slug: 5 | pattern: '[a-zA-Zа-яA-Я0-9_\-]+' 6 | min: 1 7 | max: 200 8 | 9 | form: 10 | validation: loose 11 | fields: 12 | 13 | content: 14 | type: section 15 | title: PLUGIN_ADMIN_PRO.ADD_GROUP 16 | 17 | groupname: 18 | type: text 19 | label: PLUGIN_ADMIN_PRO.GROUP_NAME 20 | help: PLUGIN_ADMIN_PRO.GROUP_NAME_HELP 21 | validate: 22 | required: true 23 | rule: slug 24 | -------------------------------------------------------------------------------- /system/config/backups.yaml: -------------------------------------------------------------------------------- 1 | purge: 2 | trigger: space 3 | max_backups_count: 25 4 | max_backups_space: 5 5 | max_backups_time: 365 6 | 7 | profiles: 8 | - 9 | name: 'Default Site Backup' 10 | root: '/' 11 | schedule: false 12 | schedule_at: '0 3 * * *' 13 | exclude_paths: "/backup\r\n/cache\r\n/images\r\n/logs\r\n/tmp" 14 | exclude_files: ".DS_Store\r\n.git\r\n.svn\r\n.hg\r\n.idea\r\n.vscode\r\nnode_modules" 15 | 16 | -------------------------------------------------------------------------------- /system/config/permissions.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | site: 3 | type: access 4 | label: Site 5 | admin: 6 | type: access 7 | label: Admin 8 | admin.pages: 9 | type: access 10 | label: Pages 11 | admin.users: 12 | type: access 13 | label: User Accounts 14 | 15 | types: 16 | default: 17 | type: access 18 | 19 | crud: 20 | type: compact 21 | letters: 22 | c: 23 | action: create 24 | label: PLUGIN_ADMIN.CREATE 25 | r: 26 | action: read 27 | label: PLUGIN_ADMIN.READ 28 | u: 29 | action: update 30 | label: PLUGIN_ADMIN.UPDATE 31 | d: 32 | action: delete 33 | label: PLUGIN_ADMIN.DELETE 34 | 35 | crudp: 36 | type: crud 37 | letters: 38 | p: 39 | action: publish 40 | label: PLUGIN_ADMIN.PUBLISH 41 | 42 | crudl: 43 | type: crud 44 | letters: 45 | l: 46 | action: list 47 | label: PLUGIN_ADMIN.LIST 48 | 49 | crudpl: 50 | type: crud 51 | use: 52 | - crudp 53 | - crudl 54 | -------------------------------------------------------------------------------- /system/config/security.yaml: -------------------------------------------------------------------------------- 1 | xss_whitelist: [admin.super] # Whitelist of user access that should 'skip' XSS checking 2 | xss_enabled: 3 | on_events: true 4 | invalid_protocols: true 5 | moz_binding: true 6 | html_inline_styles: true 7 | dangerous_tags: true 8 | xss_invalid_protocols: 9 | - javascript 10 | - livescript 11 | - vbscript 12 | - mocha 13 | - feed 14 | - data 15 | xss_dangerous_tags: 16 | - applet 17 | - meta 18 | - xml 19 | - blink 20 | - link 21 | - style 22 | - script 23 | - embed 24 | - object 25 | - iframe 26 | - frame 27 | - frameset 28 | - ilayer 29 | - layer 30 | - bgsound 31 | - title 32 | - base 33 | uploads_dangerous_extensions: 34 | - php 35 | - php2 36 | - php3 37 | - php4 38 | - php5 39 | - phar 40 | - phtml 41 | - html 42 | - htm 43 | - shtml 44 | - shtm 45 | - js 46 | - exe 47 | sanitize_svg: true 48 | -------------------------------------------------------------------------------- /system/images/media/thumb-3dm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-3dm.png -------------------------------------------------------------------------------- /system/images/media/thumb-3ds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-3ds.png -------------------------------------------------------------------------------- /system/images/media/thumb-3g2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-3g2.png -------------------------------------------------------------------------------- /system/images/media/thumb-3gp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-3gp.png -------------------------------------------------------------------------------- /system/images/media/thumb-7z.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-7z.png -------------------------------------------------------------------------------- /system/images/media/thumb-aac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-aac.png -------------------------------------------------------------------------------- /system/images/media/thumb-ai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ai.png -------------------------------------------------------------------------------- /system/images/media/thumb-aif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-aif.png -------------------------------------------------------------------------------- /system/images/media/thumb-apk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-apk.png -------------------------------------------------------------------------------- /system/images/media/thumb-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-app.png -------------------------------------------------------------------------------- /system/images/media/thumb-asf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-asf.png -------------------------------------------------------------------------------- /system/images/media/thumb-asp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-asp.png -------------------------------------------------------------------------------- /system/images/media/thumb-aspx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-aspx.png -------------------------------------------------------------------------------- /system/images/media/thumb-asx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-asx.png -------------------------------------------------------------------------------- /system/images/media/thumb-avi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-avi.png -------------------------------------------------------------------------------- /system/images/media/thumb-bak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-bak.png -------------------------------------------------------------------------------- /system/images/media/thumb-bat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-bat.png -------------------------------------------------------------------------------- /system/images/media/thumb-bin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-bin.png -------------------------------------------------------------------------------- /system/images/media/thumb-bmp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-bmp.png -------------------------------------------------------------------------------- /system/images/media/thumb-cab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cab.png -------------------------------------------------------------------------------- /system/images/media/thumb-cad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cad.png -------------------------------------------------------------------------------- /system/images/media/thumb-cdr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cdr.png -------------------------------------------------------------------------------- /system/images/media/thumb-cer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cer.png -------------------------------------------------------------------------------- /system/images/media/thumb-cfg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cfg.png -------------------------------------------------------------------------------- /system/images/media/thumb-cfm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cfm.png -------------------------------------------------------------------------------- /system/images/media/thumb-cgi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cgi.png -------------------------------------------------------------------------------- /system/images/media/thumb-com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-com.png -------------------------------------------------------------------------------- /system/images/media/thumb-cpl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cpl.png -------------------------------------------------------------------------------- /system/images/media/thumb-cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cpp.png -------------------------------------------------------------------------------- /system/images/media/thumb-crx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-crx.png -------------------------------------------------------------------------------- /system/images/media/thumb-csr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-csr.png -------------------------------------------------------------------------------- /system/images/media/thumb-css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-css.png -------------------------------------------------------------------------------- /system/images/media/thumb-csv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-csv.png -------------------------------------------------------------------------------- /system/images/media/thumb-cue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cue.png -------------------------------------------------------------------------------- /system/images/media/thumb-cur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-cur.png -------------------------------------------------------------------------------- /system/images/media/thumb-dat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dat.png -------------------------------------------------------------------------------- /system/images/media/thumb-db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-db.png -------------------------------------------------------------------------------- /system/images/media/thumb-dbf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dbf.png -------------------------------------------------------------------------------- /system/images/media/thumb-dds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dds.png -------------------------------------------------------------------------------- /system/images/media/thumb-dem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dem.png -------------------------------------------------------------------------------- /system/images/media/thumb-dll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dll.png -------------------------------------------------------------------------------- /system/images/media/thumb-dmg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dmg.png -------------------------------------------------------------------------------- /system/images/media/thumb-dmp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dmp.png -------------------------------------------------------------------------------- /system/images/media/thumb-doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-doc.png -------------------------------------------------------------------------------- /system/images/media/thumb-docx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-docx.png -------------------------------------------------------------------------------- /system/images/media/thumb-drv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-drv.png -------------------------------------------------------------------------------- /system/images/media/thumb-dtd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dtd.png -------------------------------------------------------------------------------- /system/images/media/thumb-dwg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dwg.png -------------------------------------------------------------------------------- /system/images/media/thumb-dxf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-dxf.png -------------------------------------------------------------------------------- /system/images/media/thumb-elf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-elf.png -------------------------------------------------------------------------------- /system/images/media/thumb-eot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-eot.png -------------------------------------------------------------------------------- /system/images/media/thumb-eps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-eps.png -------------------------------------------------------------------------------- /system/images/media/thumb-exe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-exe.png -------------------------------------------------------------------------------- /system/images/media/thumb-fla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-fla.png -------------------------------------------------------------------------------- /system/images/media/thumb-flv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-flv.png -------------------------------------------------------------------------------- /system/images/media/thumb-fnt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-fnt.png -------------------------------------------------------------------------------- /system/images/media/thumb-fon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-fon.png -------------------------------------------------------------------------------- /system/images/media/thumb-gam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-gam.png -------------------------------------------------------------------------------- /system/images/media/thumb-gbr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-gbr.png -------------------------------------------------------------------------------- /system/images/media/thumb-ged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ged.png -------------------------------------------------------------------------------- /system/images/media/thumb-gif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-gif.png -------------------------------------------------------------------------------- /system/images/media/thumb-gpx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-gpx.png -------------------------------------------------------------------------------- /system/images/media/thumb-gz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-gz.png -------------------------------------------------------------------------------- /system/images/media/thumb-gzip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-gzip.png -------------------------------------------------------------------------------- /system/images/media/thumb-hqz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-hqz.png -------------------------------------------------------------------------------- /system/images/media/thumb-html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-html.png -------------------------------------------------------------------------------- /system/images/media/thumb-icns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-icns.png -------------------------------------------------------------------------------- /system/images/media/thumb-ico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ico.png -------------------------------------------------------------------------------- /system/images/media/thumb-ics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ics.png -------------------------------------------------------------------------------- /system/images/media/thumb-iff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-iff.png -------------------------------------------------------------------------------- /system/images/media/thumb-indd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-indd.png -------------------------------------------------------------------------------- /system/images/media/thumb-iso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-iso.png -------------------------------------------------------------------------------- /system/images/media/thumb-jar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-jar.png -------------------------------------------------------------------------------- /system/images/media/thumb-jpg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-jpg.png -------------------------------------------------------------------------------- /system/images/media/thumb-js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-js.png -------------------------------------------------------------------------------- /system/images/media/thumb-json.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-json.png -------------------------------------------------------------------------------- /system/images/media/thumb-jsp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-jsp.png -------------------------------------------------------------------------------- /system/images/media/thumb-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-key.png -------------------------------------------------------------------------------- /system/images/media/thumb-kml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-kml.png -------------------------------------------------------------------------------- /system/images/media/thumb-kmz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-kmz.png -------------------------------------------------------------------------------- /system/images/media/thumb-lnk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-lnk.png -------------------------------------------------------------------------------- /system/images/media/thumb-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-log.png -------------------------------------------------------------------------------- /system/images/media/thumb-lua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-lua.png -------------------------------------------------------------------------------- /system/images/media/thumb-m3u.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-m3u.png -------------------------------------------------------------------------------- /system/images/media/thumb-m4a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-m4a.png -------------------------------------------------------------------------------- /system/images/media/thumb-m4v.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-m4v.png -------------------------------------------------------------------------------- /system/images/media/thumb-max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-max.png -------------------------------------------------------------------------------- /system/images/media/thumb-mdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mdb.png -------------------------------------------------------------------------------- /system/images/media/thumb-mdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mdf.png -------------------------------------------------------------------------------- /system/images/media/thumb-mid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mid.png -------------------------------------------------------------------------------- /system/images/media/thumb-mim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mim.png -------------------------------------------------------------------------------- /system/images/media/thumb-mov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mov.png -------------------------------------------------------------------------------- /system/images/media/thumb-mp3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mp3.png -------------------------------------------------------------------------------- /system/images/media/thumb-mp4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mp4.png -------------------------------------------------------------------------------- /system/images/media/thumb-mpa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mpa.png -------------------------------------------------------------------------------- /system/images/media/thumb-mpe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mpe.png -------------------------------------------------------------------------------- /system/images/media/thumb-mpg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-mpg.png -------------------------------------------------------------------------------- /system/images/media/thumb-msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-msg.png -------------------------------------------------------------------------------- /system/images/media/thumb-msi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-msi.png -------------------------------------------------------------------------------- /system/images/media/thumb-nes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-nes.png -------------------------------------------------------------------------------- /system/images/media/thumb-obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-obj.png -------------------------------------------------------------------------------- /system/images/media/thumb-odb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-odb.png -------------------------------------------------------------------------------- /system/images/media/thumb-odc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-odc.png -------------------------------------------------------------------------------- /system/images/media/thumb-odf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-odf.png -------------------------------------------------------------------------------- /system/images/media/thumb-odg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-odg.png -------------------------------------------------------------------------------- /system/images/media/thumb-odi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-odi.png -------------------------------------------------------------------------------- /system/images/media/thumb-odp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-odp.png -------------------------------------------------------------------------------- /system/images/media/thumb-ods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ods.png -------------------------------------------------------------------------------- /system/images/media/thumb-odt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-odt.png -------------------------------------------------------------------------------- /system/images/media/thumb-odx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-odx.png -------------------------------------------------------------------------------- /system/images/media/thumb-ogg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ogg.png -------------------------------------------------------------------------------- /system/images/media/thumb-pct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pct.png -------------------------------------------------------------------------------- /system/images/media/thumb-pdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pdb.png -------------------------------------------------------------------------------- /system/images/media/thumb-pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pdf.png -------------------------------------------------------------------------------- /system/images/media/thumb-pif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pif.png -------------------------------------------------------------------------------- /system/images/media/thumb-pkg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pkg.png -------------------------------------------------------------------------------- /system/images/media/thumb-pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pl.png -------------------------------------------------------------------------------- /system/images/media/thumb-png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-png.png -------------------------------------------------------------------------------- /system/images/media/thumb-pps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pps.png -------------------------------------------------------------------------------- /system/images/media/thumb-ppt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ppt.png -------------------------------------------------------------------------------- /system/images/media/thumb-pptx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pptx.png -------------------------------------------------------------------------------- /system/images/media/thumb-ps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ps.png -------------------------------------------------------------------------------- /system/images/media/thumb-psd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-psd.png -------------------------------------------------------------------------------- /system/images/media/thumb-pub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-pub.png -------------------------------------------------------------------------------- /system/images/media/thumb-py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-py.png -------------------------------------------------------------------------------- /system/images/media/thumb-ra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ra.png -------------------------------------------------------------------------------- /system/images/media/thumb-rar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-rar.png -------------------------------------------------------------------------------- /system/images/media/thumb-raw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-raw.png -------------------------------------------------------------------------------- /system/images/media/thumb-rm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-rm.png -------------------------------------------------------------------------------- /system/images/media/thumb-rom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-rom.png -------------------------------------------------------------------------------- /system/images/media/thumb-rpm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-rpm.png -------------------------------------------------------------------------------- /system/images/media/thumb-rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-rss.png -------------------------------------------------------------------------------- /system/images/media/thumb-rtf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-rtf.png -------------------------------------------------------------------------------- /system/images/media/thumb-sav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-sav.png -------------------------------------------------------------------------------- /system/images/media/thumb-sdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-sdf.png -------------------------------------------------------------------------------- /system/images/media/thumb-sql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-sql.png -------------------------------------------------------------------------------- /system/images/media/thumb-srt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-srt.png -------------------------------------------------------------------------------- /system/images/media/thumb-svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-svg.png -------------------------------------------------------------------------------- /system/images/media/thumb-swf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-swf.png -------------------------------------------------------------------------------- /system/images/media/thumb-sys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-sys.png -------------------------------------------------------------------------------- /system/images/media/thumb-tar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-tar.png -------------------------------------------------------------------------------- /system/images/media/thumb-tex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-tex.png -------------------------------------------------------------------------------- /system/images/media/thumb-tga.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-tga.png -------------------------------------------------------------------------------- /system/images/media/thumb-thm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-thm.png -------------------------------------------------------------------------------- /system/images/media/thumb-tiff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-tiff.png -------------------------------------------------------------------------------- /system/images/media/thumb-tmp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-tmp.png -------------------------------------------------------------------------------- /system/images/media/thumb-ttf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-ttf.png -------------------------------------------------------------------------------- /system/images/media/thumb-txt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-txt.png -------------------------------------------------------------------------------- /system/images/media/thumb-uue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-uue.png -------------------------------------------------------------------------------- /system/images/media/thumb-vb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-vb.png -------------------------------------------------------------------------------- /system/images/media/thumb-vcd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-vcd.png -------------------------------------------------------------------------------- /system/images/media/thumb-vcf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-vcf.png -------------------------------------------------------------------------------- /system/images/media/thumb-wav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-wav.png -------------------------------------------------------------------------------- /system/images/media/thumb-webm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-webm.png -------------------------------------------------------------------------------- /system/images/media/thumb-wma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-wma.png -------------------------------------------------------------------------------- /system/images/media/thumb-wmv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-wmv.png -------------------------------------------------------------------------------- /system/images/media/thumb-woff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-woff.png -------------------------------------------------------------------------------- /system/images/media/thumb-woff2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-woff2.png -------------------------------------------------------------------------------- /system/images/media/thumb-wpd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-wpd.png -------------------------------------------------------------------------------- /system/images/media/thumb-wps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-wps.png -------------------------------------------------------------------------------- /system/images/media/thumb-wsf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-wsf.png -------------------------------------------------------------------------------- /system/images/media/thumb-xls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-xls.png -------------------------------------------------------------------------------- /system/images/media/thumb-xlsx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-xlsx.png -------------------------------------------------------------------------------- /system/images/media/thumb-xml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-xml.png -------------------------------------------------------------------------------- /system/images/media/thumb-yuv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-yuv.png -------------------------------------------------------------------------------- /system/images/media/thumb-zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb-zip.png -------------------------------------------------------------------------------- /system/images/media/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/media/thumb.png -------------------------------------------------------------------------------- /system/images/watermark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getgrav/grav/fa56984dc3317e7f3d7946b7f7231d4ea4d36080/system/images/watermark.png -------------------------------------------------------------------------------- /system/install.php: -------------------------------------------------------------------------------- 1 | 'css', 29 | 'position' => 'after' 30 | ]; 31 | 32 | $merged_attributes = Utils::arrayMergeRecursiveUnique($base_options, $elements); 33 | 34 | parent::__construct($merged_attributes, $key); 35 | } 36 | 37 | /** 38 | * @return string 39 | */ 40 | public function render() 41 | { 42 | return 'renderAttributes(). ">\n" . trim($this->asset) . "\n\n"; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Assets/InlineJs.php: -------------------------------------------------------------------------------- 1 | 'js', 29 | 'position' => 'after' 30 | ]; 31 | 32 | $merged_attributes = Utils::arrayMergeRecursiveUnique($base_options, $elements); 33 | 34 | parent::__construct($merged_attributes, $key); 35 | } 36 | 37 | /** 38 | * @return string 39 | */ 40 | public function render() 41 | { 42 | return 'renderAttributes(). ">\n" . trim($this->asset) . "\n\n"; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Assets/Link.php: -------------------------------------------------------------------------------- 1 | 'link', 29 | ]; 30 | 31 | $merged_attributes = Utils::arrayMergeRecursiveUnique($base_options, $elements); 32 | 33 | parent::__construct($merged_attributes, $key); 34 | } 35 | 36 | /** 37 | * @return string 38 | */ 39 | public function render() 40 | { 41 | return 'renderAttributes() . $this->integrityHash($this->asset) . ">\n"; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Errors/BareHandler.php: -------------------------------------------------------------------------------- 1 | getInspector(); 26 | $code = $inspector->getException()->getCode(); 27 | if (($code >= 400) && ($code < 600)) { 28 | $this->getRun()->sendHttpCode($code); 29 | } 30 | 31 | return Handler::QUIT; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Errors/Resources/layout.html.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | Whoops there was an error! 11 | 12 | 13 | 14 |
15 |
16 |
17 | Server Error 18 |
19 | 20 | 21 | 22 |

Sorry, something went terribly wrong!

23 | 24 |

-

25 | 26 |
For further details please review your logs/ folder, or enable displaying of errors in your system configuration.
27 |
28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /system/src/Grav/Common/File/CompiledJsonFile.php: -------------------------------------------------------------------------------- 1 | 23 | */ 24 | abstract class FlexCollection extends \Grav\Framework\Flex\FlexCollection 25 | { 26 | use FlexGravTrait; 27 | use FlexCollectionTrait; 28 | } 29 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Flex/FlexIndex.php: -------------------------------------------------------------------------------- 1 | 24 | */ 25 | abstract class FlexIndex extends \Grav\Framework\Flex\FlexIndex 26 | { 27 | use FlexGravTrait; 28 | use FlexIndexTrait; 29 | } 30 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Flex/Traits/FlexIndexTrait.php: -------------------------------------------------------------------------------- 1 | 21 | */ 22 | class GenericCollection extends FlexCollection 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Flex/Types/Generic/GenericIndex.php: -------------------------------------------------------------------------------- 1 | 21 | */ 22 | class GenericIndex extends FlexIndex 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Flex/Types/Generic/GenericObject.php: -------------------------------------------------------------------------------- 1 | 21 | */ 22 | class UserGroupIndex extends FlexIndex 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Flex/Types/Users/Storage/UserFolderStorage.php: -------------------------------------------------------------------------------- 1 | toArray(), JSON_THROW_ON_ERROR); 26 | } 27 | 28 | /** 29 | * @return array 30 | */ 31 | public function toArray() 32 | { 33 | $items = []; 34 | 35 | foreach ($this->items as $name => $package) { 36 | $items[$name] = $package->toArray(); 37 | } 38 | 39 | return $items; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Common/AbstractPackageCollection.php: -------------------------------------------------------------------------------- 1 | items as $name => $package) { 31 | $items[$name] = $package->toArray(); 32 | } 33 | 34 | return json_encode($items, JSON_THROW_ON_ERROR); 35 | } 36 | 37 | /** 38 | * @return array 39 | */ 40 | public function toArray() 41 | { 42 | $items = []; 43 | 44 | foreach ($this->items as $name => $package) { 45 | $items[$name] = $package->toArray(); 46 | } 47 | 48 | return $items; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Common/CachedCollection.php: -------------------------------------------------------------------------------- 1 | $item) { 40 | $this->append([$name => $item]); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Local/AbstractPackageCollection.php: -------------------------------------------------------------------------------- 1 | $data) { 30 | $data->set('slug', $name); 31 | $this->items[$name] = new Package($data, $this->type); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Local/Packages.php: -------------------------------------------------------------------------------- 1 | new Plugins(), 24 | 'themes' => new Themes() 25 | ]; 26 | 27 | parent::__construct($items); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Local/Plugins.php: -------------------------------------------------------------------------------- 1 | all()); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Local/Themes.php: -------------------------------------------------------------------------------- 1 | all()); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Remote/Packages.php: -------------------------------------------------------------------------------- 1 | new Plugins($refresh, $callback), 29 | 'themes' => new Themes($refresh, $callback) 30 | ]; 31 | 32 | parent::__construct($items); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Remote/Plugins.php: -------------------------------------------------------------------------------- 1 | repository, $refresh, $callback); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Remote/Themes.php: -------------------------------------------------------------------------------- 1 | repository, $refresh, $callback); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /system/src/Grav/Common/GPM/Response.php: -------------------------------------------------------------------------------- 1 | get('system.images.defaults.decoding', 'auto'); 30 | } 31 | 32 | // Validate the provided value (similar to loading) 33 | if ($value !== null && $value !== 'auto') { 34 | $this->attributes['decoding'] = $value; 35 | } 36 | 37 | return $this; 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /system/src/Grav/Common/Media/Traits/ImageFetchPriorityTrait.php: -------------------------------------------------------------------------------- 1 | get('system.images.defaults.fetchpriority', 'auto'); 30 | } 31 | 32 | // Validate the provided value (similar to loading and decoding attributes) 33 | if ($value !== null && $value !== 'auto') { 34 | $this->attributes['fetchpriority'] = $value; 35 | } 36 | 37 | return $this; 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /system/src/Grav/Common/Media/Traits/ImageLoadingTrait.php: -------------------------------------------------------------------------------- 1 | get('system.images.defaults.loading', 'auto'); 30 | } 31 | if ($value && $value !== 'auto') { 32 | $this->attributes['loading'] = $value; 33 | } 34 | 35 | return $this; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Media/Traits/StaticResizeTrait.php: -------------------------------------------------------------------------------- 1 | styleAttributes['width'] = $width . 'px'; 29 | } else { 30 | unset($this->styleAttributes['width']); 31 | } 32 | if ($height) { 33 | $this->styleAttributes['height'] = $height . 'px'; 34 | } else { 35 | unset($this->styleAttributes['height']); 36 | } 37 | 38 | return $this; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Page/Header.php: -------------------------------------------------------------------------------- 1 | toArray(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Page/Interfaces/PageFormInterface.php: -------------------------------------------------------------------------------- 1 | blueprint, ...], where blueprint follows the regular form blueprint format. 14 | * 15 | * @return array 16 | */ 17 | //public function getForms(): array; 18 | 19 | /** 20 | * Add forms to this page. 21 | * 22 | * @param array $new 23 | * @return $this 24 | */ 25 | public function addForms(array $new/*, $override = true*/); 26 | 27 | /** 28 | * Alias of $this->getForms(); 29 | * 30 | * @return array 31 | */ 32 | public function forms();//: array; 33 | } 34 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Page/Interfaces/PageInterface.php: -------------------------------------------------------------------------------- 1 | resetPlayer(); 33 | 34 | return $this; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Page/Medium/StaticResizeTrait.php: -------------------------------------------------------------------------------- 1 | resetPlayer(); 33 | 34 | return $this; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Processors/ProcessorInterface.php: -------------------------------------------------------------------------------- 1 | startTimer(); 35 | $this->container['themes']->init(); 36 | $this->stopTimer(); 37 | 38 | return $handler->handle($request); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Processors/TwigProcessor.php: -------------------------------------------------------------------------------- 1 | startTimer(); 35 | $this->container['twig']->init(); 36 | $this->stopTimer(); 37 | 38 | return $handler->handle($request); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Service/AssetsServiceProvider.php: -------------------------------------------------------------------------------- 1 | setup(); 31 | 32 | return $backups; 33 | }; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Service/ErrorServiceProvider.php: -------------------------------------------------------------------------------- 1 | processSite($page->templateFormat()); 37 | }; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /system/src/Grav/Common/Service/SchedulerServiceProvider.php: -------------------------------------------------------------------------------- 1 | exists(). 18 | * 19 | * @param string $username 20 | * @return UserInterface 21 | */ 22 | public function load($username): UserInterface; 23 | 24 | /** 25 | * Find a user by username, email, etc 26 | * 27 | * @param string $query the query to search for 28 | * @param array $fields the fields to search 29 | * @return UserInterface 30 | */ 31 | public function find($query, $fields = ['username', 'email']): UserInterface; 32 | 33 | /** 34 | * Delete user account. 35 | * 36 | * @param string $username 37 | * @return bool True if user account was found and was deleted. 38 | */ 39 | public function delete($username): bool; 40 | } 41 | -------------------------------------------------------------------------------- /system/src/Grav/Common/User/Interfaces/UserGroupInterface.php: -------------------------------------------------------------------------------- 1 | setupConsole($input, $output); 32 | 33 | return $this->serve(); 34 | } 35 | 36 | /** 37 | * Override with your implementation. 38 | * 39 | * @return int 40 | */ 41 | protected function serve() 42 | { 43 | // Return error. 44 | return 1; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /system/src/Grav/Console/TerminalObjects/Table.php: -------------------------------------------------------------------------------- 1 | column_widths = $this->getColumnWidths(); 25 | $this->table_width = $this->getWidth(); 26 | $this->border = $this->getBorder(); 27 | 28 | $this->buildHeaderRow(); 29 | 30 | foreach ($this->data as $key => $columns) { 31 | $this->rows[] = $this->buildRow($columns); 32 | } 33 | 34 | $this->rows[] = $this->border; 35 | 36 | return $this->rows; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /system/src/Grav/Events/BeforeSessionStartEvent.php: -------------------------------------------------------------------------------- 1 | start() right before session_start() call. 19 | * 20 | * @property SessionInterface $session Session instance. 21 | */ 22 | class BeforeSessionStartEvent extends Event 23 | { 24 | /** @var SessionInterface */ 25 | public $session; 26 | 27 | public function __construct(SessionInterface $session) 28 | { 29 | $this->session = $session; 30 | } 31 | 32 | public function __debugInfo(): array 33 | { 34 | return (array)$this; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /system/src/Grav/Events/FlexRegisterEvent.php: -------------------------------------------------------------------------------- 1 | flex = $flex; 36 | } 37 | 38 | /** 39 | * @return array 40 | */ 41 | public function __debugInfo(): array 42 | { 43 | return (array)$this; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /system/src/Grav/Events/PageEvent.php: -------------------------------------------------------------------------------- 1 | permissions = $permissions; 36 | } 37 | 38 | /** 39 | * @return array 40 | */ 41 | public function __debugInfo(): array 42 | { 43 | return (array)$this; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /system/src/Grav/Events/SessionStartEvent.php: -------------------------------------------------------------------------------- 1 | start() right after successful session_start() call. 19 | * 20 | * @property SessionInterface $session Session instance. 21 | */ 22 | class SessionStartEvent extends Event 23 | { 24 | /** @var SessionInterface */ 25 | public $session; 26 | 27 | public function __construct(SessionInterface $session) 28 | { 29 | $this->session = $session; 30 | } 31 | 32 | public function __debugInfo(): array 33 | { 34 | return (array)$this; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /system/src/Grav/Events/TypesEvent.php: -------------------------------------------------------------------------------- 1 | init($namespace, $defaultLifetime); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Cache/Exception/CacheException.php: -------------------------------------------------------------------------------- 1 | 21 | * @extends Selectable 22 | */ 23 | interface FileCollectionInterface extends CollectionInterface, Selectable 24 | { 25 | public const INCLUDE_FILES = 1; 26 | public const INCLUDE_FOLDERS = 2; 27 | public const RECURSIVE = 4; 28 | 29 | /** 30 | * @return string 31 | */ 32 | public function getPath(); 33 | } 34 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Contracts/Object/IdentifierInterface.php: -------------------------------------------------------------------------------- 1 | |ArrayAccess 25 | * @phpstan-pure 26 | */ 27 | public function getIdentifierMeta(); 28 | } 29 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Contracts/Relationships/ToOneRelationshipInterface.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | interface ToOneRelationshipInterface extends RelationshipInterface 15 | { 16 | /** 17 | * @param string|null $id 18 | * @param string|null $type 19 | * @return T|null 20 | * @phpstan-pure 21 | */ 22 | public function getIdentifier(string $id = null, string $type = null): ?IdentifierInterface; 23 | 24 | /** 25 | * @param string|null $id 26 | * @param string|null $type 27 | * @return T|null 28 | * @phpstan-pure 29 | */ 30 | public function getObject(string $id = null, string $type = null): ?object; 31 | 32 | /** 33 | * @param T|null $identifier 34 | * @return bool 35 | */ 36 | public function replaceIdentifier(IdentifierInterface $identifier = null): bool; 37 | } 38 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/DI/Container.php: -------------------------------------------------------------------------------- 1 | offsetGet($id); 25 | } 26 | 27 | /** 28 | * @param string $id 29 | * @return bool 30 | */ 31 | public function has($id): bool 32 | { 33 | return $this->offsetExists($id); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/File/CsvFile.php: -------------------------------------------------------------------------------- 1 | exists()) { 29 | $record['extra']['user'] = ['username' => $user->username, 'email' => $user->email]; 30 | } 31 | 32 | return $record; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Media/Interfaces/MediaCollectionInterface.php: -------------------------------------------------------------------------------- 1 | 19 | * @extends Iterator 20 | */ 21 | interface MediaCollectionInterface extends ArrayAccess, Countable, Iterator 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Media/Interfaces/MediaInterface.php: -------------------------------------------------------------------------------- 1 | 23 | */ 24 | class ArrayObject implements NestedObjectInterface, ArrayAccess 25 | { 26 | use ObjectTrait; 27 | use ArrayPropertyTrait; 28 | use NestedPropertyTrait; 29 | use OverloadedPropertyTrait; 30 | use NestedArrayAccessTrait; 31 | } 32 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Object/LazyObject.php: -------------------------------------------------------------------------------- 1 | 26 | */ 27 | class LazyObject implements NestedObjectInterface, ArrayAccess 28 | { 29 | use ObjectTrait; 30 | use LazyPropertyTrait; 31 | use NestedPropertyTrait; 32 | use OverloadedPropertyTrait; 33 | use NestedArrayAccessTrait; 34 | } 35 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Object/PropertyObject.php: -------------------------------------------------------------------------------- 1 | 24 | */ 25 | class PropertyObject implements NestedObjectInterface, ArrayAccess 26 | { 27 | use ObjectTrait; 28 | use ObjectPropertyTrait; 29 | use NestedPropertyTrait; 30 | use OverloadedPropertyTrait; 31 | use NestedArrayAccessTrait; 32 | } 33 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Pagination/Interfaces/PaginationPageInterface.php: -------------------------------------------------------------------------------- 1 | initialize($route, $total, $pos, $limit, $options); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Pagination/PaginationPage.php: -------------------------------------------------------------------------------- 1 | setOptions($options); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/Psr7/Stream.php: -------------------------------------------------------------------------------- 1 | stream = \Nyholm\Psr7\Stream::create($body); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /system/src/Grav/Framework/RequestHandler/Exception/NotHandledException.php: -------------------------------------------------------------------------------- 1 | getCode(), $previous); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /system/src/Grav/Installer/updates/1.7.0_2020-11-20_1.php: -------------------------------------------------------------------------------- 1 | null, 9 | 'postflight' => 10 | function () { 11 | /** @var VersionUpdate $this */ 12 | try { 13 | // Keep old defaults for backwards compatibility. 14 | $yaml = YamlUpdater::instance(GRAV_ROOT . '/user/config/system.yaml'); 15 | $yaml->define('twig.autoescape', false); 16 | $yaml->define('strict_mode.yaml_compat', true); 17 | $yaml->define('strict_mode.twig_compat', true); 18 | $yaml->define('strict_mode.blueprint_compat', true); 19 | $yaml->save(); 20 | } catch (\Exception $e) { 21 | throw new InstallException('Could not update system configuration to maintain backwards compatibility', $e); 22 | } 23 | } 24 | ]; 25 | -------------------------------------------------------------------------------- /system/src/Twig/DeferredExtension/DeferredDeclareNode.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | declare(strict_types=1); 13 | 14 | namespace Twig\DeferredExtension; 15 | 16 | use Twig\Compiler; 17 | use Twig\Node\Node; 18 | 19 | final class DeferredDeclareNode extends Node 20 | { 21 | public function compile(Compiler $compiler) : void 22 | { 23 | $compiler 24 | ->write("private \$deferred;\n") 25 | ; 26 | } 27 | } -------------------------------------------------------------------------------- /system/src/Twig/DeferredExtension/DeferredInitializeNode.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | declare(strict_types=1); 13 | 14 | namespace Twig\DeferredExtension; 15 | 16 | use Twig\Compiler; 17 | use Twig\Node\Node; 18 | 19 | final class DeferredInitializeNode extends Node 20 | { 21 | public function compile(Compiler $compiler) : void 22 | { 23 | $compiler 24 | ->write("\$this->deferred = \$this->env->getExtension('".DeferredExtension::class."');\n") 25 | ; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /system/src/Twig/DeferredExtension/DeferredNode.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | declare(strict_types=1); 13 | 14 | namespace Twig\DeferredExtension; 15 | 16 | use Twig\Compiler; 17 | use Twig\Node\Node; 18 | 19 | final class DeferredNode extends Node 20 | { 21 | public function compile(Compiler $compiler) : void 22 | { 23 | $compiler 24 | ->write("\$this->deferred->resolve(\$this, \$context, \$blocks);\n") 25 | ; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /system/src/Twig/DeferredExtension/DeferredResolveNode.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | declare(strict_types=1); 13 | 14 | namespace Twig\DeferredExtension; 15 | 16 | use Twig\Compiler; 17 | use Twig\Node\Node; 18 | 19 | final class DeferredResolveNode extends Node 20 | { 21 | public function compile(Compiler $compiler) : void 22 | { 23 | $compiler 24 | ->write("\$this->deferred->resolve(\$this, \$context, \$blocks);\n") 25 | ; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /system/templates/default.html.twig: -------------------------------------------------------------------------------- 1 | {# Default output if no theme #} 2 |

ERROR: {{ page.template() ~'.'~ page.templateFormat() ~".twig" }} template not found for page: {{ page.route() }}

3 |

{{ page.title() }}

4 | {{ page.content()|raw }} 5 | -------------------------------------------------------------------------------- /system/templates/external.html.twig: -------------------------------------------------------------------------------- 1 | {# Default external template #} 2 | -------------------------------------------------------------------------------- /system/templates/flex/404.html.twig: -------------------------------------------------------------------------------- 1 | {% set item = collection ?? object %} 2 | {% set type = collection ? 'collection' : 'object' %} 3 | 4 | ERROR: Layout '{{ layout }}' for flex {{ type }} '{{ item.flexType() }}' was not found. -------------------------------------------------------------------------------- /system/templates/flex/_default/collection/debug.html.twig: -------------------------------------------------------------------------------- 1 |

{{ directory.getTitle() }} debug dump

2 | 3 | {% for object in collection %} 4 | {% render object layout: layout %} 5 | {% endfor %} 6 | -------------------------------------------------------------------------------- /system/templates/flex/_default/object/debug.html.twig: -------------------------------------------------------------------------------- 1 |
2 |

{{ object.key }}

3 |
{{ object.jsonSerialize()|yaml_encode }}
4 |
-------------------------------------------------------------------------------- /system/templates/modular/default.html.twig: -------------------------------------------------------------------------------- 1 | {# Default output if no theme #} 2 |

ERROR: {{ page.template() ~'.'~ page.templateFormat() ~".twig" }} template not found for page: {{ page.route() }}

3 |

{{ page.title() }}

4 | {{ page.content()|raw }} 5 | -------------------------------------------------------------------------------- /system/templates/partials/messages.html.twig: -------------------------------------------------------------------------------- 1 | {% set status_mapping = {'info':'green', 'error': 'red', 'warning': 'yellow'} %} 2 | 3 | {% if grav.messages.all %} 4 |
5 | {% for message in grav.messages.fetch %} 6 | 7 | {% set scope = message.scope|e %} 8 | {% set color = status_mapping[scope] %} 9 | 10 |

{{ message.message|raw }}

11 | 12 | {% endfor %} 13 |
14 | {% endif %} 15 | -------------------------------------------------------------------------------- /system/templates/partials/metadata.html.twig: -------------------------------------------------------------------------------- 1 | {% for meta in page.metadata %} 2 | 3 | {% endfor %} 4 | -------------------------------------------------------------------------------- /tests/_bootstrap.php: -------------------------------------------------------------------------------- 1 | init(); 14 | 15 | // This must be set first before the other init 16 | $grav['config']->set('system.languages.supported', ['en', 'fr', 'vi']); 17 | $grav['config']->set('system.languages.default_lang', 'en'); 18 | 19 | foreach (array_keys($grav['setup']->getStreams()) as $stream) { 20 | @stream_wrapper_unregister($stream); 21 | } 22 | 23 | $grav['streams']; 24 | 25 | $grav['uri']->init(); 26 | $grav['debugger']->init(); 27 | $grav['assets']->init(); 28 | 29 | $grav['config']->set('system.cache.enabled', false); 30 | $grav['locator']->addPath('tests', '', 'tests', false); 31 | 32 | return $grav; 33 | }; 34 | 35 | Fixtures::add('grav', $grav); 36 | -------------------------------------------------------------------------------- /tests/_support/AcceptanceTester.php: -------------------------------------------------------------------------------- 1 | Tags: animalgrav = Fixtures::get('grav'); 22 | $this->directInstallCommand = new DirectInstallCommand(); 23 | } 24 | } 25 | 26 | /** 27 | * Why this test file is empty 28 | * 29 | * Wasn't able to call a symfony\console. Kept having $output problem. 30 | * symfony console \NullOutput didn't cut it. 31 | * 32 | * We would also need to Mock tests since downloading packages would 33 | * make tests slow and unreliable. But it's not worth the time ATM. 34 | * 35 | * Look at Gpm/InstallCommandTest.php 36 | * 37 | * For the full story: https://git.io/vSlI3 38 | */ 39 | -------------------------------------------------------------------------------- /tests/functional/_bootstrap.php: -------------------------------------------------------------------------------- 1 | grav = Fixtures::get('grav'); 22 | $this->installCommand = new InstallCommand(); 23 | } 24 | 25 | protected function _after(): void 26 | { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/unit/_bootstrap.php: -------------------------------------------------------------------------------- 1 |