Verzija 1
commit
3635385278
|
@ -0,0 +1,198 @@
|
|||
name: vihor
|
||||
type: php
|
||||
docroot: ""
|
||||
php_version: "8.0"
|
||||
webserver_type: nginx-fpm
|
||||
router_http_port: "80"
|
||||
router_https_port: "443"
|
||||
xdebug_enabled: false
|
||||
additional_hostnames: []
|
||||
additional_fqdns: []
|
||||
mariadb_version: "10.3"
|
||||
mysql_version: ""
|
||||
nfs_mount_enabled: false
|
||||
mutagen_enabled: false
|
||||
bind_all_interfaces: true
|
||||
omit_containers: [db, dba]
|
||||
host_webserver_port: "8000"
|
||||
use_dns_when_possible: true
|
||||
composer_version: ""
|
||||
web_environment: []
|
||||
webimage_extra_packages: [php8.0-imagick]
|
||||
|
||||
# Key features of ddev's config.yaml:
|
||||
|
||||
# name: <projectname> # Name of the project, automatically provides
|
||||
# http://projectname.ddev.site and https://projectname.ddev.site
|
||||
|
||||
# type: <projecttype> # drupal6/7/8, backdrop, typo3, wordpress, php
|
||||
|
||||
# docroot: <relative_path> # Relative path to the directory containing index.php.
|
||||
|
||||
# php_version: "7.4" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1"
|
||||
|
||||
# You can explicitly specify the webimage, dbimage, dbaimage lines but this
|
||||
# is not recommended, as the images are often closely tied to ddev's' behavior,
|
||||
# so this can break upgrades.
|
||||
|
||||
# webimage: <docker_image> # nginx/php docker image.
|
||||
# dbimage: <docker_image> # mariadb docker image.
|
||||
# dbaimage: <docker_image>
|
||||
|
||||
# mariadb_version and mysql_version
|
||||
# ddev can use many versions of mariadb and mysql
|
||||
# However these directives are mutually exclusive
|
||||
# mariadb_version: 10.2
|
||||
# mysql_version: 8.0
|
||||
|
||||
# router_http_port: <port> # Port to be used for http (defaults to port 80)
|
||||
# router_https_port: <port> # Port for https (defaults to 443)
|
||||
|
||||
# xdebug_enabled: false # Set to true to enable xdebug and "ddev start" or "ddev restart"
|
||||
# Note that for most people the commands
|
||||
# "ddev xdebug" to enable xdebug and "ddev xdebug off" to disable it work better,
|
||||
# as leaving xdebug enabled all the time is a big performance hit.
|
||||
|
||||
# xhprof_enabled: false # Set to true to enable xhprof and "ddev start" or "ddev restart"
|
||||
# Note that for most people the commands
|
||||
# "ddev xhprof" to enable xhprof and "ddev xhprof off" to disable it work better,
|
||||
# as leaving xhprof enabled all the time is a big performance hit.
|
||||
|
||||
# webserver_type: nginx-fpm # or apache-fpm
|
||||
|
||||
# timezone: Europe/Berlin
|
||||
# This is the timezone used in the containers and by PHP;
|
||||
# it can be set to any valid timezone,
|
||||
# see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
# For example Europe/Dublin or MST7MDT
|
||||
|
||||
# composer_version: "2"
|
||||
# if composer_version:"2" it will use the most recent composer v2
|
||||
# It can also be set to "1", to get most recent composer v1
|
||||
# or "" for the default v2 created at release time.
|
||||
# It can be set to any existing specific composer version.
|
||||
# After first project 'ddev start' this will not be updated until it changes
|
||||
|
||||
# additional_hostnames:
|
||||
# - somename
|
||||
# - someothername
|
||||
# would provide http and https URLs for "somename.ddev.site"
|
||||
# and "someothername.ddev.site".
|
||||
|
||||
# additional_fqdns:
|
||||
# - example.com
|
||||
# - sub1.example.com
|
||||
# would provide http and https URLs for "example.com" and "sub1.example.com"
|
||||
# Please take care with this because it can cause great confusion.
|
||||
|
||||
# upload_dir: custom/upload/dir
|
||||
# would set the destination path for ddev import-files to <docroot>/custom/upload/dir
|
||||
|
||||
# working_dir:
|
||||
# web: /var/www/html
|
||||
# db: /home
|
||||
# would set the default working directory for the web and db services.
|
||||
# These values specify the destination directory for ddev ssh and the
|
||||
# directory in which commands passed into ddev exec are run.
|
||||
|
||||
# omit_containers: [db, dba, ddev-ssh-agent]
|
||||
# Currently only these containers are supported. Some containers can also be
|
||||
# omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit
|
||||
# the "db" container, several standard features of ddev that access the
|
||||
# database container will be unusable. In the global configuration it is also
|
||||
# possible to omit ddev-router, but not here.
|
||||
|
||||
# nfs_mount_enabled: false
|
||||
# Great performance improvement but requires host configuration first.
|
||||
# See https://ddev.readthedocs.io/en/stable/users/performance/#using-nfs-to-mount-the-project-into-the-container
|
||||
|
||||
# mutagen_enabled: false
|
||||
# Experimental performance improvement using mutagen asynchronous updates.
|
||||
# See https://ddev.readthedocs.io/en/latest/users/performance/#using-mutagen
|
||||
|
||||
# fail_on_hook_fail: False
|
||||
# Decide whether 'ddev start' should be interrupted by a failing hook
|
||||
|
||||
# host_https_port: "59002"
|
||||
# The host port binding for https can be explicitly specified. It is
|
||||
# dynamic unless otherwise specified.
|
||||
# This is not used by most people, most people use the *router* instead
|
||||
# of the localhost port.
|
||||
|
||||
# host_webserver_port: "59001"
|
||||
# The host port binding for the ddev-webserver can be explicitly specified. It is
|
||||
# dynamic unless otherwise specified.
|
||||
# This is not used by most people, most people use the *router* instead
|
||||
# of the localhost port.
|
||||
|
||||
# host_db_port: "59002"
|
||||
# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic
|
||||
# unless explicitly specified.
|
||||
|
||||
# phpmyadmin_port: "8036"
|
||||
# phpmyadmin_https_port: "8037"
|
||||
# The PHPMyAdmin ports can be changed from the default 8036 and 8037
|
||||
|
||||
# host_phpmyadmin_port: "8036"
|
||||
# The phpmyadmin (dba) port is not normally bound on the host at all, instead being routed
|
||||
# through ddev-router, but it can be specified and bound.
|
||||
|
||||
# mailhog_port: "8025"
|
||||
# mailhog_https_port: "8026"
|
||||
# The MailHog ports can be changed from the default 8025 and 8026
|
||||
|
||||
# host_mailhog_port: "8025"
|
||||
# The mailhog port is not normally bound on the host at all, instead being routed
|
||||
# through ddev-router, but it can be bound directly to localhost if specified here.
|
||||
|
||||
# webimage_extra_packages: [php7.4-tidy, php-bcmath]
|
||||
# Extra Debian packages that are needed in the webimage can be added here
|
||||
|
||||
# dbimage_extra_packages: [telnet,netcat]
|
||||
# Extra Debian packages that are needed in the dbimage can be added here
|
||||
|
||||
# use_dns_when_possible: true
|
||||
# If the host has internet access and the domain configured can
|
||||
# successfully be looked up, DNS will be used for hostname resolution
|
||||
# instead of editing /etc/hosts
|
||||
# Defaults to true
|
||||
|
||||
# project_tld: ddev.site
|
||||
# The top-level domain used for project URLs
|
||||
# The default "ddev.site" allows DNS lookup via a wildcard
|
||||
# If you prefer you can change this to "ddev.local" to preserve
|
||||
# pre-v1.9 behavior.
|
||||
|
||||
# ngrok_args: --subdomain mysite --auth username:pass
|
||||
# Provide extra flags to the "ngrok http" command, see
|
||||
# https://ngrok.com/docs#http or run "ngrok http -h"
|
||||
|
||||
# disable_settings_management: false
|
||||
# If true, ddev will not create CMS-specific settings files like
|
||||
# Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalConfiguration.php
|
||||
# In this case the user must provide all such settings.
|
||||
|
||||
# You can inject environment variables into the web container with:
|
||||
# web_environment:
|
||||
# - SOMEENV=somevalue
|
||||
# - SOMEOTHERENV=someothervalue
|
||||
|
||||
# no_project_mount: false
|
||||
# (Experimental) If true, ddev will not mount the project into the web container;
|
||||
# the user is responsible for mounting it manually or via a script.
|
||||
# This is to enable experimentation with alternate file mounting strategies.
|
||||
# For advanced users only!
|
||||
|
||||
# bind_all_interfaces: false
|
||||
# If true, host ports will be bound on all network interfaces,
|
||||
# not just the localhost interface. This means that ports
|
||||
# will be available on the local network if the host firewall
|
||||
# allows it.
|
||||
|
||||
# Many ddev commands can be extended to run tasks before or after the
|
||||
# ddev command is executed, for example "post-start", "post-import-db",
|
||||
# "pre-composer", "post-composer"
|
||||
# See https://ddev.readthedocs.io/en/stable/users/extending-commands/ for more
|
||||
# information on the commands that can be extended and the tasks you can define
|
||||
# for them. Example:
|
||||
#hooks:
|
|
@ -0,0 +1,22 @@
|
|||
# Linux
|
||||
*~
|
||||
*.swp
|
||||
|
||||
# Syncthing
|
||||
.stversions
|
||||
|
||||
# Windows
|
||||
Thumbs.db
|
||||
desktop.ini
|
||||
|
||||
# Mac OS X
|
||||
.DS_Store
|
||||
._*
|
||||
|
||||
# Composer
|
||||
/composer.phar
|
||||
/vendor
|
||||
|
||||
# Pico
|
||||
/assets/*
|
||||
.cache
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2012 The Pico Community
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,34 @@
|
|||
Pico
|
||||
====
|
||||
|
||||
[![License](https://picocms.github.io/badges/pico-license.svg)](https://github.com/picocms/pico-composer/blob/master/LICENSE)
|
||||
[![Version](https://picocms.github.io/badges/pico-version.svg)](https://github.com/picocms/pico-composer#install)
|
||||
[![Freenode IRC Webchat](https://picocms.github.io/badges/pico-chat.svg)](https://webchat.freenode.net/?channels=%23picocms)
|
||||
[![Open Bounties on Bountysource](https://www.bountysource.com/badge/team?team_id=198139&style=bounties_received)](https://www.bountysource.com/teams/picocms)
|
||||
|
||||
Pico is a stupidly simple, blazing fast, flat file CMS.
|
||||
|
||||
Visit us at http://picocms.org/ and see http://picocms.org/about/ for more info.
|
||||
|
||||
This is Pico's [Composer][] starter project. `picocms/pico-composer` is the frame for basically all Pico installations starting with Pico 2.0, but doesn't consist of any considerable code itself. It's main purpose is to simply depend on Pico. Please refer to the ["Install"][MainRepoInstall] and ["Upgrade"][MainRepoUpgrade] sections of our main repository for information about how to install, upgrade and use Pico.
|
||||
|
||||
Screenshot
|
||||
----------
|
||||
|
||||
![Pico Screenshot](https://picocms.github.io/screenshots/pico-21.png)
|
||||
|
||||
Getting Help
|
||||
------------
|
||||
|
||||
Please refer to the ["Getting Help" section][MainRepoGettingHelp] of our main repository.
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
Please refer to the ["Contributing" section][MainRepoContributing] of our main repository.
|
||||
|
||||
[Composer]: https://getcomposer.org/
|
||||
[MainRepoInstall]: https://github.com/picocms/Pico#install
|
||||
[MainRepoUpgrade]: https://github.com/picocms/Pico#upgrade
|
||||
[MainRepoGettingHelp]: https://github.com/picocms/Pico#getting-help
|
||||
[MainRepoContributing]: https://github.com/picocms/Pico#contributing
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"name": "picocms/pico-composer",
|
||||
"type": "project",
|
||||
"description": "Pico is a flat file CMS, this means there is no administration backend and database to deal with. You simply create .md files in the \"content\" folder and that becomes a page.",
|
||||
"keywords": [ "pico", "picocms", "pico-cms", "simple", "flat-file", "cms", "content-management", "website", "markdown-to-html", "php", "markdown", "yaml", "twig", "composer-project" ],
|
||||
"homepage": "http://picocms.org/",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Daniel Rudolf",
|
||||
"email": "picocms.org@daniel-rudolf.de",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "The Pico Community",
|
||||
"homepage": "http://picocms.org/"
|
||||
},
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/picocms/pico-composer/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"docs": "http://picocms.org/docs",
|
||||
"issues": "https://github.com/picocms/Pico/issues",
|
||||
"source": "https://github.com/picocms/Pico"
|
||||
},
|
||||
"require": {
|
||||
"picocms/pico": "^2.1",
|
||||
"picocms/pico-theme": "^2.1",
|
||||
"picocms/pico-deprecated": "^2.1",
|
||||
"picocms/composer-installer": "^1.0",
|
||||
"intervention/image": "^2.7"
|
||||
},
|
||||
"minimum-stability": "beta",
|
||||
"prefer-stable": true
|
||||
}
|
|
@ -0,0 +1,968 @@
|
|||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "2aac09be095121bbb0b668c41a13fb66",
|
||||
"packages": [
|
||||
{
|
||||
"name": "erusev/parsedown",
|
||||
"version": "1.8.0-beta-7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/erusev/parsedown.git",
|
||||
"reference": "fe7a50eceb4a3c867cc9fa9c0aa906b1067d1955"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/erusev/parsedown/zipball/fe7a50eceb4a3c867cc9fa9c0aa906b1067d1955",
|
||||
"reference": "fe7a50eceb4a3c867cc9fa9c0aa906b1067d1955",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-mbstring": "*",
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Parsedown": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Emanuil Rusev",
|
||||
"email": "hello@erusev.com",
|
||||
"homepage": "http://erusev.com"
|
||||
}
|
||||
],
|
||||
"description": "Parser for Markdown.",
|
||||
"homepage": "http://parsedown.org",
|
||||
"keywords": [
|
||||
"markdown",
|
||||
"parser"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/erusev/parsedown/issues",
|
||||
"source": "https://github.com/erusev/parsedown/tree/1.8.0-beta-7"
|
||||
},
|
||||
"time": "2019-03-17T18:47:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "erusev/parsedown-extra",
|
||||
"version": "0.8.0-beta-1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/erusev/parsedown-extra.git",
|
||||
"reference": "e756b1bf8642ab1091403e902b0503f1cec7527d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/e756b1bf8642ab1091403e902b0503f1cec7527d",
|
||||
"reference": "e756b1bf8642ab1091403e902b0503f1cec7527d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"erusev/parsedown": "^1.8.0|^1.8.0-beta-4",
|
||||
"ext-dom": "*",
|
||||
"ext-mbstring": "*",
|
||||
"php": ">=5.3.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"ParsedownExtra": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Emanuil Rusev",
|
||||
"email": "hello@erusev.com",
|
||||
"homepage": "http://erusev.com"
|
||||
}
|
||||
],
|
||||
"description": "An extension of Parsedown that adds support for Markdown Extra.",
|
||||
"homepage": "https://github.com/erusev/parsedown-extra",
|
||||
"keywords": [
|
||||
"markdown",
|
||||
"markdown extra",
|
||||
"parsedown",
|
||||
"parser"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/erusev/parsedown-extra/issues",
|
||||
"source": "https://github.com/erusev/parsedown-extra/tree/master"
|
||||
},
|
||||
"time": "2018-05-08T21:54:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "2.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72",
|
||||
"reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2.5 || ^8.0",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"ralouphie/getallheaders": "^3.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/http-factory-implementation": "1.0",
|
||||
"psr/http-message-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.4.1",
|
||||
"http-interop/http-factory-tests": "^0.9",
|
||||
"phpunit/phpunit": "^8.5.8 || ^9.3.10"
|
||||
},
|
||||
"suggest": {
|
||||
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Psr7\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "George Mponos",
|
||||
"email": "gmponos@gmail.com",
|
||||
"homepage": "https://github.com/gmponos"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com",
|
||||
"homepage": "https://github.com/sagikazarmark"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"email": "webmaster@tubo-world.de",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com",
|
||||
"homepage": "https://sagikazarmark.hu"
|
||||
}
|
||||
],
|
||||
"description": "PSR-7 message implementation that also provides common utility methods",
|
||||
"keywords": [
|
||||
"http",
|
||||
"message",
|
||||
"psr-7",
|
||||
"request",
|
||||
"response",
|
||||
"stream",
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/psr7/issues",
|
||||
"source": "https://github.com/guzzle/psr7/tree/2.1.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/GrahamCampbell",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/Nyholm",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-06T17:43:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "intervention/image",
|
||||
"version": "2.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Intervention/image.git",
|
||||
"reference": "744ebba495319501b873a4e48787759c72e3fb8c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Intervention/image/zipball/744ebba495319501b873a4e48787759c72e3fb8c",
|
||||
"reference": "744ebba495319501b873a4e48787759c72e3fb8c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-fileinfo": "*",
|
||||
"guzzlehttp/psr7": "~1.1 || ^2.0",
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~0.9.2",
|
||||
"phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-gd": "to use GD library based image processing.",
|
||||
"ext-imagick": "to use Imagick based image processing.",
|
||||
"intervention/imagecache": "Caching extension for the Intervention Image library"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.4-dev"
|
||||
},
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Intervention\\Image\\ImageServiceProvider"
|
||||
],
|
||||
"aliases": {
|
||||
"Image": "Intervention\\Image\\Facades\\Image"
|
||||
}
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Intervention\\Image\\": "src/Intervention/Image"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Oliver Vogel",
|
||||
"email": "oliver@olivervogel.com",
|
||||
"homepage": "http://olivervogel.com/"
|
||||
}
|
||||
],
|
||||
"description": "Image handling and manipulation library with support for Laravel integration",
|
||||
"homepage": "http://image.intervention.io/",
|
||||
"keywords": [
|
||||
"gd",
|
||||
"image",
|
||||
"imagick",
|
||||
"laravel",
|
||||
"thumbnail",
|
||||
"watermark"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Intervention/image/issues",
|
||||
"source": "https://github.com/Intervention/image/tree/2.7.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.paypal.me/interventionphp",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/Intervention",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-12-16T16:49:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "picocms/composer-installer",
|
||||
"version": "v1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/picocms/composer-installer.git",
|
||||
"reference": "6b5036c83aa091ed76e2a76ed9335885f95a7db7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/picocms/composer-installer/zipball/6b5036c83aa091ed76e2a76ed9335885f95a7db7",
|
||||
"reference": "6b5036c83aa091ed76e2a76ed9335885f95a7db7",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "composer-installer",
|
||||
"extra": {
|
||||
"class": "Pico\\Composer\\Installer\\PluginInstaller"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Pico\\Composer\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Daniel Rudolf",
|
||||
"email": "picocms.org@daniel-rudolf.de",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "The Pico Community",
|
||||
"homepage": "http://picocms.org/"
|
||||
},
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/picocms/composer-installer/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "A composer plugin responsible for installing plugins and themes for Pico, a stupidly simple, blazing fast, flat file CMS.",
|
||||
"homepage": "http://picocms.org/",
|
||||
"keywords": [
|
||||
"composer",
|
||||
"composer-installer",
|
||||
"composer-plugin",
|
||||
"pico",
|
||||
"pico-cms",
|
||||
"picocms",
|
||||
"picocms-installer",
|
||||
"picocms-plugin",
|
||||
"picocms-theme"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/picocms/composer-installer/issues",
|
||||
"source": "https://github.com/picocms/composer-installer"
|
||||
},
|
||||
"time": "2019-11-24T22:50:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "picocms/pico",
|
||||
"version": "v2.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/picocms/Pico.git",
|
||||
"reference": "7228129cade3f812f22904b503c939b04a75c9dd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/picocms/Pico/zipball/7228129cade3f812f22904b503c939b04a75c9dd",
|
||||
"reference": "7228129cade3f812f22904b503c939b04a75c9dd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"erusev/parsedown": "1.8.0-beta-7",
|
||||
"erusev/parsedown-extra": "0.8.0-beta-1",
|
||||
"ext-mbstring": "*",
|
||||
"php": ">=5.3.6",
|
||||
"symfony/yaml": "^2.8",
|
||||
"twig/twig": "^1.36"
|
||||
},
|
||||
"suggest": {
|
||||
"picocms/composer-installer": "This Composer plugin is responsible for installing Pico plugins and themes using the Composer package manager.",
|
||||
"picocms/pico-deprecated": "PicoDeprecated's purpose is to maintain backward compatibility to older versions of Pico.",
|
||||
"picocms/pico-theme": "Pico requires a theme to actually display the contents of your website. This is Pico's official default theme."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1.x-dev",
|
||||
"dev-pico-3.0": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Pico": "lib/",
|
||||
"PicoPluginInterface": "lib/",
|
||||
"AbstractPicoPlugin": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Gilbert Pellegrom",
|
||||
"email": "gilbert@pellegrom.me",
|
||||
"role": "Project Founder"
|
||||
},
|
||||
{
|
||||
"name": "Daniel Rudolf",
|
||||
"email": "picocms.org@daniel-rudolf.de",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "The Pico Community",
|
||||
"homepage": "http://picocms.org/"
|
||||
},
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/picocms/Pico/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Pico is a flat file CMS, this means there is no administration backend and database to deal with. You simply create .md files in the \"content\" folder and that becomes a page.",
|
||||
"homepage": "http://picocms.org/",
|
||||
"keywords": [
|
||||
"Simple",
|
||||
"cms",
|
||||
"content-management",
|
||||
"flat-file",
|
||||
"markdown",
|
||||
"markdown-to-html",
|
||||
"php",
|
||||
"pico",
|
||||
"pico-cms",
|
||||
"picocms",
|
||||
"twig",
|
||||
"website",
|
||||
"yaml"
|
||||
],
|
||||
"support": {
|
||||
"docs": "http://picocms.org/docs",
|
||||
"issues": "https://github.com/picocms/Pico/issues",
|
||||
"source": "https://github.com/picocms/Pico"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.bountysource.com/teams/picocms",
|
||||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-29T14:15:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "picocms/pico-deprecated",
|
||||
"version": "v2.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/picocms/pico-deprecated.git",
|
||||
"reference": "8d1a4056ecc71cc2857e91d50bcb38db91d424e0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/picocms/pico-deprecated/zipball/8d1a4056ecc71cc2857e91d50bcb38db91d424e0",
|
||||
"reference": "8d1a4056ecc71cc2857e91d50bcb38db91d424e0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"picocms/pico": "self.version"
|
||||
},
|
||||
"type": "pico-plugin",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1.x-dev",
|
||||
"dev-pico-3.0": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"PicoDeprecated.php",
|
||||
"lib/",
|
||||
"plugins/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Daniel Rudolf",
|
||||
"email": "picocms.org@daniel-rudolf.de",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "The Pico Community",
|
||||
"homepage": "http://picocms.org/"
|
||||
},
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/picocms/pico-deprecated/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "This is Pico's official PicoDeprecated plugin. Pico is a stupidly simple, blazing fast, flat file CMS.",
|
||||
"homepage": "http://picocms.org/",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"deprecation",
|
||||
"pico",
|
||||
"pico-deprecated",
|
||||
"picocms",
|
||||
"picocms-plugin"
|
||||
],
|
||||
"support": {
|
||||
"docs": "http://picocms.org/plugins/deprecated/",
|
||||
"issues": "https://github.com/picocms/pico-deprecated/issues",
|
||||
"source": "https://github.com/picocms/pico-deprecated"
|
||||
},
|
||||
"time": "2020-08-29T15:11:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "picocms/pico-theme",
|
||||
"version": "v2.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/picocms/pico-theme.git",
|
||||
"reference": "d4ec8df28356f1e034a97d37327b9aecb3129eed"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/picocms/pico-theme/zipball/d4ec8df28356f1e034a97d37327b9aecb3129eed",
|
||||
"reference": "d4ec8df28356f1e034a97d37327b9aecb3129eed",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"picocms/pico": "self.version"
|
||||
},
|
||||
"type": "pico-theme",
|
||||
"extra": {
|
||||
"installer-name": "default",
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1.x-dev",
|
||||
"dev-pico-3.0": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Daniel Rudolf",
|
||||
"email": "picocms.org@daniel-rudolf.de",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "The Pico Community",
|
||||
"homepage": "http://picocms.org/"
|
||||
},
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/picocms/pico-theme/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "This is Pico's official default theme. Pico is a stupidly simple, blazing fast, flat file CMS.",
|
||||
"homepage": "http://picocms.org/",
|
||||
"keywords": [
|
||||
"default-theme",
|
||||
"pico",
|
||||
"pico-theme",
|
||||
"picocms",
|
||||
"picocms-theme"
|
||||
],
|
||||
"support": {
|
||||
"docs": "http://picocms.org/themes/default/",
|
||||
"issues": "https://github.com/picocms/pico-theme/issues",
|
||||
"source": "https://github.com/picocms/pico-theme"
|
||||
},
|
||||
"time": "2020-08-29T15:11:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-factory",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-factory.git",
|
||||
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Http\\Message\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interfaces for PSR-7 HTTP message factories",
|
||||
"keywords": [
|
||||
"factory",
|
||||
"http",
|
||||
"message",
|
||||
"psr",
|
||||
"psr-17",
|
||||
"psr-7",
|
||||
"request",
|
||||
"response"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/http-factory/tree/master"
|
||||
},
|
||||
"time": "2019-04-30T12:38:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-message.git",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Http\\Message\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP messages",
|
||||
"homepage": "https://github.com/php-fig/http-message",
|
||||
"keywords": [
|
||||
"http",
|
||||
"http-message",
|
||||
"psr",
|
||||
"psr-7",
|
||||
"request",
|
||||
"response"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/http-message/tree/master"
|
||||
},
|
||||
"time": "2016-08-06T14:39:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ralouphie/getallheaders",
|
||||
"version": "3.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ralouphie/getallheaders.git",
|
||||
"reference": "120b605dfeb996808c31b6477290a714d356e822"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
|
||||
"reference": "120b605dfeb996808c31b6477290a714d356e822",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": "^2.1",
|
||||
"phpunit/phpunit": "^5 || ^6.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/getallheaders.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ralph Khattar",
|
||||
"email": "ralph.khattar@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A polyfill for getallheaders.",
|
||||
"support": {
|
||||
"issues": "https://github.com/ralouphie/getallheaders/issues",
|
||||
"source": "https://github.com/ralouphie/getallheaders/tree/develop"
|
||||
},
|
||||
"time": "2019-03-08T08:55:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
|
||||
"reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-ctype": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Gert de Pagter",
|
||||
"email": "BackEndTea@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for ctype functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"ctype",
|
||||
"polyfill",
|
||||
"portable"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-19T12:13:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v2.8.52",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "02c1859112aa779d9ab394ae4f3381911d84052b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b",
|
||||
"reference": "02c1859112aa779d9ab394ae4f3381911d84052b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.8-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Yaml\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Yaml Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/yaml/tree/v2.8.52"
|
||||
},
|
||||
"time": "2018-11-11T11:18:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v1.44.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "ae39480f010ef88adc7938503c9b02d3baf2f3b3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/ae39480f010ef88adc7938503c9b02d3baf2f3b3",
|
||||
"reference": "ae39480f010ef88adc7938503c9b02d3baf2f3b3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"symfony/polyfill-ctype": "^1.8"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/container": "^1.0",
|
||||
"symfony/phpunit-bridge": "^4.4.9|^5.0.9"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.44-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Twig_": "lib/"
|
||||
},
|
||||
"psr-4": {
|
||||
"Twig\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com",
|
||||
"homepage": "http://fabien.potencier.org",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "Twig Team",
|
||||
"role": "Contributors"
|
||||
},
|
||||
{
|
||||
"name": "Armin Ronacher",
|
||||
"email": "armin.ronacher@active-4.com",
|
||||
"role": "Project Founder"
|
||||
}
|
||||
],
|
||||
"description": "Twig, the flexible, fast, and secure template language for PHP",
|
||||
"homepage": "https://twig.symfony.com",
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/twigphp/Twig/issues",
|
||||
"source": "https://github.com/twigphp/Twig/tree/v1.44.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/twig/twig",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-25T13:31:46+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "beta",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": true,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
# This file is meant to be empty
|
|
@ -0,0 +1,62 @@
|
|||
##
|
||||
# Basic
|
||||
#
|
||||
site_title: ŠS6 # The title of your website
|
||||
base_url: ~ # Pico will try to guess its base URL, if this fails, override it here;
|
||||
# Example: https://example.com/pico/
|
||||
rewrite_url: ~ # A boolean (true or false) indicating whether URL rewriting is forced
|
||||
debug: ~ # Set this to true to enable Pico's debug mode
|
||||
timezone: ~ # Your PHP installation might require you to manually specify a timezone
|
||||
locale: ~ # Your PHP installation might require you to manually specify a locale to use
|
||||
|
||||
##
|
||||
# Theme
|
||||
#
|
||||
theme: vihor # The name of your custom theme
|
||||
themes_url: ~ # Pico will try to guess the URL to the themes dir of your installation;
|
||||
# If this fails, override it here. Example: https://example.com/pico/themes/
|
||||
twig_config: # Twig template engine config
|
||||
autoescape: html # Let Twig escape variables by default
|
||||
strict_variables: false # If set to true, Twig will bail out when unset variables are being used
|
||||
charset: utf-8 # The charset used by Twig templates
|
||||
debug: false # Enable Twig's debug mode
|
||||
cache: .cache # Enable Twig template caching by specifying a path to a writable directory
|
||||
auto_reload: false # Recompile Twig templates whenever the source code changes
|
||||
|
||||
##
|
||||
# Content
|
||||
#
|
||||
date_format: %D %T # Pico's default date format;
|
||||
# See https://php.net/manual/en/function.strftime.php for more info
|
||||
pages_order_by_meta: Order # Sort pages by meta value "author" (set "pages_order_by" to "meta")
|
||||
pages_order_by: meta # Change how Pico sorts pages ("alpha" for alphabetical order, "date", or "meta")
|
||||
pages_order: asc # Sort pages in ascending ("asc") or descending ("desc") order
|
||||
content_dir: ~ # The path to Pico's content directory
|
||||
content_ext: .md # The file extension of your Markdown files
|
||||
content_config: # Parsedown Markdown parser config
|
||||
extra: true # Use the Parsedown Extra parser to support extended markup;
|
||||
# See https://michelf.ca/projects/php-markdown/extra/ for more info
|
||||
breaks: false # A boolean indicating whether breaks in the markup should be reflected in the
|
||||
# parsed contents of the page
|
||||
escape: false # Escape HTML markup in your content files; don't confuse this with some sort of
|
||||
# safe mode, enabling this doesn't allow you to process untrusted user input!
|
||||
auto_urls: true # Automatically link URLs found in your markup
|
||||
assets_dir: assets/ # The path to Pico's assets directory
|
||||
assets_url: ~ # Pico will try to guess the URL to the assets dir of your installation;
|
||||
# If this fails, override it here. Example: https://example.com/pico/assets/
|
||||
|
||||
##
|
||||
# Plugins
|
||||
#
|
||||
plugins_url: ~ # Pico will try to guess the URL to the plugins dir of your installation;
|
||||
# If this fails, override it here. Example: https://example.com/pico/plugins/
|
||||
DummyPlugin.enabled: false # Force the plugin "DummyPlugin" to be disabled
|
||||
|
||||
##
|
||||
# Custom
|
||||
#
|
||||
my_custom_setting: Hello World! # You can access custom settings in themes using {{ config.my_custom_setting }}
|
||||
|
||||
ImageResize:
|
||||
folder: thumb
|
||||
quality: 90
|
|
@ -0,0 +1,60 @@
|
|||
##
|
||||
# Basic
|
||||
#
|
||||
site_title: Pico # The title of your website
|
||||
base_url: ~ # Pico will try to guess its base URL, if this fails, override it here;
|
||||
# Example: https://example.com/pico/
|
||||
rewrite_url: ~ # A boolean (true or false) indicating whether URL rewriting is forced
|
||||
debug: ~ # Set this to true to enable Pico's debug mode
|
||||
timezone: ~ # Your PHP installation might require you to manually specify a timezone
|
||||
locale: ~ # Your PHP installation might require you to manually specify a locale to use
|
||||
|
||||
##
|
||||
# Theme
|
||||
#
|
||||
theme: default # The name of your custom theme
|
||||
themes_url: ~ # Pico will try to guess the URL to the themes dir of your installation;
|
||||
# If this fails, override it here. Example: https://example.com/pico/themes/
|
||||
theme_config: # Additional theme-specific config
|
||||
widescreen: false # Default theme: Use more horizontal space (i.e. make the site container wider)
|
||||
twig_config: # Twig template engine config
|
||||
autoescape: html # Let Twig escape variables by default
|
||||
strict_variables: false # If set to true, Twig will bail out when unset variables are being used
|
||||
charset: utf-8 # The charset used by Twig templates
|
||||
debug: ~ # Enable Twig's debug mode
|
||||
cache: false # Enable Twig template caching by specifying a path to a writable directory
|
||||
auto_reload: ~ # Recompile Twig templates whenever the source code changes
|
||||
|
||||
##
|
||||
# Content
|
||||
#
|
||||
date_format: %D %T # Pico's default date format;
|
||||
# See https://php.net/manual/en/function.strftime.php for more info
|
||||
pages_order_by_meta: author # Sort pages by meta value "author" (set "pages_order_by" to "meta")
|
||||
pages_order_by: alpha # Change how Pico sorts pages ("alpha" for alphabetical order, "date", or "meta")
|
||||
pages_order: asc # Sort pages in ascending ("asc") or descending ("desc") order
|
||||
content_dir: ~ # The path to Pico's content directory
|
||||
content_ext: .md # The file extension of your Markdown files
|
||||
content_config: # Parsedown Markdown parser config
|
||||
extra: true # Use the Parsedown Extra parser to support extended markup;
|
||||
# See https://michelf.ca/projects/php-markdown/extra/ for more info
|
||||
breaks: false # A boolean indicating whether breaks in the markup should be reflected in the
|
||||
# parsed contents of the page
|
||||
escape: false # Escape HTML markup in your content files; don't confuse this with some sort of
|
||||
# safe mode, enabling this doesn't allow you to process untrusted user input!
|
||||
auto_urls: true # Automatically link URLs found in your markup
|
||||
assets_dir: assets/ # The path to Pico's assets directory
|
||||
assets_url: ~ # Pico will try to guess the URL to the assets dir of your installation;
|
||||
# If this fails, override it here. Example: https://example.com/pico/assets/
|
||||
|
||||
##
|
||||
# Plugins
|
||||
#
|
||||
plugins_url: ~ # Pico will try to guess the URL to the plugins dir of your installation;
|
||||
# If this fails, override it here. Example: https://example.com/pico/plugins/
|
||||
DummyPlugin.enabled: false # Force the plugin "DummyPlugin" to be disabled
|
||||
|
||||
##
|
||||
# Custom
|
||||
#
|
||||
my_custom_setting: Hello World! # You can access custom settings in themes using {{ config.my_custom_setting }}
|
|
@ -0,0 +1 @@
|
|||
# This file is meant to be empty
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
Title: Galerija
|
||||
Order: 1
|
||||
---
|
||||
|
||||
Slike pridejo sem nekam?
|
||||
|
||||
[galerija assets/galerije/gal1]
|
|
@ -0,0 +1,18 @@
|
|||
## Šišenski soseski 6 grozi pozidava!
|
||||
|
||||
Predlog OPN, ki bo obravnavan na januarski seji Mestnega sveta, spreminja namembnost zemljišč znotraj ŠS-6, kar bo omogočilo pozidavo zelenih površin, ki trenutno opravljajo pomembno socialno, rekreativno in ekološko funkcijo.
|
||||
|
||||
Načrtovani grobi posegi so problematični tudi v urbanističnem smislu, ker bi te spremembe posegle v smiselno zaključeno zasnovo soseske in enega najkakovostnejših primerov oblikovanja mestne krajine pri nas. Prav tako to ne bi bilo v skladu s strateškim ciljem ohranjanje kakovosti bivanja in urbanističnim kriterijem varovanja odprtih zelenih površin v zgoščenih stanovanjskih soseskah.
|
||||
|
||||
|
||||
![ŠS6 slika](%assets_url%/slike/2021-09-07-v-mestu-se-gradi-129290.jpg)
|
||||
|
||||
|
||||
|
||||
V preteklosti so podobne pobude Video arta d.o.o. na magistratu zavrnili. Občina je takrat pojasnila, da »pobuda ni skladna z urbanističnim kriterijem ohranjanja bivalne kakovosti v obstoječih poselitvenih območjih – soseskah. Obravnavano območje predstavlja zeleno površino strnjenega naselja. Te površine imajo pomembno socialno in ekološko funkcijo, ker omogočajo ureditev prostorov druženja in izboljšujejo mikroklimatske pogoje. Zgoščevanje soseske z gradnjo novih objektov na odprtih zelenih površinah ni sprejemljivo.«
|
||||
|
||||
Trenutni argument MOL je, da bi s potencialno gradnjo stanovanj na omenjenih površinah rešili dolgoletni spor z zasebnim investitorjem – torej gre za nekakšno »poravnavo« - na račun tretjega, to je stanovalcev v soseski. Urejanje prostorsko-urbanističnih nepravilnosti se ne bi smelo reševati s »poravnavo«.
|
||||
|
||||
Stanovalci ŠS-6 takšni poravnavi odločno nasprotujemo. V preteklih mesecih smo se prešteli z informativnim oz. posvetovalnim zbiranjem podpisov; v le dveh dneh smo jih zbrali več kot 600. Prav tako se zavedamo, da bo predlagana »rešitev« ustvarila precedens, ki bo vzpodbudil tudi ostale lastnike špekulativno pridobljenih zemljišč, da začnejo s pozidavo zelenih površin v gosto naseljenih in urbanistično zaključenih soseskah.
|
||||
|
||||
Naši 4 gradniki so: ljubezen, znanje, stroka in smeh.
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
Title: Pridruži se nam
|
||||
Order: 2
|
||||
---
|
||||
# O nas
|
||||
|
||||
Smo predstavniki širše skupnosti prebivalcev Šišenske soeske 6, ki se s svojim delovanjem zavzemamo za zaščito javnih in odprtih zelenih površin. Zavedamo se, da podobno usodo delijo tudi številne druge soseske po Ljubljani in Sloveniji. Naša prizadevanja so absolutno neideološka in nepolitična. Naši člani so predstavniki vseh starostnih skupin in širokega spektra političnih prepričanj.
|
||||
|
||||
# Bodi obveščen_a
|
||||
|
||||
Obveščen bodi preko tega obrazca:
|
||||
|
||||
OBRAZEC
|
||||
|
||||
# Pridruži se našim prizadevanjem
|
||||
|
||||
## Bodimo slišani
|
||||
|
||||
Svoje nasprotovanje načrtom spremembe OPN posreduj mestnim svetnikom, kontaktne podatke najdeš na tej [povezavi](https://docs.google.com/document/d/1x-69AccNGbaQQU9MykRa5J_2i4jbwCqYrucx0CUc0NU/edit?usp=sharing).
|
||||
Za oporo lahko uporabiš šablono, ki smo jo pripravili in je dostopna [tukaj](https://docs.google.com/document/d/1DKI8idnhQXBpLSdjBBZ60y8jx79bq3YmmcSJuB3fbc4/edit?usp=sharing).
|
||||
|
||||
## Pomagaj na terenu
|
||||
|
||||
Na naslov sisenskasoseska6@gmail.com se javi, če si pripravljen_a sodelovati pri deljenju letakov in zbiranju podpisov.
|
||||
|
||||
## Podpri nas z donacijo
|
||||
|
||||
Trenutno preučujemo pravne možnosti, ki bi nam omogočile ustaviti načrtovane spremembe.
|
||||
|
||||
Vsak evro, ki ga prejmemo iz donacij, bo namenjen za plačilo pravne pomoči.
|
||||
|
||||
Za donacijo nas kontaktiraj na sisenskasoseska6@gmail.com
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
Title: Zgodovina soseske
|
||||
Order: 0
|
||||
---
|
||||
|
||||
Šišenska soseska 6 (ŠS-6) predstavlja enega kvalitetnejših primerov stanovanjske gradnje v Ljubljani, ki je bila realizirana kot prva zaključena urbanistična enota za 10.000 prebivalcev. Načrtovana je bila skladno z urbanističnimi načeli Ravnikarjeve “idealne soseske” in bila zgrajena v letih 1964-1972.
|
||||
|
||||
Naselje leži ob severni mestni vpadnici Celovški cesti. Skozi sosesko poteka sprehajalna pot Pot spominov in tovarištva ali Pot ob žici (POT), speljana po trasi bodeče žice, s katero je bila Ljubljana ograjena med 2. svetovno vojno. POT sosesko povezuje z zelenim zaledjem griča Rožnik.
|
||||
|
||||
Urbanista Aleš Šarec in Janez Vovk sta predvidela pahljačasto zasnovo soseske, ki jo opredeljujejo višinsko hierarhično strukturirana zazidava, mreža peš poti in urbanistični elementi tradicionalnega mesta. Že v času nastanka je soseska v urbanističnem smislu predstavljala velik odklon od funkcionalističnih načel. Visoke, osem do štirinajst nadstropne stanovanjske stolpnice tvorijo središče soseske, ki je locirano ob mestni vpadnici. Z oddaljenostjo od glavne ceste višinski gabariti objektov padajo vse do individualne zazidave.
|
||||
|
||||
Stanovanjski bloki z zamaknjenimi osnovnimi stavbnimi enotami tvorijo členjene nize, prostore med njimi pa zasedajo obsežne, z visokodebelnim drevjem zasajene parkovne površine z otroškimi igrišči in vrtovi, ki jih ozelenjeni nasipi delijo na intimnejše odseke. Odprte zelene površine in parki soseske ŠS-6 spadajo med lepše primere krajinskega oblikovanja javnih površin v Ljubljani. V zelenju sredi soseske so šola, vrtec in telovadnica.
|
||||
|
||||
|
||||
VIR: [Kubusarhitektura](https://kubusarhitektura.com/sl/sisenska-soseska-ss-6/)
|
|
@ -0,0 +1,33 @@
|
|||
<?php // @codingStandardsIgnoreFile
|
||||
/**
|
||||
* This file is part of Pico. It's copyrighted by the contributors recorded
|
||||
* in the version control history of the file, available from the following
|
||||
* original location:
|
||||
*
|
||||
* <https://github.com/picocms/pico-composer/blob/master/index.php>
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
* License-Filename: LICENSE
|
||||
*/
|
||||
|
||||
// load dependencies
|
||||
// pico-composer MUST be installed as root package
|
||||
if (is_file(__DIR__ . '/vendor/autoload.php')) {
|
||||
require_once(__DIR__ . '/vendor/autoload.php');
|
||||
} else {
|
||||
die("Cannot find 'vendor/autoload.php'. Run `composer install`.");
|
||||
}
|
||||
|
||||
// instance Pico
|
||||
$pico = new Pico(
|
||||
__DIR__, // root dir
|
||||
'config/', // config dir
|
||||
'plugins/', // plugins dir
|
||||
'themes/' // themes dir
|
||||
);
|
||||
|
||||
// override configuration?
|
||||
//$pico->setConfig(array());
|
||||
|
||||
// run application
|
||||
echo $pico->run();
|
|
@ -0,0 +1,2 @@
|
|||
# You should add plugins installed by Composer here
|
||||
/PicoDeprecated
|
|
@ -0,0 +1,193 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Galerija - Responsive gallery in shortcode format
|
||||
*
|
||||
* @author Jurij Podgoršek <g1smo@git.kompot.si>
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html
|
||||
* @version 0.1
|
||||
*/
|
||||
class Galerija extends AbstractPicoPlugin
|
||||
{
|
||||
/**
|
||||
* API version used by this plugin
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const API_VERSION = 3;
|
||||
|
||||
/**
|
||||
* This plugin depends on ...
|
||||
*
|
||||
* @see AbstractPicoPlugin::$dependsOn
|
||||
* @var string[]
|
||||
*/
|
||||
protected $dependsOn = array();
|
||||
|
||||
protected $useImagick = false;
|
||||
|
||||
const SHORTCODE = '#\[galerija .+?\]#i';
|
||||
|
||||
/**
|
||||
* Triggered after Pico has read its configuration
|
||||
*
|
||||
* @see Pico::getConfig()
|
||||
* @see Pico::getBaseUrl()
|
||||
* @see Pico::getBaseThemeUrl()
|
||||
* @see Pico::isUrlRewritingEnabled()
|
||||
*
|
||||
* @param array &$config array of config variables
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function onConfigLoaded(array &$config)
|
||||
{
|
||||
$this->folder = '.resized';
|
||||
if (isset($config['ImageResize']['folder']))
|
||||
$this->folder = $config['ImageResize']['folder'];
|
||||
|
||||
$this->quality = 85;
|
||||
if (isset($config['ImageResize']['quality']))
|
||||
$this->quality = $config['ImageResize']['quality'];
|
||||
|
||||
$this->width = 500;
|
||||
if (isset($config['ImageResize']['width']))
|
||||
$this->quality = $config['ImageResize']['width'];
|
||||
|
||||
$this->height = 300;
|
||||
if (isset($config['ImageResize']['height']))
|
||||
$this->quality = $config['ImageResize']['height'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Triggered when Pico registers the twig template engine
|
||||
*
|
||||
* @see Pico::getTwig()
|
||||
*
|
||||
* @param Twig_Environment &$twig Twig instance
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function onTwigRegistered(Twig_Environment &$twig)
|
||||
{
|
||||
if (extension_loaded('imagick'))
|
||||
$this->useImagick = true;
|
||||
elseif (!extension_loaded('gd'))
|
||||
exit('PHP extension "imagick" or "gd" is not installed, or not enabled in php.ini');
|
||||
|
||||
$twig->addFunction(new Twig_SimpleFunction('resize', array($this, 'resize')));
|
||||
}
|
||||
|
||||
/**
|
||||
* Triggered after Pico has prepared the raw file contents for parsing
|
||||
*
|
||||
* @see Pico::parseFileContent()
|
||||
* @see DummyPlugin::onContentParsed()
|
||||
* @param string &$content prepared file contents for parsing
|
||||
* @return void
|
||||
*/
|
||||
public function onContentParsed(&$content)
|
||||
{
|
||||
if (stripos($content, '[galerija') !== false) {
|
||||
// Search for Embed shortcodes allover the content
|
||||
preg_match_all(self::SHORTCODE, $content, $matches);
|
||||
|
||||
// Make sure we found some shortcodes
|
||||
if (count($matches[0]) > 0) {
|
||||
|
||||
// Walk through shortcodes one by one
|
||||
foreach ($matches[0] as $match) {
|
||||
$p = explode(' ', $match)[1];
|
||||
$pot = substr($p, 0, strlen($p) - 1);
|
||||
$content = preg_replace(self::SHORTCODE, $this->getGalerija($pot), $content, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function getGalerija($path) {
|
||||
$slike = glob($path . DIRECTORY_SEPARATOR . '*');
|
||||
|
||||
$galerija = '<section class="galerija">' . "\n";
|
||||
foreach ($slike as $s) {
|
||||
if (is_file($s)) {
|
||||
$thumb = $this->resize($s, $this->width, $this->height);
|
||||
$lightbox = "data-lightbox=\"hue\"";
|
||||
$galerija .= "<a href=\"$s\" $lightbox><img alt=\"$s\" src=\"$thumb\"></a>\n";
|
||||
}
|
||||
}
|
||||
$galerija .= '</section>' . "\n";
|
||||
|
||||
return $galerija;
|
||||
}
|
||||
|
||||
/*
|
||||
protected function onContentLoading($file) {
|
||||
var_dump('loading', $file);
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* Resize an image, save it to a temporary folder and return new filename
|
||||
* @param string $file
|
||||
* @param int $width
|
||||
* @param int $height
|
||||
* @return string
|
||||
*/
|
||||
public function resize($file, $width = null, $height = null)
|
||||
{
|
||||
if (is_null($width) && is_null($height)) {
|
||||
error_log(new InvalidArgumentException("Width and height can't both be null"));
|
||||
return $file;
|
||||
}
|
||||
|
||||
// determine resized filename
|
||||
$newFile = sprintf('%s/%s/%s-%dx%d.jpg',
|
||||
dirname($file),
|
||||
$this->folder,
|
||||
pathinfo($file, PATHINFO_FILENAME),
|
||||
$width,
|
||||
$height
|
||||
);
|
||||
|
||||
// if we have already resized, just return the existing file
|
||||
if (file_exists($newFile))
|
||||
return $newFile;
|
||||
|
||||
// load file dimensions
|
||||
$dimensions = getimagesize($file);
|
||||
$originalWidth = $dimensions[0];
|
||||
$originalHeight = $dimensions[1];
|
||||
|
||||
// calculate the final width and height (keep ratio)
|
||||
$widthRatio = $originalWidth / ($width ?: 1);
|
||||
$heightRatio = $originalHeight / ($height ?: 1);
|
||||
if ($widthRatio < 1 || $heightRatio < 1) {
|
||||
$resizedWidth = $originalWidth;
|
||||
$resizedHeight = $originalHeight;
|
||||
} else if ($widthRatio < $heightRatio) {
|
||||
$resizedWidth = $width;
|
||||
$resizedHeight = round($originalHeight / $widthRatio);
|
||||
} else {
|
||||
$resizedWidth = round($originalWidth / $heightRatio);
|
||||
$resizedHeight = $height;
|
||||
}
|
||||
|
||||
// make sure folder exists
|
||||
if (!file_exists(pathinfo($newFile, PATHINFO_DIRNAME)))
|
||||
mkdir(pathinfo($newFile, PATHINFO_DIRNAME));
|
||||
|
||||
// resize and save
|
||||
if ($this->useImagick) {
|
||||
$image = new Imagick($file);
|
||||
$image->setImageCompressionQuality($this->quality);
|
||||
$image->thumbnailImage($resizedWidth, $resizedHeight);
|
||||
$image->writeImage($newFile);
|
||||
} else {
|
||||
$image = imagecreatefromstring(file_get_contents($file));
|
||||
$newResource = imagescale($image, $resizedWidth, $resizedHeight);
|
||||
imagejpeg($newResource, $newFile, $this->quality);
|
||||
}
|
||||
|
||||
return $newFile;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
# You should add themes installed by Composer here
|
||||
/default
|
|
@ -0,0 +1,5 @@
|
|||
Session.vim
|
||||
*.html
|
||||
*.swp
|
||||
*.swo
|
||||
tags
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2019 Eike C. Kühn
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,77 @@
|
|||
A very minimal theme for [Pico CMS](https://www.picocms.org), designed to help
|
||||
simple blogs.
|
||||
|
||||
## Installation
|
||||
|
||||
For Pico CMS > 2.0:
|
||||
|
||||
* Download or clone the code and upload it to `themes/femto`.
|
||||
* Edit `config/config.yml`, so it contains
|
||||
```
|
||||
theme: femto
|
||||
```
|
||||
* That's it!
|
||||
|
||||
## Demo
|
||||
|
||||
* You can find a live demo at <http://blog.pixelwoelkchen.de>
|
||||
|
||||
## Usage
|
||||
|
||||
### Structure
|
||||
|
||||
For things like Impressum just create a file `/impressum.md`.
|
||||
|
||||
Blog content goes into subfolders, either a single folder, e.g. `/blog/` or one
|
||||
folder per topic. Make sure every folder has an `index.md` with **optional**
|
||||
content (the theme will automagically display all posts as links).
|
||||
|
||||
So your folder structure may look like:
|
||||
|
||||
```
|
||||
/index.md
|
||||
/impressum.md
|
||||
/blog/index.md
|
||||
/blog/my_latest_craze.md
|
||||
/blog/a_fancy_idea.md
|
||||
/blog/my_first_post_sigh.md
|
||||
...
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
/index.md
|
||||
/impressum.md
|
||||
/ideas/index.md
|
||||
/ideas/my_latest_craze.md
|
||||
/ideas/a_fancy_idea.md
|
||||
/ideas/my_first_post_sigh.md
|
||||
/notsobrilliant/index.md
|
||||
/notsobrilliant/don_t_do_this.md
|
||||
...
|
||||
```
|
||||
|
||||
Content in a folder called `archive` will not be listed on the front page.
|
||||
|
||||
### Ordering first level pages
|
||||
|
||||
By default, the pages on the first level appear in alphabetical order in your navigation. If you wanted to change that behaviour you need to edit `config/config.yml` so it contains these lines:
|
||||
|
||||
```
|
||||
pages_order_by_meta: order
|
||||
pages_order_by: meta
|
||||
```
|
||||
|
||||
Now you can add an `Order: NUMERICALVALUE` to each YAML-Header on your first level pages, *e.g.*:
|
||||
|
||||
```
|
||||
/*
|
||||
Title: Archive
|
||||
Author: AUTHOR
|
||||
Date: 19 September 2019
|
||||
Order: 3
|
||||
*/
|
||||
|
||||
Old stuff
|
||||
```
|
|
@ -0,0 +1 @@
|
|||
.lb-loader,.lightbox{text-align:center;line-height:0;position:absolute;left:0}body.lb-disable-scrolling{overflow:hidden}.lightboxOverlay{position:absolute;top:0;left:0;z-index:9999;background-color:#000;filter:alpha(Opacity=80);opacity:.8;display:none}.lightbox{width:100%;z-index:10000;font-weight:400;outline:0}.lightbox .lb-image{display:block;height:auto;max-width:inherit;max-height:none;border-radius:3px;border:4px solid #fff}.lightbox a img{border:none}.lb-outerContainer{position:relative;width:250px;height:250px;margin:0 auto;border-radius:4px;background-color:#fff}.lb-outerContainer:after{content:"";display:table;clear:both}.lb-loader{top:43%;height:25%;width:100%}.lb-cancel{display:block;width:32px;height:32px;margin:0 auto;background:url(../images/loading.gif) no-repeat}.lb-nav{position:absolute;top:0;left:0;height:100%;width:100%;z-index:10}.lb-container>.nav{left:0}.lb-nav a{outline:0;background-image:url(data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}.lb-next,.lb-prev{height:100%;cursor:pointer;display:block}.lb-nav a.lb-prev{width:34%;left:0;float:left;background:url(../images/prev.png) left 48% no-repeat;filter:alpha(Opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-prev:hover{filter:alpha(Opacity=100);opacity:1}.lb-nav a.lb-next{width:64%;right:0;float:right;background:url(../images/next.png) right 48% no-repeat;filter:alpha(Opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-next:hover{filter:alpha(Opacity=100);opacity:1}.lb-dataContainer{margin:0 auto;padding-top:5px;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.lb-dataContainer:after{content:"";display:table;clear:both}.lb-data{padding:0 4px;color:#ccc}.lb-data .lb-details{width:85%;float:left;text-align:left;line-height:1.1em}.lb-data .lb-caption{font-size:13px;font-weight:700;line-height:1em}.lb-data .lb-caption a{color:#4ae}.lb-data .lb-number{display:block;clear:left;padding-bottom:1em;font-size:12px;color:#999}.lb-data .lb-close{display:block;float:right;width:30px;height:30px;background:url(../images/close.png) top right no-repeat;text-align:right;outline:0;filter:alpha(Opacity=70);opacity:.7;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.lb-data .lb-close:hover{cursor:pointer;filter:alpha(Opacity=100);opacity:1}
|
|
@ -0,0 +1,303 @@
|
|||
/* Typography */
|
||||
|
||||
/* reset inspired by http://meyerweb.com/eric/tools/css/reset/ */
|
||||
html, body, div, span, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, s, samp,
|
||||
small, strong, sub, sup, var, dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
|
||||
article, aside, canvas, details, embed,
|
||||
figure, figcaption, footer, header, hgroup,
|
||||
menu, nav, output, section, summary,
|
||||
time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
border-width: 0;
|
||||
font-size: 1;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Courier New;
|
||||
font-size: 16px;
|
||||
line-height: 1.3;
|
||||
color: #3F3F3F;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-weight: bold;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: bold;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-weight: bold;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-weight: bold;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-weight: normal;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
margin-left: 2.5rem;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal-leading-zero;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6, table, ul, ol, img, p, blockquote, pre {
|
||||
margin-bottom: 0.8rem;
|
||||
}
|
||||
|
||||
ul ul, ol ol, ul ol, ol ul {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
th, td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
img {
|
||||
border-style: none;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
a, a:link {
|
||||
text-decoration: underline;
|
||||
color: #6ca2d8;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #a26cd8;
|
||||
}
|
||||
|
||||
code, pre {
|
||||
font-family: monospace;
|
||||
font-size: 0.8rem;
|
||||
background-color: #CCCCCC;
|
||||
padding: 0.1rem;
|
||||
border-radius: 0.1rem;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
q {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-style: italic;
|
||||
border-style: none none none solid;
|
||||
border-width: 0.3rem;
|
||||
border-color: #CCCCCC;
|
||||
padding-left: 0.8rem;
|
||||
}
|
||||
|
||||
/* Layout */
|
||||
|
||||
body {
|
||||
width: 90%;
|
||||
max-width: 800px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
header {
|
||||
/*box-shadow: 0 8px 8px -6px rgba(0, 0, 0, 0.4);*/
|
||||
margin-bottom: 3rem;
|
||||
/*position: sticky */;
|
||||
top: 0;
|
||||
background-color: #FFFFFF;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 600px) {
|
||||
.blog header {
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
|
||||
nav ul {
|
||||
margin: 0;
|
||||
padding-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
nav li {
|
||||
display: inline;
|
||||
padding: 0 0.5rem;
|
||||
}
|
||||
|
||||
nav li:first-child, nav li:last-child {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body > header h1 {
|
||||
font-size: 2rem;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 600px) {
|
||||
body > header h1 {
|
||||
font-size: 2.2rem;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
body.blog > header h1 {
|
||||
font-size: 4.6rem;
|
||||
}
|
||||
|
||||
main header {
|
||||
/* the difference between site-heading (2.2rem x 1.3) and page-heading (1.8rem x 1.3) */
|
||||
padding-bottom: calc(0.4rem * 1.3);
|
||||
margin-bottom: 0.8rem;
|
||||
}
|
||||
}
|
||||
|
||||
main header h1 {
|
||||
/*display: inline;
|
||||
padding-right: 0.5rem;*/
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body > header a,
|
||||
body > header a:link,
|
||||
body > header a:visited,
|
||||
main.blog a,
|
||||
main.blog a:link,
|
||||
main.blog a:visited {
|
||||
text-decoration: none;
|
||||
color: #3F3F3F;
|
||||
}
|
||||
|
||||
body > header nav a:hover,
|
||||
body > header nav .active a,
|
||||
.blog main a:hover {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 600px) {
|
||||
.blog main.blog {
|
||||
position: absolute;
|
||||
top: 85%;
|
||||
height: 15%;
|
||||
width: 90%;
|
||||
max-width: 800px;
|
||||
overflow: scroll;
|
||||
}
|
||||
}
|
||||
|
||||
main.blog ul {
|
||||
margin-left: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
main.blog a {
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
header {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
header > a {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
header img {
|
||||
max-height: 20rem;
|
||||
}
|
||||
header h1 {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
header nav {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
header nav li {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
header nav li:not(:first-child):before {
|
||||
content: '| ';
|
||||
}
|
||||
|
||||
main p img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
main header h1 {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
main > p,
|
||||
main > ul {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.galerija {
|
||||
column-gap: .5rem;
|
||||
column-count: 3;
|
||||
}
|
||||
|
||||
.galerija > a {
|
||||
display: block;
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
|
||||
.galerija > a > img {
|
||||
margin: 0;
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>{% if meta.title %}{{ meta.title }} | {% endif %}{{ site_title }}</title>
|
||||
|
||||
{% if meta.description %}
|
||||
<meta name="description" content="{{ meta.description|striptags }}" />
|
||||
{% endif %}
|
||||
{% if meta.robots %}
|
||||
<meta name="robots" content="{{ meta.robots }}" />
|
||||
{% endif %}
|
||||
|
||||
{% if current_page %}
|
||||
<link rel="canonical" href="{{ current_page.url }}" />
|
||||
{% endif %}
|
||||
|
||||
<link rel="stylesheet" href="{{ theme_url }}/css/style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
|
||||
<body class="">
|
||||
<header>
|
||||
<a href="{{ "index"|link }}">
|
||||
<img src="{{ assets_url }}/slike/logo.svg" alt="Šišenska soseska 6 logotip">
|
||||
<h1>
|
||||
Samoorganizirana skupnost
|
||||
</h1>
|
||||
</a>
|
||||
<nav role="region" tabindex="-1">
|
||||
<ul>
|
||||
{% for page in pages if page.title and not page.hidden %}
|
||||
{% set page_depth = page.id|split('/')|length %}
|
||||
{% if ((page_depth == 2) and (page.id ends with "/index") or (page_depth == 1 and (current_page.id != page.id or current_page.id != "index"))) %}
|
||||
<li{% if page.id == current_page.id %} class="active"{% endif %}>
|
||||
<a href="{{ page.url }}">{{ page.title }}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
{% if current_page.id ends with "index" %}
|
||||
{% set current_tag = current_page.id|split('/')[0] %}
|
||||
<main class="blog">
|
||||
{{ content }}
|
||||
<ul>
|
||||
{% for page in pages|sort_by("time")|reverse if page.title and not page.hidden %}
|
||||
{% set page_depth = page.id|split('/')|length %}
|
||||
{% set page_tag = page.id|split('/')[0] %}
|
||||
{#
|
||||
* display all pages in subfolders (depth: 2), that are not index pages for their subfolder (do not end with "index)
|
||||
* display pages of all tags on the start page (current_page.id: "index")
|
||||
* else display only the tag of the current index
|
||||
* do not display pages from the archive (page_tag: "archive") on the start page
|
||||
#}
|
||||
{% if page_depth == 2 and (current_page.id == "index" or page_tag == current_tag) and not (page.id ends with "index") and not (page_tag == "archive" and current_page.id == "index") %}
|
||||
<li>
|
||||
<a href="{{ page.url }}">/ {{ page.date_formatted }} / {% if current_page.id == "index" %}{{ page_tag }} / {% endif %}{{ page.title }}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</main>
|
||||
{% else %}
|
||||
<main>
|
||||
<header>
|
||||
{% set page_depth = current_page.id|split('/')|length %}
|
||||
<h1>{{ meta.title }}</h1>
|
||||
{% if page_depth > 1 %}
|
||||
({{ meta.date_formatted }}, {{ meta.author }})
|
||||
{% endif %}
|
||||
</header>
|
||||
{{ content }}
|
||||
</main>
|
||||
{% endif %}
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
After Width: | Height: | Size: 280 B |
Binary file not shown.
After Width: | Height: | Size: 8.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,83 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>{% if meta.title %}{{ meta.title }} | {% endif %}{{ site_title }}</title>
|
||||
|
||||
{% if meta.description %}
|
||||
<meta name="description" content="{{ meta.description|striptags }}" />
|
||||
{% endif %}
|
||||
{% if meta.robots %}
|
||||
<meta name="robots" content="{{ meta.robots }}" />
|
||||
{% endif %}
|
||||
|
||||
{% if current_page %}
|
||||
<link rel="canonical" href="{{ current_page.url }}" />
|
||||
{% endif %}
|
||||
|
||||
<link rel="stylesheet" href="{{ theme_url }}/css/style.css" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ theme_url }}/css/lightbox.min.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
|
||||
<body class="">
|
||||
<header>
|
||||
<a href="{{ "index"|link }}">
|
||||
<img src="{{ assets_url }}/slike/logo.svg" alt="Šišenska soseska 6 logotip">
|
||||
<h1>
|
||||
Samoorganizirana skupnost
|
||||
</h1>
|
||||
</a>
|
||||
<nav role="region" tabindex="-1">
|
||||
<ul>
|
||||
{% for page in pages if page.title and not page.hidden %}
|
||||
{% set page_depth = page.id|split('/')|length %}
|
||||
{% if ((page_depth == 2) and (page.id ends with "/index") or (page_depth == 1 and (current_page.id != page.id or current_page.id != "index"))) %}
|
||||
<li{% if page.id == current_page.id %} class="active"{% endif %}>
|
||||
<a href="{{ page.url }}">{{ page.title }}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
{% if current_page.id ends with "index" %}
|
||||
{% set current_tag = current_page.id|split('/')[0] %}
|
||||
<main class="blog">
|
||||
{{ content }}
|
||||
<ul>
|
||||
{% for page in pages|sort_by("time")|reverse if page.title and not page.hidden %}
|
||||
{% set page_depth = page.id|split('/')|length %}
|
||||
{% set page_tag = page.id|split('/')[0] %}
|
||||
{#
|
||||
* display all pages in subfolders (depth: 2), that are not index pages for their subfolder (do not end with "index)
|
||||
* display pages of all tags on the start page (current_page.id: "index")
|
||||
* else display only the tag of the current index
|
||||
* do not display pages from the archive (page_tag: "archive") on the start page
|
||||
#}
|
||||
{% if page_depth == 2 and (current_page.id == "index" or page_tag == current_tag) and not (page.id ends with "index") and not (page_tag == "archive" and current_page.id == "index") %}
|
||||
<li>
|
||||
<a href="{{ page.url }}">/ {{ page.date_formatted }} / {% if current_page.id == "index" %}{{ page_tag }} / {% endif %}{{ page.title }}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</main>
|
||||
{% else %}
|
||||
<main>
|
||||
<header>
|
||||
{% set page_depth = current_page.id|split('/')|length %}
|
||||
<h1>{{ meta.title }}</h1>
|
||||
{% if page_depth > 1 %}
|
||||
({{ meta.date_formatted }}, {{ meta.author }})
|
||||
{% endif %}
|
||||
</header>
|
||||
{{ content }}
|
||||
</main>
|
||||
{% endif %}
|
||||
</body>
|
||||
|
||||
<script src="{{ theme_url }}/js/lightbox-plus-jquery.min.js" type="text/javascript"></script>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,554 @@
|
|||
/*!
|
||||
* Lightbox v2.11.3
|
||||
* by Lokesh Dhakar
|
||||
*
|
||||
* More info:
|
||||
* http://lokeshdhakar.com/projects/lightbox2/
|
||||
*
|
||||
* Copyright Lokesh Dhakar
|
||||
* Released under the MIT license
|
||||
* https://github.com/lokesh/lightbox2/blob/master/LICENSE
|
||||
*
|
||||
* @preserve
|
||||
*/
|
||||
|
||||
// Uses Node, AMD or browser globals to create a module.
|
||||
(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof exports === 'object') {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require('jquery'));
|
||||
} else {
|
||||
// Browser globals (root is window)
|
||||
root.lightbox = factory(root.jQuery);
|
||||
}
|
||||
}(this, function ($) {
|
||||
|
||||
function Lightbox(options) {
|
||||
this.album = [];
|
||||
this.currentImageIndex = void 0;
|
||||
this.init();
|
||||
|
||||
// options
|
||||
this.options = $.extend({}, this.constructor.defaults);
|
||||
this.option(options);
|
||||
}
|
||||
|
||||
// Descriptions of all options available on the demo site:
|
||||
// http://lokeshdhakar.com/projects/lightbox2/index.html#options
|
||||
Lightbox.defaults = {
|
||||
albumLabel: 'Image %1 of %2',
|
||||
alwaysShowNavOnTouchDevices: false,
|
||||
fadeDuration: 600,
|
||||
fitImagesInViewport: true,
|
||||
imageFadeDuration: 600,
|
||||
// maxWidth: 800,
|
||||
// maxHeight: 600,
|
||||
positionFromTop: 50,
|
||||
resizeDuration: 700,
|
||||
showImageNumberLabel: true,
|
||||
wrapAround: false,
|
||||
disableScrolling: false,
|
||||
/*
|
||||
Sanitize Title
|
||||
If the caption data is trusted, for example you are hardcoding it in, then leave this to false.
|
||||
This will free you to add html tags, such as links, in the caption.
|
||||
|
||||
If the caption data is user submitted or from some other untrusted source, then set this to true
|
||||
to prevent xss and other injection attacks.
|
||||
*/
|
||||
sanitizeTitle: false
|
||||
};
|
||||
|
||||
Lightbox.prototype.option = function(options) {
|
||||
$.extend(this.options, options);
|
||||
};
|
||||
|
||||
Lightbox.prototype.imageCountLabel = function(currentImageNum, totalImages) {
|
||||
return this.options.albumLabel.replace(/%1/g, currentImageNum).replace(/%2/g, totalImages);
|
||||
};
|
||||
|
||||
Lightbox.prototype.init = function() {
|
||||
var self = this;
|
||||
// Both enable and build methods require the body tag to be in the DOM.
|
||||
$(document).ready(function() {
|
||||
self.enable();
|
||||
self.build();
|
||||
});
|
||||
};
|
||||
|
||||
// Loop through anchors and areamaps looking for either data-lightbox attributes or rel attributes
|
||||
// that contain 'lightbox'. When these are clicked, start lightbox.
|
||||
Lightbox.prototype.enable = function() {
|
||||
var self = this;
|
||||
$('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]', function(event) {
|
||||
self.start($(event.currentTarget));
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
// Build html for the lightbox and the overlay.
|
||||
// Attach event handlers to the new DOM elements. click click click
|
||||
Lightbox.prototype.build = function() {
|
||||
if ($('#lightbox').length > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var self = this;
|
||||
|
||||
// The two root notes generated, #lightboxOverlay and #lightbox are given
|
||||
// tabindex attrs so they are focusable. We attach our keyboard event
|
||||
// listeners to these two elements, and not the document. Clicking anywhere
|
||||
// while Lightbox is opened will keep the focus on or inside one of these
|
||||
// two elements.
|
||||
//
|
||||
// We do this so we can prevent propogation of the Esc keypress when
|
||||
// Lightbox is open. This prevents it from intefering with other components
|
||||
// on the page below.
|
||||
//
|
||||
// Github issue: https://github.com/lokesh/lightbox2/issues/663
|
||||
$('<div id="lightboxOverlay" tabindex="-1" class="lightboxOverlay"></div><div id="lightbox" tabindex="-1" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt=""/><div class="lb-nav"><a class="lb-prev" aria-label="Previous image" href="" ></a><a class="lb-next" aria-label="Next image" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo($('body'));
|
||||
|
||||
// Cache jQuery objects
|
||||
this.$lightbox = $('#lightbox');
|
||||
this.$overlay = $('#lightboxOverlay');
|
||||
this.$outerContainer = this.$lightbox.find('.lb-outerContainer');
|
||||
this.$container = this.$lightbox.find('.lb-container');
|
||||
this.$image = this.$lightbox.find('.lb-image');
|
||||
this.$nav = this.$lightbox.find('.lb-nav');
|
||||
|
||||
// Store css values for future lookup
|
||||
this.containerPadding = {
|
||||
top: parseInt(this.$container.css('padding-top'), 10),
|
||||
right: parseInt(this.$container.css('padding-right'), 10),
|
||||
bottom: parseInt(this.$container.css('padding-bottom'), 10),
|
||||
left: parseInt(this.$container.css('padding-left'), 10)
|
||||
};
|
||||
|
||||
this.imageBorderWidth = {
|
||||
top: parseInt(this.$image.css('border-top-width'), 10),
|
||||
right: parseInt(this.$image.css('border-right-width'), 10),
|
||||
bottom: parseInt(this.$image.css('border-bottom-width'), 10),
|
||||
left: parseInt(this.$image.css('border-left-width'), 10)
|
||||
};
|
||||
|
||||
// Attach event handlers to the newly minted DOM elements
|
||||
this.$overlay.hide().on('click', function() {
|
||||
self.end();
|
||||
return false;
|
||||
});
|
||||
|
||||
this.$lightbox.hide().on('click', function(event) {
|
||||
if ($(event.target).attr('id') === 'lightbox') {
|
||||
self.end();
|
||||
}
|
||||
});
|
||||
|
||||
this.$outerContainer.on('click', function(event) {
|
||||
if ($(event.target).attr('id') === 'lightbox') {
|
||||
self.end();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
this.$lightbox.find('.lb-prev').on('click', function() {
|
||||
if (self.currentImageIndex === 0) {
|
||||
self.changeImage(self.album.length - 1);
|
||||
} else {
|
||||
self.changeImage(self.currentImageIndex - 1);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
this.$lightbox.find('.lb-next').on('click', function() {
|
||||
if (self.currentImageIndex === self.album.length - 1) {
|
||||
self.changeImage(0);
|
||||
} else {
|
||||
self.changeImage(self.currentImageIndex + 1);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
/*
|
||||
Show context menu for image on right-click
|
||||
|
||||
There is a div containing the navigation that spans the entire image and lives above of it. If
|
||||
you right-click, you are right clicking this div and not the image. This prevents users from
|
||||
saving the image or using other context menu actions with the image.
|
||||
|
||||
To fix this, when we detect the right mouse button is pressed down, but not yet clicked, we
|
||||
set pointer-events to none on the nav div. This is so that the upcoming right-click event on
|
||||
the next mouseup will bubble down to the image. Once the right-click/contextmenu event occurs
|
||||
we set the pointer events back to auto for the nav div so it can capture hover and left-click
|
||||
events as usual.
|
||||
*/
|
||||
this.$nav.on('mousedown', function(event) {
|
||||
if (event.which === 3) {
|
||||
self.$nav.css('pointer-events', 'none');
|
||||
|
||||
self.$lightbox.one('contextmenu', function() {
|
||||
setTimeout(function() {
|
||||
this.$nav.css('pointer-events', 'auto');
|
||||
}.bind(self), 0);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
this.$lightbox.find('.lb-loader, .lb-close').on('click', function() {
|
||||
self.end();
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
// Show overlay and lightbox. If the image is part of a set, add siblings to album array.
|
||||
Lightbox.prototype.start = function($link) {
|
||||
var self = this;
|
||||
var $window = $(window);
|
||||
|
||||
$window.on('resize', $.proxy(this.sizeOverlay, this));
|
||||
|
||||
this.sizeOverlay();
|
||||
|
||||
this.album = [];
|
||||
var imageNumber = 0;
|
||||
|
||||
function addToAlbum($link) {
|
||||
self.album.push({
|
||||
alt: $link.attr('data-alt'),
|
||||
link: $link.attr('href'),
|
||||
title: $link.attr('data-title') || $link.attr('title')
|
||||
});
|
||||
}
|
||||
|
||||
// Support both data-lightbox attribute and rel attribute implementations
|
||||
var dataLightboxValue = $link.attr('data-lightbox');
|
||||
var $links;
|
||||
|
||||
if (dataLightboxValue) {
|
||||
$links = $($link.prop('tagName') + '[data-lightbox="' + dataLightboxValue + '"]');
|
||||
for (var i = 0; i < $links.length; i = ++i) {
|
||||
addToAlbum($($links[i]));
|
||||
if ($links[i] === $link[0]) {
|
||||
imageNumber = i;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ($link.attr('rel') === 'lightbox') {
|
||||
// If image is not part of a set
|
||||
addToAlbum($link);
|
||||
} else {
|
||||
// If image is part of a set
|
||||
$links = $($link.prop('tagName') + '[rel="' + $link.attr('rel') + '"]');
|
||||
for (var j = 0; j < $links.length; j = ++j) {
|
||||
addToAlbum($($links[j]));
|
||||
if ($links[j] === $link[0]) {
|
||||
imageNumber = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Position Lightbox
|
||||
var top = $window.scrollTop() + this.options.positionFromTop;
|
||||
var left = $window.scrollLeft();
|
||||
this.$lightbox.css({
|
||||
top: top + 'px',
|
||||
left: left + 'px'
|
||||
}).fadeIn(this.options.fadeDuration);
|
||||
|
||||
// Disable scrolling of the page while open
|
||||
if (this.options.disableScrolling) {
|
||||
$('body').addClass('lb-disable-scrolling');
|
||||
}
|
||||
|
||||
this.changeImage(imageNumber);
|
||||
};
|
||||
|
||||
// Hide most UI elements in preparation for the animated resizing of the lightbox.
|
||||
Lightbox.prototype.changeImage = function(imageNumber) {
|
||||
var self = this;
|
||||
var filename = this.album[imageNumber].link;
|
||||
var filetype = filename.split('.').slice(-1)[0];
|
||||
var $image = this.$lightbox.find('.lb-image');
|
||||
|
||||
// Disable keyboard nav during transitions
|
||||
this.disableKeyboardNav();
|
||||
|
||||
// Show loading state
|
||||
this.$overlay.fadeIn(this.options.fadeDuration);
|
||||
$('.lb-loader').fadeIn('slow');
|
||||
this.$lightbox.find('.lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption').hide();
|
||||
this.$outerContainer.addClass('animating');
|
||||
|
||||
// When image to show is preloaded, we send the width and height to sizeContainer()
|
||||
var preloader = new Image();
|
||||
preloader.onload = function() {
|
||||
var $preloader;
|
||||
var imageHeight;
|
||||
var imageWidth;
|
||||
var maxImageHeight;
|
||||
var maxImageWidth;
|
||||
var windowHeight;
|
||||
var windowWidth;
|
||||
|
||||
$image.attr({
|
||||
'alt': self.album[imageNumber].alt,
|
||||
'src': filename
|
||||
});
|
||||
|
||||
$preloader = $(preloader);
|
||||
|
||||
$image.width(preloader.width);
|
||||
$image.height(preloader.height);
|
||||
windowWidth = $(window).width();
|
||||
windowHeight = $(window).height();
|
||||
|
||||
// Calculate the max image dimensions for the current viewport.
|
||||
// Take into account the border around the image and an additional 10px gutter on each side.
|
||||
maxImageWidth = windowWidth - self.containerPadding.left - self.containerPadding.right - self.imageBorderWidth.left - self.imageBorderWidth.right - 20;
|
||||
maxImageHeight = windowHeight - self.containerPadding.top - self.containerPadding.bottom - self.imageBorderWidth.top - self.imageBorderWidth.bottom - self.options.positionFromTop - 70;
|
||||
|
||||
/*
|
||||
Since many SVGs have small intrinsic dimensions, but they support scaling
|
||||
up without quality loss because of their vector format, max out their
|
||||
size.
|
||||
*/
|
||||
if (filetype === 'svg') {
|
||||
$image.width(maxImageWidth);
|
||||
$image.height(maxImageHeight);
|
||||
}
|
||||
|
||||
// Fit image inside the viewport.
|
||||
if (self.options.fitImagesInViewport) {
|
||||
|
||||
// Check if image size is larger then maxWidth|maxHeight in settings
|
||||
if (self.options.maxWidth && self.options.maxWidth < maxImageWidth) {
|
||||
maxImageWidth = self.options.maxWidth;
|
||||
}
|
||||
if (self.options.maxHeight && self.options.maxHeight < maxImageHeight) {
|
||||
maxImageHeight = self.options.maxHeight;
|
||||
}
|
||||
|
||||
} else {
|
||||
maxImageWidth = self.options.maxWidth || preloader.width || maxImageWidth;
|
||||
maxImageHeight = self.options.maxHeight || preloader.height || maxImageHeight;
|
||||
}
|
||||
|
||||
// Is the current image's width or height is greater than the maxImageWidth or maxImageHeight
|
||||
// option than we need to size down while maintaining the aspect ratio.
|
||||
if ((preloader.width > maxImageWidth) || (preloader.height > maxImageHeight)) {
|
||||
if ((preloader.width / maxImageWidth) > (preloader.height / maxImageHeight)) {
|
||||
imageWidth = maxImageWidth;
|
||||
imageHeight = parseInt(preloader.height / (preloader.width / imageWidth), 10);
|
||||
$image.width(imageWidth);
|
||||
$image.height(imageHeight);
|
||||
} else {
|
||||
imageHeight = maxImageHeight;
|
||||
imageWidth = parseInt(preloader.width / (preloader.height / imageHeight), 10);
|
||||
$image.width(imageWidth);
|
||||
$image.height(imageHeight);
|
||||
}
|
||||
}
|
||||
self.sizeContainer($image.width(), $image.height());
|
||||
};
|
||||
|
||||
// Preload image before showing
|
||||
preloader.src = this.album[imageNumber].link;
|
||||
this.currentImageIndex = imageNumber;
|
||||
};
|
||||
|
||||
// Stretch overlay to fit the viewport
|
||||
Lightbox.prototype.sizeOverlay = function() {
|
||||
var self = this;
|
||||
/*
|
||||
We use a setTimeout 0 to pause JS execution and let the rendering catch-up.
|
||||
Why do this? If the `disableScrolling` option is set to true, a class is added to the body
|
||||
tag that disables scrolling and hides the scrollbar. We want to make sure the scrollbar is
|
||||
hidden before we measure the document width, as the presence of the scrollbar will affect the
|
||||
number.
|
||||
*/
|
||||
setTimeout(function() {
|
||||
self.$overlay
|
||||
.width($(document).width())
|
||||
.height($(document).height());
|
||||
|
||||
}, 0);
|
||||
};
|
||||
|
||||
// Animate the size of the lightbox to fit the image we are showing
|
||||
// This method also shows the the image.
|
||||
Lightbox.prototype.sizeContainer = function(imageWidth, imageHeight) {
|
||||
var self = this;
|
||||
|
||||
var oldWidth = this.$outerContainer.outerWidth();
|
||||
var oldHeight = this.$outerContainer.outerHeight();
|
||||
var newWidth = imageWidth + this.containerPadding.left + this.containerPadding.right + this.imageBorderWidth.left + this.imageBorderWidth.right;
|
||||
var newHeight = imageHeight + this.containerPadding.top + this.containerPadding.bottom + this.imageBorderWidth.top + this.imageBorderWidth.bottom;
|
||||
|
||||
function postResize() {
|
||||
self.$lightbox.find('.lb-dataContainer').width(newWidth);
|
||||
self.$lightbox.find('.lb-prevLink').height(newHeight);
|
||||
self.$lightbox.find('.lb-nextLink').height(newHeight);
|
||||
|
||||
// Set focus on one of the two root nodes so keyboard events are captured.
|
||||
self.$overlay.focus();
|
||||
|
||||
self.showImage();
|
||||
}
|
||||
|
||||
if (oldWidth !== newWidth || oldHeight !== newHeight) {
|
||||
this.$outerContainer.animate({
|
||||
width: newWidth,
|
||||
height: newHeight
|
||||
}, this.options.resizeDuration, 'swing', function() {
|
||||
postResize();
|
||||
});
|
||||
} else {
|
||||
postResize();
|
||||
}
|
||||
};
|
||||
|
||||
// Display the image and its details and begin preload neighboring images.
|
||||
Lightbox.prototype.showImage = function() {
|
||||
this.$lightbox.find('.lb-loader').stop(true).hide();
|
||||
this.$lightbox.find('.lb-image').fadeIn(this.options.imageFadeDuration);
|
||||
|
||||
this.updateNav();
|
||||
this.updateDetails();
|
||||
this.preloadNeighboringImages();
|
||||
this.enableKeyboardNav();
|
||||
};
|
||||
|
||||
// Display previous and next navigation if appropriate.
|
||||
Lightbox.prototype.updateNav = function() {
|
||||
// Check to see if the browser supports touch events. If so, we take the conservative approach
|
||||
// and assume that mouse hover events are not supported and always show prev/next navigation
|
||||
// arrows in image sets.
|
||||
var alwaysShowNav = false;
|
||||
try {
|
||||
document.createEvent('TouchEvent');
|
||||
alwaysShowNav = (this.options.alwaysShowNavOnTouchDevices) ? true : false;
|
||||
} catch (e) {}
|
||||
|
||||
this.$lightbox.find('.lb-nav').show();
|
||||
|
||||
if (this.album.length > 1) {
|
||||
if (this.options.wrapAround) {
|
||||
if (alwaysShowNav) {
|
||||
this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1');
|
||||
}
|
||||
this.$lightbox.find('.lb-prev, .lb-next').show();
|
||||
} else {
|
||||
if (this.currentImageIndex > 0) {
|
||||
this.$lightbox.find('.lb-prev').show();
|
||||
if (alwaysShowNav) {
|
||||
this.$lightbox.find('.lb-prev').css('opacity', '1');
|
||||
}
|
||||
}
|
||||
if (this.currentImageIndex < this.album.length - 1) {
|
||||
this.$lightbox.find('.lb-next').show();
|
||||
if (alwaysShowNav) {
|
||||
this.$lightbox.find('.lb-next').css('opacity', '1');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Display caption, image number, and closing button.
|
||||
Lightbox.prototype.updateDetails = function() {
|
||||
var self = this;
|
||||
|
||||
// Enable anchor clicks in the injected caption html.
|
||||
// Thanks Nate Wright for the fix. @https://github.com/NateWr
|
||||
if (typeof this.album[this.currentImageIndex].title !== 'undefined' &&
|
||||
this.album[this.currentImageIndex].title !== '') {
|
||||
var $caption = this.$lightbox.find('.lb-caption');
|
||||
if (this.options.sanitizeTitle) {
|
||||
$caption.text(this.album[this.currentImageIndex].title);
|
||||
} else {
|
||||
$caption.html(this.album[this.currentImageIndex].title);
|
||||
}
|
||||
$caption.fadeIn('fast');
|
||||
}
|
||||
|
||||
if (this.album.length > 1 && this.options.showImageNumberLabel) {
|
||||
var labelText = this.imageCountLabel(this.currentImageIndex + 1, this.album.length);
|
||||
this.$lightbox.find('.lb-number').text(labelText).fadeIn('fast');
|
||||
} else {
|
||||
this.$lightbox.find('.lb-number').hide();
|
||||
}
|
||||
|
||||
this.$outerContainer.removeClass('animating');
|
||||
|
||||
this.$lightbox.find('.lb-dataContainer').fadeIn(this.options.resizeDuration, function() {
|
||||
return self.sizeOverlay();
|
||||
});
|
||||
};
|
||||
|
||||
// Preload previous and next images in set.
|
||||
Lightbox.prototype.preloadNeighboringImages = function() {
|
||||
if (this.album.length > this.currentImageIndex + 1) {
|
||||
var preloadNext = new Image();
|
||||
preloadNext.src = this.album[this.currentImageIndex + 1].link;
|
||||
}
|
||||
if (this.currentImageIndex > 0) {
|
||||
var preloadPrev = new Image();
|
||||
preloadPrev.src = this.album[this.currentImageIndex - 1].link;
|
||||
}
|
||||
};
|
||||
|
||||
Lightbox.prototype.enableKeyboardNav = function() {
|
||||
this.$lightbox.on('keyup.keyboard', $.proxy(this.keyboardAction, this));
|
||||
this.$overlay.on('keyup.keyboard', $.proxy(this.keyboardAction, this));
|
||||
};
|
||||
|
||||
Lightbox.prototype.disableKeyboardNav = function() {
|
||||
this.$lightbox.off('.keyboard');
|
||||
this.$overlay.off('.keyboard');
|
||||
};
|
||||
|
||||
Lightbox.prototype.keyboardAction = function(event) {
|
||||
var KEYCODE_ESC = 27;
|
||||
var KEYCODE_LEFTARROW = 37;
|
||||
var KEYCODE_RIGHTARROW = 39;
|
||||
|
||||
var keycode = event.keyCode;
|
||||
if (keycode === KEYCODE_ESC) {
|
||||
// Prevent bubbling so as to not affect other components on the page.
|
||||
event.stopPropagation();
|
||||
this.end();
|
||||
} else if (keycode === KEYCODE_LEFTARROW) {
|
||||
if (this.currentImageIndex !== 0) {
|
||||
this.changeImage(this.currentImageIndex - 1);
|
||||
} else if (this.options.wrapAround && this.album.length > 1) {
|
||||
this.changeImage(this.album.length - 1);
|
||||
}
|
||||
} else if (keycode === KEYCODE_RIGHTARROW) {
|
||||
if (this.currentImageIndex !== this.album.length - 1) {
|
||||
this.changeImage(this.currentImageIndex + 1);
|
||||
} else if (this.options.wrapAround && this.album.length > 1) {
|
||||
this.changeImage(0);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Closing time. :-(
|
||||
Lightbox.prototype.end = function() {
|
||||
this.disableKeyboardNav();
|
||||
$(window).off('resize', this.sizeOverlay);
|
||||
this.$lightbox.fadeOut(this.options.fadeDuration);
|
||||
this.$overlay.fadeOut(this.options.fadeDuration);
|
||||
|
||||
if (this.options.disableScrolling) {
|
||||
$('body').removeClass('lb-disable-scrolling');
|
||||
}
|
||||
};
|
||||
|
||||
return new Lightbox();
|
||||
}));
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue