ZAČETNI COMMIT 2021_05_08

master
Uros Gu 2021-05-08 17:51:48 +02:00
commit 15396d62b0
81 changed files with 10688 additions and 0 deletions

20
.gitignore vendored 100644
View File

@ -0,0 +1,20 @@
# Syncthing
#.stfolder
#.stignore
.stversions
# Linux
*~
*.swp
# Windows
Thumbs.db
desktop.ini
# Mac OS X
.DS_Store
._*
# Composer
/composer.phar
/vendor

22
.htaccess 100644
View File

@ -0,0 +1,22 @@
<IfModule mod_rewrite.c>
RewriteEngine On
# May be required to access sub directories
#RewriteBase /
# Deny access to internal dirs and files by passing the URL to Pico
RewriteRule ^(config|content|vendor|CHANGELOG\.md|composer\.(json|lock|phar))(/|$) index.php [L]
RewriteRule (^\.|/\.)(?!well-known(/|$)) index.php [L]
# Enable URL rewriting
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
<IfModule mod_env.c>
# Let Pico know about available URL rewriting
SetEnv PICO_URL_REWRITING 1
</IfModule>
</IfModule>
# Prevent file browsing
Options -Indexes -MultiViews

9
.stignore 100644
View File

@ -0,0 +1,9 @@
.git
// .gitignore
// ignorirani fajli, ki jih rabi NextCloud
/._sync_504320134e4a.db
/._sync_504320134e4a.db-shm
/._sync_504320134e4a.db-wal
/.owncloudsync.log
/.sync-exclude.lst

650
CHANGELOG.md 100644
View File

@ -0,0 +1,650 @@
Pico Changelog
==============
**Note:** This changelog only provides technical information about the changes
introduced with a particular Pico version, and is meant to supplement
the actual code changes. The information in this changelog are often
insufficient to understand the implications of larger changes. Please
refer to both the UPGRADE and NEWS sections of the docs for more
details.
**Note:** Changes breaking backwards compatibility (BC) are marked with an `!`
(exclamation mark). This doesn't include changes for which BC is
preserved by Pico's official `PicoDeprecated` plugin. If a previously
deprecated feature is later removed in `PicoDeprecated`, this change
is going to be marked as BC-breaking change in both Pico's and
`PicoDeprecated`'s changelog. Please note that BC-breaking changes
are only possible with a new major version.
### Version 2.1.4
Released: 2020-08-29
```
* [Changed] Silence PHP errors in Parsedown
* [Fixed] #560: Improve charset guessing for formatted date strings using
`strftime()` (Pico always uses UTF-8, but `strftime()` might not)
```
### Version 2.1.3
Released: 2020-07-10
```
* [New] Add `locale` option to `config/config.yml`
* [Changed] Improve Pico docs
```
### Version 2.1.2
Released: 2020-04-10
```
* [Fixed] Fix DummyPlugin declaring API version 3
```
### Version 2.1.1
Released: 2019-12-31
```
* [Fixed] Require Parsedown 1.8.0-beta-7 and Parsedown Extra 0.8.0-beta-1 due
to changes in Parsedown and Parsedown Extra breaking BC beyond repair
* [Changed] #523: Check for hidden pages based on page ID instead of full paths
* [Changed] Improve Pico docs
```
### Version 2.1.0
Released: 2019-11-24
```
* [Changed] Add Pico's official logo and tagline to `content-sample/_meta.md`
* [Changed] Improve `content-sample/theme.md` to show Pico's official logo and
the usage of the new image utility classes of Pico's default theme
* [Changed] Improve Pico docs and PHPDoc class docs
```
### Version 2.1.0-beta.1
Released: 2019-11-03
```
* [New] Introduce API version 3
* [New] Add `assets_dir`, `assets_url` and `plugins_url` config params
* [New] Add `%config.*%` Markdown placeholders for scalar config params and the
`%assets_url%`, `%themes_url%` and `%plugins_url%` placeholders
* [New] Add `content-sample/theme.md` for theme testing purposes
* [New] Introduce API versioning for themes and support theme-specific configs
using the new `pico-theme.yml` in a theme's directory; `pico-theme.yml`
allows a theme to influence Pico's Twig config, to register known meta
headers and to provide defaults for theme config params
* [New] Add `assets_url`, `themes_url` and `plugins_url` Twig variables
* [New] Add `pages` Twig function to deal with Pico's page tree; this function
replaces the raw usage of Pico's `pages` array in themes
* [New] Add `url` Twig filter to replace URL placeholders (e.g. `%base_url%`)
in strings using the new `Pico::substituteUrl()` method
* [New] Add `onThemeLoading` and `onThemeLoaded` events
* [New] Add `debug` config param and the `Pico::isDebugModeEnabled()` method,
checking the `PICO_DEBUG` environment variable, to enable debugging
* [New] Add new `Pico::getNormalizedPath()` method to normalize a path; this
method should be used to prevent content dir breakouts when dealing
with paths provided by user input
* [New] Add new `Pico::getUrlFromPath()` method to guess a URL from a file path
* [New] Add new `Pico::getAbsoluteUrl()` method to make a relative URL absolute
* [New] #505: Create pre-built `.zip` release archives
* [Fixed] #461: Proberly handle content files with a UTF-8 BOM
* [Changed] Rename `theme_url` config param to `themes_url`; the `theme_url`
Twig variable and Markdown placeholder are kept unchanged
* [Changed] Update to Parsedown Extra 0.8 and Parsedown 1.8 (both still beta)
* [Changed] Enable Twig's `autoescape` feature by default; outputting a
variable now causes Twig to escape HTML markup; Pico's `content`
variable is a notable exception, as it is marked as being HTML safe
* [Changed] Rename `prev_page` Twig variable to `previous_page`
* [Changed] Mark `markdown` and `content` Twig filters as well as the `content`
variable as being HTML safe
* [Changed] Add `$singleLine` param to `markdown` Twig filter as well as the
`Pico::parseFileContent()` method to parse just a single line of
Markdown input
* [Changed] Add `AbstractPicoPlugin::configEnabled()` method to check whether
a plugin should be enabled or disabled based on Pico's config
* [Changed] Deprecate the use of `AbstractPicoPlugin::__call()`, use
`PicoPluginInterface::getPico()` instead
* [Changed] Update to Twig 1.36 as last version supporting PHP 5.3, use a
Composer-based installation to use a newer Twig version
* [Changed] Add `$basePath` and `$endSlash` params to `Pico::getAbsolutePath()`
* [Changed] Deprecate `Pico::getBaseThemeUrl()`
* [Changed] Replace various `file_exists` calls with proper `is_file` calls
* [Changed] Refactor release & build system
* [Changed] Improve Pico docs and PHPDoc class docs
* [Changed] Various small improvements
* [Removed] Remove superfluous `base_dir` and `theme_dir` Twig variables
* [Removed] Remove `PicoPluginInterface::__construct()`
```
### Version 2.0.5-beta.1
Released: 2019-01-03
```
* [New] Add PHP 7.3 tests
* [New] Add `2.0.x-dev` alias for master branch to `composer.json`
* [Changed] Update to Parsedown Extra 0.8 and Parsedown 1.8 (both still beta)
* [Changed] Improve release & build process
```
### Version 2.0.4
Released: 2018-12-17
```
* [Fixed] Proberly handle hostnames with ports in `Pico::getBaseUrl()`
* [Changed] Improve documentation
```
### Version 2.0.3
Released: 2018-12-03
```
* [Fixed] Support alternative server ports in `Pico::getBaseUrl()`
* [Changed] Don't require server environment variables to be configured
* [Changed] Improve release & build process
* [Changed] Improve documentation
* [Changed] Improve PHP class docs
* [Changed] Various small improvements
```
### Version 2.0.2
Released: 2018-08-12
```
* [Fixed] Support Windows paths (`\` instead of `/`) in `Pico::evaluateRequestUrl()`
```
### Version 2.0.1
Released: 2018-07-29
```
* [Changed] Improve documentation
* [Changed] Add missing "Formatted Date", "Time" and "Hidden" meta headers; use
the "Hidden" meta header to manually hide a page in the pages list
```
### Version 2.0.0
Released: 2018-07-01
```
* [New] Add Bountysource
* [Changed] Improve documentation
* [Changed] Improve release & build process
* [Changed] Add `Pico::setConfig()` example to `index.php.dist`
* [Fixed] Don't load `config/config.yml` multiple times
```
### Version 2.0.0-beta.3
Released: 2018-04-07
```
* [Changed] Add `README.md`, `CONTRIBUTING.md` and `CHANGELOG.md` of main repo
to pre-bundled releases, keep `.gitignore`
* [Changed] Deny access to a possibly existing `composer.phar` in `.htaccess`
* [Changed] Disallow the use of the `callback` filter for the `url_param` and
`form_param` Twig functions
* [Changed] Improve documentation
* [Fixed] Fix page tree when sorting pages by arbitrary values
* [Fixed] Fix sorting of `Pico::$nativePlugins`
```
### Version 2.0.0-beta.2
Released: 2018-01-21
```
* [New] Improve release & build process and move most build tools to the new
`picocms/ci-tools` repo, allowing them to be used by other projects
* [New] Add page tree; refer to the `Pico::buildPageTree()` method for more
details; also see the `onPageTreeBuilt` event
* [Changed] Update dependencies: Twig 1.35
* [Changed] ! Improve `.htaccess` and deny access to all dot files by default
* [Changed] ! Throw a `RuntimeException` when non-native plugins are loaded,
but Pico's `PicoDeprecated` plugin is not loaded
* [Changed] ! Change `AbstractPicoPlugin::$enabled`'s behavior: setting it to
TRUE now leads to throwing a `RuntimeException` when the plugin's
dependencies aren't fulfilled; use NULL to maintain old behavior
* [Changed] ! Force themes to use `.twig` as file extension for Twig templates
* [Changed] Improve PHP class docs
* [Changed] Various small improvements
```
### Version 2.0.0-beta.1
Released: 2017-11-05
```
* [New] Pico is on its way to its second major release!
* [New] Improve Pico's release & build process
* [New] Add "Developer Certificate of Origin" to `CONTRIBUTING.md`
* [New] Add license & copyright header to all relevant files
* [New] Add Pico version constants (`Pico::VERSION` and `Pico::VERSION_ID`),
and add a `version` Twig variable and `%version%` Markdown placeholder
* [New] Add Pico API versioning for plugins (see `Pico::API_VERSION` constant);
Pico now triggers events on plugins using the latest API version only
("native" plugins), `PicoDeprecated` takes care of all other plugins;
as a result, old plugin's always depend on `PicoDeprecated` now
* [New] Add a theme and plugin installer for composer; Pico now additionally
uses the new `vendor/pico-plugin.php` file to discover plugins
installed by composer and loads them using composer's autoloader;
see the `picocms/composer-installer` repo for more details; Pico
loads plugins installed by composer first and ignores conflicting
plugins in Pico's `plugins/` dir
* [New] Add `$enableLocalPlugins` parameter to `Pico::__construct()` to allow
website developers to disable local plugin discovery by scanning the
`plugins/` dir (i.e. load plugins from `vendor/pico-plugin.php` only)
* [New] Add public `AbstractPicoPlugin::getPluginConfig()` method
* [New] Add public `Pico::loadPlugin()` method and the corresponding
`onPluginManuallyLoaded` event
* [New] Add public `Pico::resolveFilePath()` method (replaces the protected
`Pico::discoverRequestFile()` method)
* [New] Add public `Pico::is404Content()` method
* [New] Add public `Pico::getYamlParser()` method and the corresponding
`onYamlParserRegistered` event
* [New] Add public `Pico::substituteFileContent()` method
* [New] Add public `Pico::getPageId()` method
* [New] Add public `Pico::getFilesGlob()` method
* [New] Add public `Pico::getVendorDir()` method, returning Pico's installation
directory (i.e. `/var/www/pico/vendor/picocms/pico`); don't confuse
this with composer's `vendor/` dir!
* [New] Add `$default` parameter to `Pico::getConfig()` method
* [New] Add empty `assets/` and `content/` dirs
* [New] #305: Add `url_param` and `form_param` Twig functions, and the public
`Pico::getUrlParameter()` and `Pico::getFormParameter()` methods,
allowing theme developers to access URL GET and HTTP POST parameters
* [New] Add `$meta` parameter to `markdown` Twig filter
* [New] Add `remove` fallback to `sort_by` Twig filter
* [New] Add `theme_url` config parameter
* [New] Add public `Pico::getBaseThemeUrl()` method
* [New] Add `REQUEST_URI` routing method, allowing one to simply rewrite all
requests to `index.php` (e.g. use `FallbackResource` or `mod_rewrite`
in your `.htaccess` for Apache, or use `try_files` for nginx)
* [New] #299: Add built-in 404 page as fallback when no `404.md` is found
* [New] Allow sorting pages by arbitrary meta values
* [New] Add `onSinglePageLoading` event, allowing one to skip a page
* [New] Add `onSinglePageContent` event
* [New] Add some config parameters to change Parsedown's behavior
* [Changed] ! Disallow running the same Pico instance multiple times by
throwing a `RuntimeException` when calling `Pico::run()`
* [Changed] ! #203: Load plugins from `plugins/<plugin name>/<plugin name>.php`
and `plugins/<plugin name>.php` only (directory and file name must
match case-sensitive), and throw a `RuntimeException` when Pico is
unable to load a plugin; also throw a `RuntimeException` when
superfluous files or directories in `plugins/` are found; use a
scope-isolated `require()` to include plugin files
* [Changed] ! Use a plugin dependency topology to sort `Pico::$plugins`,
changing the execution order of plugins so that plugins, on which
other plugins depend, are always executed before their dependants
* [Changed] ! Don't pass `$plugins` parameter to `onPluginsLoaded` event by
reference anymore; use `Pico::loadPlugin()` instead
* [Changed] ! Leave `Pico::$pages` unsorted when a unknown sort method was
configured; this usually means that a plugin wants to sort it
* [Changed] Overhaul page discovery events: add `onPagesDiscovered` event which
is triggered right before `Pico::$pages` is sorted and move the
`$currentPage`, `$previousPage` and `$nextPage` parameters of the
`onPagesLoaded` event to the new `onCurrentPageDiscovered` event
* [Changed] Move the `$twig` parameter of the `onPageRendering` event to the
`onTwigRegistered` event, replacing the `onTwigRegistration` event
* [Changed] Unify the `onParsedownRegistration` event by renaming it to
`onParsedownRegistered` and add the `$parsedown` parameter
* [Changed] #330: Replace `config/config.php` by a modular YAML-based approach;
you can now use a arbitrary number of `config/*.yml` files to
configure Pico
* [Changed] ! When trying to auto-detect Pico's `content` dir, Pico no longer
searches just for a (possibly empty) directory, but rather checks
whether a `index.md` exists in this directory
* [Changed] ! Use the relative path between `index.php` and `Pico::$themesDir`
for Pico's theme URL (also refer to the new `theme_url` config and
the public `Pico::getBaseThemeUrl()` method for more details)
* [Changed] #347: Drop the superfluous trailing "/index" from Pico's URLs
* [Changed] Flip registered meta headers array, so that the array key is used
to search for a meta value and the array value is used to store the
found meta value (previously it was the other way round)
* [Changed] ! Add lazy loading for `Pico::$yamlParser`, `Pico::$parsedown` and
`Pico::$twig`; the corresponding events are no longer part of
Pico's event flow and are triggered on demand
* [Changed] ! Trigger the `onMetaHeaders` event just once; the event is no
longer part of Pico's event flow and is triggered on demand
* [Changed] Don't lower meta headers on the first level of a page's meta data
(i.e. `SomeKey: value` is accessible using `$meta['SomeKey']`)
* [Changed] Don't compare registered meta headers case-insensitive, require
matching case
* [Changed] Allow users to explicitly set values for the `date_formatted` and
`time` meta headers in a page's YAML front matter
* [Changed] Add page siblings for all pages
* [Changed] ! Treat pages or directories that are prefixed by `_` as hidden;
when requesting a hidden page, Pico responds with a 404 page;
hidden pages are still in `Pico::$pages`, but are moved to the end
of the pages array when sorted alphabetically or by date
* [Changed] ! Don't treat explicit requests to a 404 page as successful request
* [Changed] Change method visibility of `Pico::getFiles()` to public
* [Changed] Change method visibility of `Pico::triggerEvent()` to public;
at first glance this method triggers events on native plugins only,
however, `PicoDeprecated` takes care of triggering events for other
plugins, thus you can use this method to trigger (custom) events on
all plugins; never use it to trigger Pico core events!
* [Changed] Move Pico's default theme to the new `picocms/pico-theme` repo; the
theme was completely rewritten from scratch and is a much better
starting point for creating your own theme; refer to the theme's
`CHANGELOG.md` for more details
* [Changed] Move `PicoDeprecated` plugin to the new `picocms/pico-deprecated`
repo; refer to the plugin's `CHANGELOG.md` for more details
* [Changed] Update dependencies: Twig 1.34, Symfony YAML 2.8, Parsedown 1.6
* [Changed] Improve Pico docs and PHP class docs
* [Changed] A vast number of small improvements and changes...
* [Removed] ! Remove `PicoParsePagesContent` plugin
* [Removed] ! Remove `PicoExcerpt` plugin
* [Removed] Remove `rewrite_url` and `is_front_page` Twig variables
* [Removed] Remove superfluous parameters of various events to reduce Pico's
error-proneness (plugins hopefully interfere with each other less)
```
### Version 1.0.6
Released: 2017-07-25
```
* [Changed] Improve documentation
* [Changed] Improve handling of Pico's Twig config (`$config['twig_config']`)
* [Changed] Improve PHP platform requirement checks
```
### Version 1.0.5
Released: 2017-05-02
```
* [Changed] Improve documentation
* [Fixed] Improve hostname detection with proxies
* [Fixed] Fix detection of Windows-based server environments
* [Removed] Remove Twitter links
```
### Version 1.0.4
Released: 2016-10-04
```
* [New] Add Pico's social icons to default theme
* [Changed] Improve documentation
* [Changed] Add CSS flexbox rules to default theme
* [Fixed] Fix handling of non-YAML 1-line front matters
* [Fixed] Fix responsiveness in default theme
```
### Version 1.0.3
Released: 2016-05-11
```
* [Changed] Improve documentation
* [Changed] Heavily extend nginx configuration docs
* [Changed] Add CSS rules for definition lists to default theme
* [Changed] Always use `on404Content...` execution path when serving a `404.md`
* [Changed] Deny access to `.git` directory, `CHANGELOG.md`, `composer.json`
and `composer.lock` (`.htaccess` file)
* [Changed] Use Pico's `404.md` to deny access to `.git`, `config`, `content`,
* `content-sample`, `lib` and `vendor` dirs (`.htaccess` file)
* [Fixed] #342: Fix responsiveness in default theme
* [Fixed] #344: Improve HTTPS detection with proxies
* [Fixed] #346: Force HTTPS to load Google Fonts in default theme
```
### Version 1.0.2
Released: 2016-03-16
```
* [Changed] Various small improvements and changes...
* [Fixed] Check dependencies when a plugin is enabled by default
* [Fixed] Allow `Pico::$requestFile` to point to somewhere outside `content_dir`
* [Fixed] #336: Fix `Date` meta header parsing with ISO-8601 datetime strings
```
### Version 1.0.1
Released: 2016-02-27
```
* [Changed] Improve documentation
* [Changed] Replace `version_compare()` with `PHP_VERSION_ID` in
`index.php.dist` (available since PHP 5.2.7)
* [Fixed] Suppress PHP warning when using `date_default_timezone_get()`
* [Fixed] #329: Force Apache's `MultiViews` feature to be disabled
```
### Version 1.0.0
Released: 2015-12-24
```
* [New] On Christmas Eve, we are happy to announce Pico's first stable release!
The Pico Community wants to thank all contributors and users who made
this possible. Merry Christmas and a Happy New Year 2016!
* [New] Adding `$queryData` parameter to `Pico::getPageUrl()` method
* [Changed] Improve documentation
* [Changed] Moving `LICENSE` to `LICENSE.md`
* [Changed] Throw `LogicException` instead of `RuntimeException` when calling
`Pico::setConfig()` after processing has started
* [Changed] Default theme now highlights the current page and shows pages with
a title in the navigation only
* [Changed] #292: Ignore YAML parse errors (meta data) in `Pico::readPages()`
* [Changed] Various small improvements and changes...
* [Fixed] Support empty meta header
* [Fixed] #307: Fix path handling on Windows
```
### Version 1.0.0-beta.2
Released: 2015-11-30
```
* [New] Introducing the `PicoTwigExtension` Twig extension
* [New] New `markdown` filter for Twig to parse markdown strings; Note: If you
want to parse the contents of a page, use the `content` filter instead
* [New] New `sort_by` filter to sort an array by a specified key or key path
* [New] New `map` filter to get the values of the given key or key path
* [New] Introducing `index.php.dist` (used for pre-bundled releases)
* [New] Use PHP_CodeSniffer to auto-check source code (see `.phpcs.xml`)
* [New] Use Travis CI to generate phpDocs class docs automatically
* [Changed] Improve documentation
* [Changed] Improve table styling in default theme
* [Changed] Update composer version constraints; almost all dependencies will
have pending updates, run `composer update`
* [Changed] Throw a RuntimeException when the `content` dir isn't accessible
* [Changed] Reuse `ParsedownExtra` object; new `onParsedownRegistration` event
* [Changed] `$config['rewrite_url']` is now always available
* [Changed] `DummyPlugin` class is now final
* [Changed] Remove `.git` dirs from `vendor/` when deploying
* [Changed] Various small improvements and changes...
* [Fixed] `PicoDeprecated`: Sanitize `content_dir` and `base_url` options when
reading `config.php` in Picos root dir
* [Fixed] Replace `urldecode()` (deprecated RFC 1738) with `rawurldecode()`
(RFC 3986) in `Page::evaluateRequestUrl()`
* [Fixed] #272: Encode URLs using `rawurlencode()` in `Pico::getPageUrl()`
* [Fixed] #274: Prevent double slashes in `base_url`
* [Fixed] #285: Make `index.php` work when installed as a composer dependency
* [Fixed] #291: Force `Pico::$requestUrl` to have no leading/trailing slash
```
### Version 1.0.0-beta.1
Released: 2015-11-06
```
* [Security] (9e2604a) Prevent content_dir breakouts using malicious URLs
* [New] Pico is on its way to its first stable release!
* [New] Provide pre-bundled releases
* [New] Heavily expanded documentation (inline code docs, user docs, dev docs)
* [New] New routing system using the QUERY_STRING method; Pico now works
out-of-the-box with any webserver and without URL rewriting; use
`%base_url%?sub/page` in markdown files and `{{ "sub/page"|link }}`
in Twig templates to declare internal links
* [New] Brand new plugin system with dependencies (see `PicoPluginInterface`
and `AbstractPicoPlugin`); if you're plugin dev, you really should
take a look at the UPGRADE section of the docs!
* [New] Introducing the `PicoDeprecated` plugin to maintain full backward
compatibility with Pico 0.9 and Pico 0.8
* [New] Support YAML-style meta header comments (`---`)
* [New] Various new placeholders to use in content files (e.g. `%site_title%`)
* [New] Provide access to all meta headers in content files (`%meta.*%`)
* [New] Provide access to meta headers in `$page` arrays (`$page['meta']`)
* [New] The file extension of content files is now configurable
* [New] Add `Pico::setConfig()` method to predefine config variables
* [New] Supporting per-directory `404.md` files
* [New] #103: Providing access to `sub.md` even when the `sub` directory
exists, provided that there is no `sub/index.md`
* [New] #249: Support the `.twig` file extension for templates
* [New] #268, 269: Now using Travis CI; performing basic code tests and
implementing an automatic release process
* [Changed] Complete code refactoring
* [Changed] Source code now follows PSR code styling
* [Changed] Replacing constants (e.g. `ROOT_DIR`) with constructor parameters
* [Changed] Paths (e.g. `content_dir`) are now relative to Pico's root dir
* [Changed] Adding `Pico::run()` method that performs Pico's processing and
returns the rendered contents
* [Changed] Renaming all plugin events; adding some new events
* [Changed] `Pico_Plugin` is now the fully documented `DummyPlugin`
* [Changed] Meta data must start on the first line of the file now
* [Changed] Dropping the need to register meta headers for the convenience of
users and pure (!) theme devs; plugin devs are still REQUIRED to
register their meta headers during `onMetaHeaders`
* [Changed] Exclude inaccessible files from pages list
* [Changed] With alphabetical order, index files (e.g. `sub/index.md`) are
now always placed before their sub pages (e.g. `sub/foo.md`)
* [Changed] Pico requires PHP >= 5.3.6 (due to `erusev/parsedown-extra`)
* [Changed] Pico now implicitly uses a existing `content` directory without
the need to configure this in the `config/config.php` explicitly
* [Changed] Composer: Require a v0.7 release of `erusev/parsedown-extra`
* [Changed] Moving `license.txt` to `LICENSE`
* [Changed] Moving and reformatting `changelog.txt` to `CHANGELOG.md`
* [Changed] #116: Parse meta headers using the Symfony YAML component
* [Changed] #244: Replace opendir() with scandir()
* [Changed] #246: Move `config.php` to `config/` directory
* [Changed] #253: Assume HTTPS if page is requested through port 443
* [Changed] A vast number of small improvements and changes...
* [Fixed] Sorting by date now uses timestamps and works as expected
* [Fixed] Fixing `$currentPage`, `$nextPage` and `$previousPage`
* [Fixed] #99: Support content filenames with spaces
* [Fixed] #140, #241: Use file paths as page identifiers rather than titles
* [Fixed] #248: Always set a timezone; adding `$config['timezone']` option
* [Fixed] A vast number of small bugs...
* [Removed] Removing the default Twig cache dir
* [Removed] Removing various empty `index.html` files
* [Removed] Removing `$pageData['excerpt']`; recoverable with `PicoExcerpt`
* [Removed] #93, #158: Pico doesn't parse all content files anymore; moved to
`PicoParsePagesContent`; i.e. `$pageData['content']` doesn't exist
anymore, use `$pageData['raw_content']` when possible; otherwise
use Twigs new `content` filter (e.g. `{{ "sub/page"|content }}`)
```
### Version 0.9
Released: 2015-04-28
```
* [New] Default theme is now mobile-friendly
* [New] Description meta now available in content areas
* [New] Add description to composer.json
* [Changed] content folder is now content-sample
* [Changed] config.php moved to config.php.template
* [Changed] Updated documentation & wiki
* [Changed] Removed Composer, Twig files in /vendor, you must run composer
install now
* [Changed] Localized date format; strftime() instead of date()
* [Changed] Added ignore for tmp file extensions in the get_files() method
* [Changed] michelf/php-markdown is replaced with erusev/parsedown-extra
* [Changed] $config is no global variable anymore
* [Fixed] Pico now only removes the 1st comment block in .md files
* [Fixed] Issue wherein the alphabetical sorting of pages did not happen
```
### Version 0.8
Released: 2013-10-23
```
* [New] Added ability to set template in content meta
* [New] Added before_parse_content and after_parse_content hooks
* [Changed] content_parsed hook is now deprecated
* [Changed] Moved loading the config to nearer the beginning of the class
* [Changed] Only append ellipsis in limit_words() when word count exceeds max
* [Changed] Made private methods protected for better inheritance
* [Fixed] Fixed get_protocol() method to work in more situations
```
### Version 0.7
Released: 2013-09-04
```
* [New] Added before_read_file_meta and get_page_data plugin hooks to customize
page meta data
* [Changed] Make get_files() ignore dotfiles
* [Changed] Make get_pages() ignore Emacs and temp files
* [Changed] Use composer version of Markdown
* [Changed] Other small tweaks
* [Fixed] Date warnings and other small bugs
```
### Version 0.6.2
Released: 2013-05-07
```
* [Changed] Replaced glob_recursive with get_files
```
### Version 0.6.1
Released: 2013-05-07
```
* [New] Added "content" and "excerpt" fields to pages
* [New] Added excerpt_length config setting
```
### Version 0.6
Released: 2013-05-06
```
* [New] Added plugin functionality
* [Changed] Other small cleanup
```
### Version 0.5
Released: 2013-05-03
```
* [New] Added ability to order pages by "alpha" or "date" (asc or desc)
* [New] Added prev_page, current_page, next_page and is_front_page template vars
* [New] Added "Author" and "Date" title meta fields
* [Changed] Added "twig_config" to settings
* [Changed] Updated documentation
* [Fixed] Query string 404 bug
```
### Version 0.4.1
Released: 2013-05-01
```
* [New] Added CONTENT_EXT global
* [Changed] Use .md files instead of .txt
```
### Version 0.4
Released: 2013-05-01
```
* [New] Add get_pages() function for listing content
* [New] Added changelog.txt
* [Changed] Updated default theme
* [Changed] Updated documentation
```
### Version 0.3
Released: 2013-04-27
```
* [Fixed] get_config() function
```
### Version 0.2
Released: 2013-04-26
```
* [Changed] Updated Twig
* [Changed] Better checking for HTTPS
* [Fixed] Add 404 header to 404 page
* [Fixed] Case sensitive folder bug
```
### Version 0.1
Released: 2012-04-04
```
* Initial release
```

209
CONTRIBUTING.md 100644
View File

@ -0,0 +1,209 @@
Contributing to Pico
====================
Pico aims to be a high quality Content Management System (CMS) but at the same time wants to give contributors freedom when submitting fixes or improvements.
By contributing to Pico, you accept and agree to the *Developer Certificate of Origin* for your present and future contributions submitted to Pico. Please refer to the *Developer Certificate of Origin* section below.
Aside from this, we want to *encourage*, but not obligate you, the contributor, to follow the following guidelines. The only exception to this are the guidelines elucidated in the *Prevent `merge-hell`* section. Having said that: we really appreciate it when you apply the guidelines in part or wholly as that will save us time which, in turn, we can spend on bugfixes and new features.
Issues
------
If you want to report an *issue* with Pico's core, please create a new [Issue](https://github.com/picocms/Pico/issues) on GitHub. Concerning problems with plugins or themes, please refer to the website of the developer of this plugin or theme.
Before creating a [new Issue on GitHub](https://github.com/picocms/Pico/issues/new), please make sure the problem wasn't reported yet using [GitHubs search engine](https://github.com/picocms/Pico/search?type=Issues).
Please describe your issue as clear as possible and always include the *Pico version* you're using. Provided that you're using *plugins*, include a list of them too. We need information about the *actual and expected behavior*, the *steps to reproduce* the problem, and what steps you have taken to resolve the problem by yourself (i.e. *your own troubleshooting*).
Contributing
------------
Once you decide you want to contribute to *Pico's core* (which we really appreciate!) you can fork the project from https://github.com/picocms/Pico. If you're interested in developing a *plugin* or *theme* for Pico, please refer to the [development section](http://picocms.org/development/) of our website.
### Developer Certificate of Origin
By contributing to Pico, you accept and agree to the following terms and conditions for your present and future contributions submitted to Pico. Except for the license granted herein to Pico and recipients of software distributed by Pico, you reserve all right, title, and interest in and to your contributions. All contributions are subject to the following DCO + license terms.
```
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```
All contributions to this project are licensed under the following MIT License:
```
Copyright (c) <YEAR> <COPYRIGHT HOLDER>
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.
```
Please note that developing a *plugin* or *theme* for Pico is *not* assumed to be a contribution to Pico itself. By developing a plugin or theme you rather create a 3rd-party project that just uses Pico. Following the spirit of open source, we want to *encourage* you to release your plugin or theme under the terms of a [OSI-approved open source license](https://opensource.org/licenses). After all, Pico is open source, too!
### Prevent `merge-hell`
Please do *not* develop your contribution on the `master` branch of your fork, but create a separate feature branch, that is based off the `master` branch, for each feature that you want to contribute.
> Not doing so means that if you decide to work on two separate features and place a pull request for one of them, that the changes of the other issue that you are working on is also submitted. Even if it is not completely finished.
To get more information about the usage of Git, please refer to the [Pro Git book](https://git-scm.com/book) written by Scott Chacon and/or [this help page of GitHub](https://help.github.com/articles/using-pull-requests).
### Pull Requests
Please keep in mind that pull requests should be small (i.e. one feature per request), stick to existing coding conventions and documentation should be updated if required. It's encouraged to make commits of logical units and check for unnecessary whitespace before committing (try `git diff --check`). Please reference issue numbers in your commit messages where appropriate.
### Coding Standards
Pico uses the [PSR-2 Coding Standard](http://www.php-fig.org/psr/psr-2/) as defined by the [PHP Framework Interoperability Group (PHP-FIG)](http://www.php-fig.org/).
For historical reasons we don't use formal namespaces. Markdown files in the `content-sample` folder (the inline documentation) must follow a hard limit of 80 characters line length.
It is recommended to check your code using [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) using Pico's `.phpcs.xml` standard. Use the following command:
$ ./vendor/bin/phpcs --standard=.phpcs.xml [file]...
With this command you can specify a file or folder to limit which files it will check or omit that argument altogether, in which case the current working directory is checked.
### Keep documentation in sync
Pico accepts the problems of having redundant documentation on different places (concretely Pico's inline user docs, the `README.md` and the website) for the sake of a better user experience. When updating the docs, please make sure to keep them in sync.
If you update the [`README.md`](https://github.com/picocms/Pico/blob/master/README.md) or [`content-sample/index.md`](https://github.com/picocms/Pico/blob/master/content-sample/index.md), please make sure to update the corresponding files in the [`_docs`](https://github.com/picocms/picocms.github.io/tree/master/_docs/) folder of the `picocms.github.io` repo (i.e. [Pico's website](http://picocms.org/docs/)) and vice versa. Unfortunately this involves three (!) different markdown parsers. If you're experiencing problems, use Pico's [`erusev/parsedown-extra`](https://github.com/erusev/parsedown-extra) as a reference. You can try to make the contents compatible to [Kramdown](http://kramdown.gettalong.org/) (Pico's website) and [CommonMarker](https://github.com/gjtorikian/commonmarker) (`README.md`) by yourself, otherwise please address the issues in your pull request message and we'll take care of it.
Versioning
----------
Pico follows [Semantic Versioning 2.0](http://semver.org) and uses version numbers like `MAJOR`.`MINOR`.`PATCH`. We will increment the:
- `MAJOR` version when we make incompatible API changes,
- `MINOR` version when we add functionality in a backwards-compatible manner, and
- `PATCH` version when we make backwards-compatible bug fixes.
For more information please refer to the http://semver.org website.
Branching
---------
The `master` branch contains the current development version of Pico. It is likely *unstable* and *not ready for production use*.
However, the `master` branch always consists of a deployable (but not necessarily deployed) version of Pico. As soon as development of a new `MAJOR` or `MINOR` release starts, a separate branch (e.g. `pico-1.1`) is created and a [pull request](https://github.com/picocms/Pico/pulls) is opened to receive the desired feedback.
Pico's actual development happens in separate development branches. Development branches are prefixed by:
- `feature/` for bigger features,
- `enhancement/` for smaller improvements, and
- `bugfix/` for non-trivial bug fixes.
As soon as development reaches a point where feedback is appreciated, a pull request is opened. After some time (very soon for bug fixes, and other improvements should have a reasonable feedback phase) the pull request is merged and the development branch will be deleted. Trivial bug fixes that will be part of the next `PATCH` version will be merged directly into `master`.
Build & Release process
-----------------------
We're using [Travis CI](https://travis-ci.com) to automate the build & release process of Pico. It generates and deploys a [PHP class documentation](http://picocms.org/phpDoc/) (powered by [phpDoc](http://phpdoc.org)) for new releases and on every commit to the `master` branch. Travis also prepares new releases by generating Pico's pre-built release packages, a version badge, code statistics (powered by [cloc](https://github.com/AlDanial/cloc)) and updates our website (the [`picocms.github.io` repo](https://github.com/picocms/picocms.github.io)). Please refer to our [`.travis.yml`](https://github.com/picocms/Pico/blob/master/.travis.yml), the [`picocms/ci-tools` repo](https://github.com/picocms/ci-tools) and the [`.build` directory](https://github.com/picocms/Pico/tree/master/.build) for details.
As insinuated above, it is important that each commit to `master` is deployable. Once development of a new Pico release is finished, trigger Pico's build & release process by pushing a new Git tag. This tag should reference a (usually empty) commit on `master`, which message should adhere to the following template:
```
Version 1.0.0
* [Security] ...
* [New] ...
* [Changed] ...
* [Fixed] ...
* [Removed] ...
```
Before pushing a new Git tag, make sure to update the `Pico::VERSION` and `Pico::VERSION_ID` constants. The versions of Pico's official [default theme](https://github.com/picocms/pico-theme) and the [`PicoDeprecated` plugin](https://github.com/picocms/pico-deprecated) both strictly follow Pico's version. Since Pico's pre-built release package contains them, you must always create a new release of them (even though nothing has changed) before creating a new Pico release.
If you're pushing a new major or minor release of Pico, you should also update Pico's `composer.json` to require the latest minor releases of Pico's dependencies. Besides, don't forget to update the `@version` tags in the PHP class docs.
Travis CI will draft the new [release on GitHub](https://github.com/picocms/Pico/releases) automatically, but will require you to manually amend the descriptions formatting. The latest Pico version is always available at https://github.com/picocms/Pico/releases/latest, so please make sure to publish this URL rather than version-specific URLs. [Packagist](http://packagist.org/packages/picocms/pico) will be updated automatically.
Labeling of Issues & Pull Requests
----------------------------------
Pico makes use of GitHub's label and milestone features, to aide developers in quickly identifying and prioritizing which issues need to be worked on. The starting point for labeling issues and pull requests is the `type` label, which is explained in greater detail below. The `type` label might get combined with a `pri` label, describing the issue's priority, and a `status` label, describing the current status of the issue.
Issues and pull requests labeled with `info: Feedback Needed` indicate that feedback from others is highly appreciated. We always appreciate feedback at any time and from anyone, but when this label is present, we explicitly *ask* you to give feedback. It would be great if you leave a comment!
- The `type: Bug` label is assigned to issues or pull requests, which have been identified as bugs or security issues in Pico's core. It might get combined with the `pri: High` label, when the problem was identified as security issue, or as a so-called "show stopper" bug. In contrast, uncritical problems might get labeled with `pri: Low`. `type: Bug` issues and pull requests are usually labeled with one of the following `status` labels when being closed:
- `status: Resolved` is used when the issue has been resolved.
- `status: Conflict` indicates a conflict with another issue or behavior of Pico, making it impossible to resolve the problem at the moment.
- `status: Won't Fix` means, that there is indeed a problem, but for some reason we made the decision that resolving it isn't reasonable, making it intended behavior.
- `status: Rejected` is used when the issue was rejected for another reason.
- The `type: Enhancement` and `type: Feature` labels are used to tag pull requests, which introduce either a comparatively small enhancement, or a "big" new feature. As with the `type: Bug` label, they might get combined with the `pri: High` or `pri: Low` labels to indicate the pull request's priority. If a pull request isn't mergeable at the moment, it is labeled with `status: Work In Progress` until development of the pull request is finished. After merging or closing the pull request, it is labeled with one of the `status` labels as described above for the `type: Bug` label.
- The `type: Idea` label is similar to the `type: Enhancement` and `type: Feature` labels, but is used for issues or incomplete and abandoned pull requests. It is otherwise used in the exact same way as `type: Enhancement` and `type: Feature`.
- The `type: Release` label is used in the exact same way as `type: Feature` and indicates the primary pull request of a new Pico release (please refer to the *Branching* and *Build & Release process* sections above).
- The `type: Notice`, `type: Question` and `type: Discussion` labels are used to indicate "fyi" issues, issues opened by users or developers asking questions, and issues with disucssions about arbitrary topics related to Pico. They are neither combined with `pri` labels, nor with `status` labels.
- The `type: Duplicate` label is used when there is already another issue or pull request related to this problem or feature request. Issues labeled with `type: Duplicate` are immediately closed.
- The `type: Invalid` label is used for everything else, e.g. issues or pull requests not related to Pico, or invalid bug reports. This includes supposed bug reports that concern actually intended behavior.
The `status: Deferred` label might get added to any open issue or pull request to indicate that it is still unresolved and will be resolved later. This is also true for the `info: Pinned` label: It indicates a important issue or pull request that remains open on purpose.
After resolving a issue, we usually keep it open for about a week to give users some more time for feedback and further questions. This is especially true for issues with the `type: Notice`, `type: Question`, `type: Discussion` and `type: Invalid` labels. After 7 days with no interaction, [Probot](https://probot.github.io/)'s [Stale](https://github.com/apps/stale) bot adds the `info: Stale` label to the issue to ask the participants whether the issue has been resolved. If no more activity occurs, the issue will be automatically closed by Stale bot 2 days later.
Issues and pull requests labeled with `info: Information Needed` indicate that we have asked one of the participants for further information and didn't receive any feedback yet. It is usually added after Stale bot adds the `info: Stale` label to give the participants some more days to give the necessary information.
Issues and pull requests, which are rather related to upstream projects (i.e. projects Pico depends on, like Twig), are additionally labeled with `info: Upstream`.
When a issue or pull request isn't directly related to Pico's core, but the project as a whole, it is labeled with `info: Meta`. Issues labeled with `info: Website` are related to [Pico's website](http://picocms.org), however, in this case it is usually expedient to move the issue to the [`picocms.github.io` repo](https://github.com/picocms/picocms.github.io) instead. The same applies to the `info: Pico CMS for Nextcloud` label; these issues are related to [Pico CMS for Nextcloud](https://apps.nextcloud.com/apps/cms_pico).

21
LICENSE 100644
View File

@ -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.

6
README.md 100644
View File

@ -0,0 +1,6 @@
# Link do sajta:
```
http://zapatista.kompot.si
```

257
README_Pico.md 100644
View File

@ -0,0 +1,257 @@
Pico
====
[![License](https://picocms.github.io/badges/pico-license.svg)](https://github.com/picocms/Pico/blob/master/LICENSE.md)
[![Version](https://picocms.github.io/badges/pico-version.svg)](https://github.com/picocms/Pico/releases/latest)
[![Build Status](https://api.travis-ci.org/picocms/Pico.svg?branch=master)](https://travis-ci.org/picocms/Pico)
[![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.
Screenshot
----------
![Pico Screenshot](https://picocms.github.io/screenshots/pico-21.png)
Install
-------
Installing Pico is dead simple - and done in seconds! If you have access to a shell on your server (i.e. SSH access), we recommend using [Composer][]. If not, use a pre-bundled release. If you don't know what "SSH access" is, head over to the pre-bundled release. 😇
Pico requires PHP 5.3.6+ and the PHP extensions `dom` and `mbstring` to be enabled.
### I want to use Composer
Starting with Pico 2.0 we recommend installing Pico using Composer whenever possible. Trust us, you won't regret it when it comes to upgrading Pico! Anyway, if you don't want to use Composer, or if you simply can't use Composer because you don't have access to a shell on your server, don't despair, installing Pico using a pre-bundled release is still easier than everything you know!
###### Step 1
Open a shell and navigate to the `httpdocs` directory (e.g. `/var/www/html`) of your server. Download Composer and run it with the `create-project` option to install it to the desired directory (e.g. `/var/www/html/pico`):
```shell
$ curl -sSL https://getcomposer.org/installer | php
$ php composer.phar create-project picocms/pico-composer pico
```
###### Step 2
What second step? There's no second step. That's it! Open your favorite web browser and navigate to your brand new, stupidly simple, blazing fast, flat file CMS! Pico's sample contents will explain how to create your own contents. 😊
### I want to use a pre-bundled release
Do you know the feeling: You want to install a new website, so you upload all files of your favorite CMS and run the setup script - just to find out that you forgot about creating the SQL database first? Later the setup script tells you that the file permissions are wrong. Heck, what does this even mean? Forget about it, Pico is different!
###### Step 1
[Download the latest Pico release][LatestRelease] and upload all files to the desired install directory of Pico within the `httpdocs` directory (e.g. `/var/www/html/pico`) of your server.
###### Step 2
Okay, here's the catch: There's no catch. That's it! Open your favorite web browser and navigate to your brand new, stupidly simple, blazing fast, flat file CMS! Pico's sample contents will explain how to create your own contents. 😊
### I want to manage my website using a Git repository
Git is a very powerful distributed version-control system - and it can be used to establish a nice workflow around your Pico website. Using a Git repository for your website aids content creation and deployment, including collaborative editing and version control. If you want to manage your website in a Git repository, you use a Composer-based installation.
1. Fork [Pico's Composer starter project][PicoComposerGit] using [GitHub's fork button][HelpFork]. If you don't want to use GitHub you aren't required to, you can choose whatever Git server you want. Forking manually just requires some extra steps: First clone the Git repository locally, add your Git server as a remote and push the repository to this new remote.
2. Clone your fork locally and add your contents and assets. You can edit Pico's `composer.json` to include 3rd-party plugins and themes, or simply add your own plugins and themes to Pico's `plugins` resp. `themes` directories. Don't forget to commit your changes and push them to your Git server.
3. Open a shell on your webserver and navigate to the `httpdocs` directory (e.g. `/var/www/html`). Download Composer, clone your Git repository to the desired directory (e.g. `/var/www/html/pico`) and install Pico's dependencies using Composer's `install` option:
```shell
$ curl -sSL https://getcomposer.org/installer | php
$ git clone https://github.com/<YOUR_USERNAME>/<YOUR_REPOSITORY> pico
$ php composer.phar --working-dir=pico install
```
4. If you update your website's contents, simply commit your changes and push them to your Git server. Open a shell on your webserver and navigate to Pico's install directory within the `httpdocs` directory (e.g. `/var/www/html/pico`) of your server. Pull all changes from your Git server and update Pico's dependencies using Composer's `update` option:
```shell
$ git pull
$ php composer.phar update
```
### I'm a developer
So, you're one of these amazing people making all of this possible? We love you folks! As a developer we recommend you to clone [Pico's Git repository][PicoGit] as well as the Git repositories of [Pico's default theme][PicoThemeGit] and the [`PicoDeprecated` plugin][PicoDeprecatedGit]. You can set up your workspace using [Pico's Composer starter project][PicoComposerGit] and include all of Pico's components using local packages.
Using Pico's Git repositories is different from using one of the installation methods elucidated above. It gives you the current development version of Pico, what is likely *unstable* and *not ready for production use*!
1. Open a shell and navigate to the desired directory of Pico's development workspace within the `httpdocs` directory (e.g. `/var/www/html/pico`) of your server. Download and extract Pico's Composer starter project into the `workspace` directory:
```shell
$ curl -sSL https://github.com/picocms/pico-composer/archive/master.tar.gz | tar xz
$ mv pico-composer-master workspace
```
2. Clone the Git repositories of all Pico components (Pico's core, Pico's default theme and the `PicoDeprecated` plugin) into the `components` directory:
```shell
$ mkdir components
$ git clone https://github.com/picocms/Pico.git components/pico
$ git clone https://github.com/picocms/pico-theme.git components/pico-theme
$ git clone https://github.com/picocms/pico-deprecated.git components/pico-deprecated
```
3. Instruct Composer to use the local Git repositories as replacement for the `picocms/pico` (Pico's core), `picocms/pico-theme` (Pico's default theme) and `picocms/pico-deprecated` (the `PicoDeprecated` plugin) packages. Update the `composer.json` of your development workspace (i.e. `workspace/composer.json`) accordingly:
```json
{
"repositories": [
{
"type": "path",
"url": "../components/pico",
"options": { "symlink": true }
},
{
"type": "path",
"url": "../components/pico-theme",
"options": { "symlink": true }
},
{
"type": "path",
"url": "../components/pico-deprecated",
"options": { "symlink": true }
}
],
"require": {
"picocms/pico": "dev-master",
"picocms/pico-theme": "dev-master",
"picocms/pico-deprecated": "dev-master",
"picocms/composer-installer": "^1.0"
}
}
```
4. Download Composer and run it with the `install` option:
```shell
$ curl -sSL https://getcomposer.org/installer | php
$ php composer.phar --working-dir=workspace install
```
You can now open your web browser and navigate to Pico's development workspace. All changes you make to Pico's components will automatically be reflected in the development workspace.
By the way, you can also find all of Pico's components on [Packagist.org][Packagist]: [Pico's core][PicoPackagist], [Pico's default theme][PicoThemePackagist], the [`PicoDeprecated` plugin][PicoDeprecatedPackagist] and [Pico's Composer starter project][PicoComposerPackagist].
Upgrade
-------
Do you remember when you installed Pico? It was ingeniously simple, wasn't it? Upgrading Pico is no difference! The upgrade process differs depending on whether you used [Composer][] or a pre-bundled release to install Pico. Please note that you should *always* create a backup of your Pico installation before upgrading!
Pico follows [Semantic Versioning 2.0][SemVer] and uses version numbers like `MAJOR`.`MINOR`.`PATCH`. When we update the `PATCH` version (e.g. `2.0.0` to `2.0.1`), we made backwards-compatible bug fixes. If we change the `MINOR` version (e.g. `2.0` to `2.1`), we added functionality in a backwards-compatible manner. Upgrading Pico is dead simple in both cases. Simply head over to the appropiate Upgrade sections below.
But wait, we forgot to mention what happens when we update the `MAJOR` version (e.g. `2.0` to `3.0`). In this case we made incompatible API changes. We will then provide a appropriate upgrade tutorial, so please head over to the ["Upgrade" page on our website][HelpUpgrade].
### I've used Composer to install Pico
Upgrading Pico is dead simple if you've used Composer to install Pico. Simply open a shell and navigate to Pico's install directory within the `httpdocs` directory (e.g. `/var/www/html/pico`) of your server. You can now upgrade Pico using just a single command:
```shell
$ php composer.phar update
```
That's it! Composer will automatically update Pico and all plugins and themes you've installed using Composer. Please make sure to manually update all plugins and themes you've installed manually.
### I've used a pre-bundled release to install Pico
Okay, installing Pico was easy, but upgrading Pico is going to be hard, isn't it? I'm afraid I have to disappoint you. It's just as simple as installing Pico!
First you'll have to delete the `vendor` directory of your Pico installation (e.g. if you've installed Pico to `/var/www/html/pico`, delete `/var/www/html/pico/vendor`). Then [download the latest Pico release][LatestRelease] and upload all files to your existing Pico installation directory. You will be prompted whether you want to overwrite files like `index.php`, `.htaccess`, ... - simply hit "Yes".
That's it! Now that Pico is up-to-date, you need to update all plugins and themes you've installed.
### I'm a developer
As a developer you should know how to stay up-to-date... 😉 For the sake of completeness, if you want to upgrade Pico, simply open a shell and navigate to Pico's development workspace (e.g. `/var/www/html/pico`). Then pull the latest commits from the Git repositories of [Pico's core][PicoGit], [Pico's default theme][PicoThemeGit] and the [`PicoDeprecated` plugin][PicoDeprecatedGit]. Let Composer update your dependencies and you're ready to go.
```shell
$ git -C components/pico pull
$ git -C components/pico-theme pull
$ git -C components/pico-deprecated pull
$ php composer.phar --working-dir=workspace update
```
Getting Help
------------
#### Getting Help as a user
If you want to get started using Pico, please refer to our [user docs][HelpUserDocs]. Please read the [upgrade notes][HelpUpgrade] if you want to upgrade from Pico 1.0 to Pico 2.0. You can find officially supported [plugins][OfficialPlugins] and [themes][OfficialThemes] on our website. A greater choice of third-party plugins and themes can be found in our [Wiki][] on the [plugins][WikiPlugins] or [themes][WikiThemes] pages respectively. If you want to create your own plugin or theme, please refer to the "Getting Help as a developer" section below.
#### Getting Help as a developer
If you're a developer, please refer to the "Contributing" section below and our [contribution guidelines][ContributionGuidelines]. To get you started with creating a plugin or theme, please read the [developer docs on our website][HelpDevDocs].
#### You still need help or experience a problem with Pico?
When the docs can't answer your question, you can get help by joining us on [#picocms on Freenode IRC][Freenode] ([logs][FreenodeLogs]). When you're experiencing problems with Pico, please don't hesitate to create a new [Issue][Issues] on GitHub. Concerning problems with plugins or themes, please refer to the website of the developer of this plugin or theme.
**Before creating a new Issue,** please make sure the problem wasn't reported yet using [GitHubs search engine][IssuesSearch]. Please describe your issue as clear as possible and always include the *Pico version* you're using. Provided that you're using *plugins*, include a list of them too. We need information about the *actual and expected behavior*, the *steps to reproduce* the problem, and what steps you have taken to resolve the problem by yourself (i.e. *your own troubleshooting*).
Contributing
------------
You want to contribute to Pico? We really appreciate that! You can help make Pico better by [contributing code][PullRequests] or [reporting issues][Issues], but please take note of our [contribution guidelines][ContributionGuidelines]. In general you can contribute in three different areas:
1. Plugins & Themes: You're a plugin developer or theme designer? We love you folks! You can find tons of information about how to develop plugins and themes at http://picocms.org/development/. If you have created a plugin or theme, please add it to our [Wiki][], either on the [plugins][WikiPlugins] or [themes][WikiThemes] page. You may also [Submit][] it to our website, where it'll be displayed on the official [plugin][OfficialPlugins] or [theme][OfficialThemes] pages!
2. Documentation: We always appreciate people improving our documentation. You can either improve the [inline user docs][EditInlineDocs] or the more extensive [user docs on our website][EditUserDocs]. You can also improve the [docs for plugin and theme developers][EditDevDocs]. Simply fork our website's Git repository from https://github.com/picocms/picocms.github.io, change the Markdown files and open a [pull request][PullRequestsWebsite].
3. Pico's Core: The supreme discipline is to work on Pico's Core. Your contribution should help *every* Pico user to have a better experience with Pico. If this is the case, fork Pico from https://github.com/picocms/Pico and open a [pull request][PullRequests]. We look forward to your contribution!
By contributing to Pico, you accept and agree to the *Developer Certificate of Origin* for your present and future contributions submitted to Pico. Please refer to the ["Developer Certificate of Origin" section in our `CONTRIBUTING.md`][ContributionGuidelinesDCO].
You don't have time to contribute code to Pico, but still want to "stand a coffee" for the ones who do? You can contribute monetary to Pico using [Bountysource][], a crowd funding website that focuses on individual issues and feature requests. Just refer to the "Bounties and Fundraisers" section below for more info.
Bounties and Fundraisers
------------------------
Pico uses [Bountysource][] to allow monetary contributions to the project. Bountysource is a crowd funding website that focuses on individual issues and feature requests in Open Source projects using micropayment. Users, or "Backers", can pledge money for fixing a specific issue, implementing new features, or developing a new plugin or theme. Open source software developers, or "Bounty Hunters", can then pick up and solve these tasks to earn the money.
Obviously this won't allow a developer to replace a full time job, it's rather aiming to "stand a coffee". However, it helps bringing users and developers closer together, and shows developers what users want and how much they care about certain things. Nevertheless you can still donate money to the project itself, as an easy way to say "Thank You" and to support Pico.
If you want to encourage developers to [fix a specific issue][Issues] or implement a feature, simply [pledge a new bounty][Bountysource] or back an existing one.
As a developer you can pick up a bounty by simply contributing to Pico (please refer to the "Contributing" section above). You don't have to be a official Pico Contributor! Pico is a Open Source project, anyone can open [pull requests][PullRequests] and claim bounties.
Official Pico Contributors won't claim bounties on their own behalf, Pico will never take any money out of Bountysource. All money collected by Pico is used to pledge new bounties or to support projects Pico depends on.
[Composer]: https://getcomposer.org/
[LatestRelease]: https://github.com/picocms/Pico/releases/latest
[PicoGit]: https://github.com/picocms/Pico
[PicoThemeGit]: https://github.com/picocms/pico-theme
[PicoDeprecatedGit]: https://github.com/picocms/pico-deprecated
[PicoComposerGit]: https://github.com/picocms/pico-composer
[Packagist]: https://packagist.org/
[PicoPackagist]: https://packagist.org/packages/picocms/pico
[PicoThemePackagist]: https://packagist.org/packages/picocms/pico-theme
[PicoDeprecatedPackagist]: https://packagist.org/packages/picocms/pico-deprecated
[PicoComposerPackagist]: https://packagist.org/packages/picocms/pico-composer
[SemVer]: http://semver.org
[HelpFork]: https://help.github.com/en/github/getting-started-with-github/fork-a-repo
[HelpUpgrade]: http://picocms.org/in-depth/upgrade/
[HelpUserDocs]: http://picocms.org/docs/
[HelpDevDocs]: http://picocms.org/development/
[Submit]: http://picocms.org/in-depth/submission_guidelines
[OfficialPlugins]: http://picocms.org/plugins/
[OfficialThemes]: http://picocms.org/themes/
[Wiki]: https://github.com/picocms/Pico/wiki
[WikiPlugins]: https://github.com/picocms/Pico/wiki/Pico-Plugins
[WikiThemes]: https://github.com/picocms/Pico/wiki/Pico-Themes
[Issues]: https://github.com/picocms/Pico/issues
[IssuesSearch]: https://github.com/picocms/Pico/search?type=Issues
[Freenode]: https://webchat.freenode.net/?channels=%23picocms
[FreenodeLogs]: http://picocms.org/irc-logs
[PullRequests]: https://github.com/picocms/Pico/pulls
[PullRequestsWebsite]: https://github.com/picocms/picocms.github.io/pulls
[ContributionGuidelines]: https://github.com/picocms/Pico/blob/master/CONTRIBUTING.md
[ContributionGuidelinesDCO]: https://github.com/picocms/Pico/blob/master/CONTRIBUTING.md#developer-certificate-of-origin
[EditInlineDocs]: https://github.com/picocms/Pico/edit/master/content-sample/index.md
[EditUserDocs]: https://github.com/picocms/picocms.github.io/tree/master/_docs
[EditDevDocs]: https://github.com/picocms/picocms.github.io/tree/master/_development
[Bountysource]: https://www.bountysource.com/teams/picocms

1
assets/.gitignore vendored 100644
View File

@ -0,0 +1 @@
# This file is meant to be empty

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
assets/image.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

36
composer.json 100644
View File

@ -0,0 +1,36 @@
{
"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"
},
"minimum-stability": "beta",
"prefer-stable": true
}

576
composer.lock generated 100644
View File

@ -0,0 +1,576 @@
{
"_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": "0b9d655a6a4c0dc25a83944d34a1d893",
"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"
],
"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"
],
"time": "2018-05-08T21:54:32+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"
],
"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"
],
"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"
],
"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"
],
"time": "2020-08-29T15:11:43+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.18.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "1c302646f6efc070cd46856e600e5e0684d6b454"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454",
"reference": "1c302646f6efc070cd46856e600e5e0684d6b454",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.18-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"
],
"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": "2020-07-14T12:35:20+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",
"time": "2018-11-11T11:18:13+00:00"
},
{
"name": "twig/twig",
"version": "v1.36.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "730c9c4471b5152d23061feb02b03382264c8a15"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/730c9c4471b5152d23061feb02b03382264c8a15",
"reference": "730c9c4471b5152d23061feb02b03382264c8a15",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/polyfill-ctype": "^1.8"
},
"require-dev": {
"psr/container": "^1.0",
"symfony/debug": "^2.7",
"symfony/phpunit-bridge": "^3.4.19|^4.1.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.36-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": "Armin Ronacher",
"email": "armin.ronacher@active-4.com",
"role": "Project Founder"
},
{
"name": "Twig Team",
"homepage": "https://twig.symfony.com/contributors",
"role": "Contributors"
}
],
"description": "Twig, the flexible, fast, and secure template language for PHP",
"homepage": "https://twig.symfony.com",
"keywords": [
"templating"
],
"time": "2018-12-16T10:34:11+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "beta",
"stability-flags": {
"picocms/pico": 0,
"picocms/pico-theme": 0,
"picocms/pico-deprecated": 0
},
"prefer-stable": true,
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
"plugin-api-version": "1.1.0"
}

1
config/.gitignore vendored 100644
View File

@ -0,0 +1 @@
# This file is meant to be empty

60
config/config.yml 100644
View File

@ -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: Travelify-tr00 # 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 }}

1
content/.gitignore vendored 100644
View File

@ -0,0 +1 @@
# This file is meant to be empty

9
content/404.md 100644
View File

@ -0,0 +1,9 @@
---
Title: Error 404
Robots: noindex,nofollow
---
Error 404
=========
Woops. Looks like this page doesn't exist.

14
content/_meta.md 100644
View File

@ -0,0 +1,14 @@
---
Logo: %theme_url%/img/pico-white.svg
Tagline: Pico CMS for Nextcloud in action.
Social:
- title: Visit us on GitHub
url: https://github.com/picocms/Pico
icon: octocat
- title: Join us on Freenode IRC Webchat
url: https://webchat.freenode.net/?channels=%23picocms
icon: chat
- title: Help us by creating/collecting bounties and pledging to fundraisers
url: https://www.bountysource.com/teams/picocms
icon: dollar
---

23
content/gora.md 100644
View File

@ -0,0 +1,23 @@
---
## Title: Gora na odprtem morju
Description: Sedem ljudi bo sestavljala pomorska enota zapatistične delegacije, ki poleti prihaja v Evropo.
---
# Gora na odprtem morju
(5.maj 2021)
![Ladjagora](%assets_url%/druga_slika.jpg)
Sedem ljudi bo sestavljala pomorska enota zapatistične delegacije, ki poleti prihaja v Evropo. Štiri moški, dve ženski in ena druga oseba. 4, 2, 1. 421. enota se je 3. maja z jadrnico “La Montaña”, odpravila preko Atlantskega oceana na isto pot, toda v obratni smeri od tiste, ki jo je pred 502 letoma opravil Hernán Cortés. Jadrnica bo predvidoma v nekaj tednih priplula v pristanišče Vigo na severo-zahodu Španije. Od tam bo zapatistična karavana, ki se ji bodo vmes pridruževali novi člani in članice, po dolgem in počez, predvsem pa od spodaj, prekrižarili Evropo.
Protokol prihoda na evropska tla je že znan. Nanjo ne bo prvo stopila niti moška, niti ženska noga, temveč noga Marijose, ki ima noge druge oziroma drugega. Takoj zatem, ko bo prva oseba stopila na evropska tla in se opomogla od morske bolezni, bo na ves glas razglasila: "Predaj se, hetero-patriarhalen bledoličnež, ki preganjaš tiste, ki so drugačni!".
OK, to je samo šala. Zapatistični humor, ki ga bo letos poleti marsikdo imel priložnost pobližje spoznati.
V resnici bo Marijose slovesno in dostojanstveno rekla: *"v imenu zapatističnih ženk, otrok, moških, starejših in seveda ostalih razglašam, da se bo ta dežela, ki jo njeni prebivalci in prebivalke trenutno imenujejo Evropa, od sedaj naprej imenovala* **SLUMIL K´AJXEMK´OP**, kar pomeni "Uporna dežela" oziroma "Dežela, ki se ne predaja". Pod tem imenom jo bodo poznala njena ljudstva in vsi ostali vse dokler bo v njej živel vsaj še kdo, ki se ne predaja, proda ali odneha.
Zapatisti in zapatiske so torej na poti v Evropo z namenom, da bi izpeljali
srečanja, pogovore, izmenjave idej, izkušenj, analiz in ocen med tistimi, ki se iz različnih izhodišč in na različnih področjih zavzemamo za boj za življenje.

92
content/index.md 100644
View File

@ -0,0 +1,92 @@
---
Title: Zapatisti prihajajo
Description: Spletno mesto za obveščanje o anarhističnem organiziranju
---
## Tukajle je ena
Damo kakšno sliko tukaj?
![Ladjica](%assets_url%/prva_slika.jpeg)
## Primer iz privzete teme:
Pico is a flat file CMS. This means there is no administration backend or
database to deal with. You simply create `.md` files in the `content` folder
and those files become your pages. For example, this file is called `index.md`
and is shown as the main landing page.
When you install Pico, it comes with some sample contents that will display
until you add your own content. Simply add some `.md` files to your `content`
folder in Pico's root directory. No configuration is required, Pico will
automatically use the `content` folder as soon as you create your own
`index.md`. Just check out [Pico's sample contents][SampleContents] for an
example!
If you create a folder within the content directory (e.g. `content/sub`) and
put an `index.md` inside it, you can access that folder at the URL
`%base_url%?sub`. If you want another page within the sub folder, simply create
a text file with the corresponding name and you will be able to access it
(e.g. `content/sub/page.md` is accessible from the URL `%base_url%?sub/page`).
Below we've shown some examples of locations and their corresponding URLs:
## Primer tabele
<table style="width: 100%; max-width: 40em;">
<thead>
<tr>
<th style="width: 50%;">Physical Location</th>
<th style="width: 50%;">URL</th>
</tr>
</thead>
<tbody>
<tr>
<td>content/index.md</td>
<td><a href="%base_url%">/</a></td>
</tr>
<tr>
<td>content/sub.md</td>
<td><del>?sub</del> (not accessible, see below)</td>
</tr>
<tr>
<td>content/sub/index.md</td>
<td><a href="%base_url%?sub">?sub</a> (same as above)</td>
</tr>
<tr>
<td>content/sub/page.md</td>
<td><a href="%base_url%?sub/page">?sub/page</a></td>
</tr>
<tr>
<td>content/theme.md</td>
<td><a href="%base_url%?theme">?theme</a> (hidden in menu)</td>
</tr>
<tr>
<td>content/a/very/long/url.md</td>
<td>
<a href="%base_url%?a/very/long/url">?a/very/long/url</a>
(doesn't exist)
</td>
</tr>
</tbody>
</table>
## Dokumentacija
For more help have a look at the Pico documentation at http://picocms.org/docs.
[Pico]: http://picocms.org/
[PicoTheme]: https://github.com/picocms/pico-theme
[App]: https://apps.nextcloud.com/apps/cms_pico
[SampleContents]: https://github.com/picocms/Pico/tree/master/content-sample
[Markdown]: http://daringfireball.net/projects/markdown/syntax
[MarkdownExtra]: https://michelf.ca/projects/php-markdown/extra/
[YAML]: https://en.wikipedia.org/wiki/YAML
[Twig]: http://twig.sensiolabs.org/documentation
[UnixTimestamp]: https://en.wikipedia.org/wiki/Unix_timestamp
[Composer]: https://getcomposer.org/
[FeaturesHttpParams]: http://picocms.org/in-depth/features/http-params/
[FeaturesPageTree]: http://picocms.org/in-depth/features/page-tree/
[FeaturesPagesFunction]: http://picocms.org/in-depth/features/pages-function/
[WikiThemes]: https://github.com/picocms/Pico/wiki/Pico-Themes
[WikiPlugins]: https://github.com/picocms/Pico/wiki/Pico-Plugins
[OfficialThemes]: http://picocms.org/themes/
[PluginUpgrade]: http://picocms.org/development/#upgrade

54
content/izjava.md 100644
View File

@ -0,0 +1,54 @@
---
Title: Izjava za življenje
Description: zapatisti
---
# ZA ŽIVLJENJE
1\. januar 2021
LJUDSTVOM SVETA:
LJUDEM, KI SE BOJUJEJO NA PETIH CELINAH:
SESTRAM, BRATOM IN TOVARIŠICAM_EM:
V zadnjih mesecih smo se med seboj povezale_i na različne načine. Smo ženske, lezbijke, geji, biseksualke_ci, transspolne_i, transvestiti_ke, transseksualci_ke, interseksualci_ke, kvir in drugo, moški, skupine, kolektivi, združenja, organizacije, družbena gibanja, staroselska ljudstva, sosedska združenja, skupnosti in dolgi intakodalje, ki nam daje identiteto.
Razlikujejo in ločujejo nas dežele, obnebja, gore, doline, stepe, pragozdovi, puščave, oceani, jezera, reke, potoki, lagune, rase, kulture, jeziki, zgodbe, starosti, geografije, spolne in nespolne identitete, korenine, meje, organizacijske oblike, družbeni razredi, kupna moč, družbeni prestiž, sloves, priljubljenost, sledilci, všečki, valute, stopnja izobrazbe, značaji, opravki, vrline, napake, plusi, minusi, ampak-i, vendar-ji, rivalstva, sovražnosti, pogledi, argumenti, protiargumenti, razprave, spori, pritožbe, obtožbe, zaničevanja, fobije, nagnjenja, pohvale, zavrnitve, žvižgi, aplavzi, božanstva, demoni, dogme, herezije, kar nam je všeč, kar nam ni všeč, vedenja in dolgi intakodalje, zaradi katerega se razlikujemo in si ne tako redko nasprotujemo.
**Združuje nas le peščica stvari:**
**To, da tegobe na svetu jemljemo za svoje:** nasilje nad ženskami; preganjanje in preziranje drugačnih po afektivni, emotivni in spolni identiteti; uničenje otroštva; genocid nad staroselci; rasizem; militarizem; izkoriščanje; ropanje; uničenje narave.
**Razumevanje**, da je za te tegobe odgovoren sistem. Izkoriščevalski, patriarhalni, piramidalni, rasistični, lopovski in zločinski krvnik: kapitalizem.
**Spoznanje**, da tega sistema ni mogoče reformirati, vzgojiti, ublažiti, obrusiti, udomačiti, počlovečiti.
**Zaveza**, da se bomo zoper ta sistem bojevale_i povsod in vselej vsak_a na svojem področju , dokler ga ne bomo popolnoma uničile_i. Preživetje človeštva je odvisno od uničenja kapitalizma. Ne uklanjamo se, nismo na prodaj in ne popuščamo.
**Gotovost**, da boj za človeštvo poteka po vsem svetu. Tako kot uničevanje, ki gre svojo pot in se ne ozira na meje, narodnosti, zastave, jezike, kulture, rase; tako boj za človeštvo poteka povsod, vseskozi.
**Prepričanje**, da na svetu živi in se bojuje veliko svetov. In da so vsa prizadevanja za homogenizacijo in hegemonijo napad na človekovo bistvo: svobodo. Enakost človeštva je v spoštovanju drugačnosti. Podobno si je v svoji različnosti.
**Spoznanje**, da nam napredka ne omogoča želja po vsiljevanju svojega pogleda, svojih korakov, družbe, poti in usod, temveč posluh in pogled drugega, ki se, različen in drugačen, prav tako zavzema za svobodo in pravičnost.
Zaradi teh ujemanj smo, ne da bi opustili svoja prepričanja ali nehali biti, kar smo, sklenile_i:
**Prvič** Izpeljati srečanja, pogovore, izmenjave idej, izkušenj, analiz in ocen med tistimi, ki se iz različnih izhodišč in na različnih področjih zavzemamo za boj za življenje. Potem bo vsakdo nadaljeval svojo pot ali pa ne. Gledati in poslušati drugega nam bo morda pomagalo pri našem naslednjem koraku ali pa ne. Toda spoznavanje različnosti, je tudi že del našega boja in naših prizadevanj, naše človečnosti.
**Drugič** Da se ta srečanja in dejavnosti izvedejo na petih celinah. Da se v Evropi odvijejo julija, avgusta, septembra in oktobra leta 2021, in sicer ob neposredni udeležbi mehiške delegacije, sestavljene iz CNI-CIG, Fronte ljudstev za obrambo vode in zemlje iz Morelosa, Pueble in Tlaxcale ter EZLN. Pozneje natančno kdaj, bomo še določili se bomo po svojih zmožnostih zavzele_i še za izvedbo srečanj v Aziji, Afriki, Oceaniji in Ameriki.
**Tretjič** Povabiti tiste, ki jih pestijo podobne skrbi in se posvečajo podobnim bojem, vse poštene ljudi in vse tiste spodaj, ki se upirajo in vztrajajo na številnih koncih sveta, naj se pridružijo, prispevajo, podprejo in sodelujejo na teh srečanjih in dejavnostih; in da podpišejo ter za svojo vzamejo to izjavo ZA ŽIVLJENJE.
Z enega izmed mostov dostojanstva, ki združuje pet celin.
Me_i.
Planet Zemlja
1\. januarja 2021.
*Iz raznolikih, nehomogenih, drugačnih, nepodobnih, neenakih, oddaljenih
in različnih koncev sveta (v umetnosti, znanosti in boju v odporu in uporu)*

20
content/kdosmo.md 100644
View File

@ -0,0 +1,20 @@
---
## Title: Kdo smo?
Description: mi smo
---
# Kdo smo?
Oktobra 2020 so zapatisti in zapatistke v izjavi **Šesti del: Gora na odprtem morju**
mrežam upora na vseh koncih sveta sporočili, da bodo v prihodnjem obdobju organizirali
potovanje različnih zapatističnih delegacij na vseh pet kontinentov, ter da bo njihova
prva odprava v juliju, avgustu, septembru in oktobru 2021 obiskala evropski kontinent.
Namen potovanja: *Izpeljati srečanja, pogovore, izmenjave idej, izkušenj, analiz in ocen
med tistimi, ki se iz različnih izhodišč in na različnih področjih zavzemamo za boj za
življenje.*
Z namenom priprave srečanj z zapatistično delegacijo na teritoriju Slovenije se je oblikovala regionalna Koordinacija. Sestavljajo jo skupine, posameznice in posamezniki, ki se strinjajo z deklaracijo [Za življenje](https://obzorje.kompot.si/apps/cms_pico/pico/pico_sajt/izjava) in tako na teritoriju Slovenije kot v širši geografiji delujejo v skladu z njo. Gre za antiavtoritarno koordinacijo in v njej ne sodelujejo politične stranke,
vključno z njihovimi podmladki ali drugimi strukturami, nevladne organizacije in institucije. Koordinacija odločitve na skupščinah in drugače sprejema na podlagi razprav in konsenza.

View File

@ -0,0 +1,9 @@
---
title: Navigation bar
---
- [Domov](%base_url%)
- [Kdo smo?](%base_url%?kdosmo)
- [Izjava za življenje](%base_url%?izjava)
- [Novice](%base_url%?gora)

View File

@ -0,0 +1,7 @@
---
title: Links
---
* [Enlace Zapatista](https://enlacezapatista.ezln.org.mx/)
* [Koordinacija za teritorij Grčije](https://karavanizapatista.espivblogs.net/)
* [Komunal - neodvisna medijska platforma](http://komunal.org/)

View File

@ -0,0 +1,5 @@
---
---
* ![Ladjica](%assets_url%/prva_slika.png)

View File

@ -0,0 +1,13 @@
---
## Title: MENI vnos
## Naš podsajt
Primer strani, ki smo jo uredili.
Da ni privzeto, ampak malo drugače.
### Podnaslov
Še nekaj malega spodaj...

View File

@ -0,0 +1,11 @@
---
Title: Sub Page
---
## This is a Sub Page
This is `page.md` in the `sub` folder.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies tristique nulla et mattis. Phasellus id massa eget nisl congue blandit sit amet id ligula. Praesent et nulla eu augue tempus sagittis. Mauris faucibus nibh et nibh cursus in vestibulum sapien egestas. Curabitur ut lectus tortor. Sed ipsum eros, egestas ut eleifend non, elementum vitae eros. Mauris felis diam, pellentesque vel lacinia ac, dictum a nunc. Mauris mattis nunc sed mi sagittis et facilisis tortor volutpat. Etiam tincidunt urna mattis erat placerat placerat ac eu tellus. Ut nec velit id nisl tincidunt vehicula id a metus. Pellentesque erat neque, faucibus id ultricies vel, mattis in ante. Donec lobortis, mauris id congue scelerisque, diam nisl accumsan orci, condimentum porta est magna vel arcu. Curabitur varius ante dui. Vivamus sit amet ante ac diam ullamcorper sodales sed a odio.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies tristique nulla et mattis. Phasellus id massa eget nisl congue blandit sit amet id ligula. Praesent et nulla eu augue tempus sagittis. Mauris faucibus nibh et nibh cursus in vestibulum sapien egestas. Curabitur ut lectus tortor. Sed ipsum eros, egestas ut eleifend non, elementum vitae eros. Mauris felis diam, pellentesque vel lacinia ac, dictum a nunc. Mauris mattis nunc sed mi sagittis et facilisis tortor volutpat. Etiam tincidunt urna mattis erat placerat placerat ac eu tellus. Ut nec velit id nisl tincidunt vehicula id a metus. Pellentesque erat neque, faucibus id ultricies vel, mattis in ante. Donec lobortis, mauris id congue scelerisque, diam nisl accumsan orci, condimentum porta est magna vel arcu. Curabitur varius ante dui. Vivamus sit amet ante ac diam ullamcorper sodales sed a odio.

154
content/theme.md 100644
View File

@ -0,0 +1,154 @@
---
title: Theme Styling Test
hidden: true
---
Theme Styling Test
==================
This is `theme.md` in Pico's content directory. This page doesn't show up in the website's menu due to `hidden: true` in the page's YAML header. The purpose of this page is to aid theme development - below you'll find basically every format that is possible with Markdown. If you develop a theme, you should make sure that all examples below show decent.
Text
----
**Lorem ipsum dolor sit amet,** consectetur adipisici elit, *sed eiusmod tempor* incidunt ut labore et dolore magna aliqua.[^1] ~~Ut enim ad minim veniam,~~ quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.[^2] [Quis aute iure reprehenderit][Link] in voluptate velit esse cillum dolore eu fugiat nulla pariatur. `Excepteur` sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Headings
--------
# h1
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
## h2
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
### h3
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
#### h4
Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
##### h5
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.
###### h6
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Horizontal line
---------------
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
---
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
List
----
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
* Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
2. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
3. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
* Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
- Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
1. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.
2. At vero eos et accusam et justo duo dolores et ea rebum.
1. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
2. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
3. At vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
Definition list
---------------
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Duis autem
: Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
Lorem ipsum dolor sit amet
: Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Ut wisi enim ad minim veniam
: Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
: Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
Blockquote
----------
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
> Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
> molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero
> eros et accumsan et iusto odio dignissim qui blandit praesent luptatum
> zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum
> dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod
> tincidunt ut laoreet dolore magna aliquam erat volutpat.
>
> > Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit
> > lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure
> > dolor in hendrerit in vulputate velit esse molestie consequat, vel illum
> > dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio
> > dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te
> > feugait nulla facilisi.
>
> Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet
> doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
> laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam,
> quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
> ea commodo consequat.
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.
Code block
----------
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
```
<!DOCTYPE html>
<html>
<head>
<title>This is a title</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
```
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Table
-----
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum | Duis autem vel eum | Ut wisi enim ad minim veniam
----------- | ------------------ | ----------------------------
**Duis autem vel eum iriure dolor** in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. | *Lorem ipsum dolor sit amet,* consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. | ~~Ut wisi enim ad minim veniam,~~ quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
[Duis autem vel eum iriure dolor][Link] in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. | `Nam liber tempor` cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. | Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. | | Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
*[Lorem ipsum]: Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.
[Link]: %base_url% "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat."
[^1]: Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
[^2]: Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

39
index.php 100644
View File

@ -0,0 +1,39 @@
<?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/blob/master/index.php.dist>
*
* SPDX-License-Identifier: MIT
* License-Filename: LICENSE
*/
// check PHP platform requirements
if (PHP_VERSION_ID < 50306) {
die('Pico requires PHP 5.3.6 or above to run');
}
if (!extension_loaded('dom')) {
die("Pico requires the PHP extension 'dom' to run");
}
if (!extension_loaded('mbstring')) {
die("Pico requires the PHP extension 'mbstring' to run");
}
// load dependencies
require_once(__DIR__ . '/vendor/autoload.php');
// 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();

2
plugins/.gitignore vendored 100644
View File

@ -0,0 +1,2 @@
# You should add plugins installed by Composer here
/PicoDeprecated

Binary file not shown.

After

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

View File

@ -0,0 +1,107 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>{% if meta.title %}{{ meta.title }}{% else %}{{ site_title }}{% endif %}</title>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
{% if meta.description %}
<meta name="description" content="{{ meta.description|striptags }}">
{% endif %}{% if meta.robots %}
<meta name="robots" content="{{ meta.robots }}">
{% endif %}
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700" type="text/css" />
<link rel='stylesheet' href='{{ theme_url }}/styles/style.css' type='text/css'/>
<link rel='stylesheet' href='{{ theme_url }}/styles/unslider.css' type='text/css'/>
<link rel='stylesheet' href='{{ theme_url }}/styles/unslider-dots.css' type='text/css'/>
<script src="{{ theme_url }}/scripts/jquery-3.1.1.min.js"></script>
<script src="{{ theme_url }}/scripts/tinynav.min.js"></script>
<script src="{{ theme_url }}/scripts/unslider-min.js"></script>
</head>
<body>
<div class="wrapper">
<header id="branding">
<div class="container clearfix">
<div class="hgroup-wrap clearfix">
<section class="hgroup-right">
<img src='{{ theme_url }}/images/prva_slika.jpeg'>
</section>
<hgroup id="site-logo" class="clearfix">
<h1 id="site-title"><a href={{ base_url }}>{{ site_title }}</a></h1>
<h2 id="site-description">{{ config.site_subtitle }}</h2>
</hgroup>
</div>
</div>
<nav id="main-nav" class="clearfix">
{{ 'navbar'|content }}
</nav>
{% if current_page.id == 'index' %} {# only show sliders at index page #}
<div class="featured-slider" >
{{ 'slider'|content }}
</div>
<script>
$('.featured-slider').unslider({
animation: 'fade',
autoplay: true,
nav: false,
arrows: false
});
</script>
{% endif %}
</header>
<div id="main" class="clearfix">
<div>
<div id="primary" class="no-margin-left">
<div id="content">
<section class="page">
<article>
{{ content }}
</article>
</section>
</div>
</div>
<div id="secondary">
{% for page in pages %}
{% if page.id starts with current_page.id|split('/')|slice(0,-1)|join('/') ~ '/sidebars/' %} {# page-specfic sidebars should be placed before global ones #}
<aside class="widget">
<h3 class="widget-title">{{ page.title }}</h3>
{{ page.id|content }}
</aside>
{% endif %}
{% endfor %}
{% for page in pages %}
{% if page.id starts with 'sidebars/' %} {# global sidebars #}
<aside class="widget">
<h3 class="widget-title">{{ page.title }}</h3>
{{ page.id|content }}
</aside>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<footer id="footerarea" class="clearfix">
<div id="site-generator">
<div class="container">
<div class="copyright">Copyright &copy; 2017 <span>{{ config.site_copyright }}</span>.
</div>
<div class="footer-right">Theme <a href="https://github.com/xupefei/Travelify">Travelify</a> ported by Paddy Xu.</div>
<div style="clear:both;"></div>
</div>
</div>
</footer>
</div>
<script>
$(function () {
$("#main-nav").children(0).tinyNav({header: 'Navigation'});
});
</script>
<script>
$(document.links).filter(function() {
return this.hostname != window.location.hostname;
}).attr('target', '_blank');
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
/*! http://tinynav.viljamis.com v1.2 by @viljamis */
(function(a,k,g){a.fn.tinyNav=function(l){var c=a.extend({active:"selected",header:"",indent:"- ",label:""},l);return this.each(function(){g++;var h=a(this),b="tinynav"+g,f=".l_"+b,e=a("<select/>").attr("id",b).addClass("tinynav "+b);if(h.is("ul,ol")){""!==c.header&&e.append(a("<option/>").text(c.header));var d="";h.addClass("l_"+b).find("a").each(function(){d+='<option value="'+a(this).attr("href")+'">';var b;for(b=0;b<a(this).parents("ul, ol").length-1;b++)d+=c.indent;d+=a(this).text()+"</option>"});
e.append(d);c.header||e.find(":eq("+a(f+" li").index(a(f+" li."+c.active))+")").attr("selected",!0);e.change(function(){k.location.href=a(this).val()});a(f).after(e);c.label&&e.before(a("<label/>").attr("for",b).addClass("tinynav_label "+b+"_label").append(c.label))}})}})(jQuery,this,0);

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,43 @@
/**
* Here's where everything gets included. You don't need
* to change anything here, and doing so might break
* stuff. Here be dragons and all that.
*/
/**
* Default variables
*
* While these can be set with JavaScript, it's probably
* better and faster to just set them here, compile to
* CSS and include that instead to use some of that
* hardware-accelerated goodness.
*/
.unslider-nav {
/* position the navigation dots over the slides */
opacity: 0.7;
position: absolute;
left: 0;
right: 0;
top: 79%;
z-index: 1000; /* Make sure the dots show over the images */
}
.unslider-nav ol {
list-style: none;
text-align: center;
}
.unslider-nav ol li {
display: inline-block;
width: 6px;
height: 6px;
margin: 0 4px;
background: transparent;
border-radius: 5px;
overflow: hidden;
text-indent: -999em;
border: 2px solid #fff;
cursor: pointer;
}
.unslider-nav ol li.unslider-active {
background: #fff;
cursor: default;
}

View File

@ -0,0 +1 @@
.unslider{overflow:auto;margin:0;padding:0}.unslider-wrap{position:relative}.unslider-wrap.unslider-carousel>li{float:left}.unslider-vertical>ul{height:100%}.unslider-vertical li{float:none;width:100%}.unslider-fade{position:relative}.unslider-fade .unslider-wrap li{position:absolute;left:0;top:0;right:0;z-index:8}.unslider-fade .unslider-wrap li.unslider-active{z-index:10}.unslider li,.unslider ol,.unslider ul{list-style:none;margin:0;padding:0;border:none}.unslider-arrow{position:absolute;left:20px;z-index:2;cursor:pointer}.unslider-arrow.next{left:auto;right:20px}

View File

@ -0,0 +1,135 @@
Pico Default Theme Changelog
============================
**Note:** This changelog only provides technical information about the changes
introduced with a particular Pico version, and is meant to supplement
the actual code changes. The information in this changelog are often
insufficient to understand the implications of larger changes. Please
refer to both the UPGRADE and NEWS sections of the docs for more
details.
### Version 2.1.4
Released: 2020-08-29
```
* [Changed] Don't setup nav toggle JavaScript when there's no menu
```
### Version 2.1.3
Released: 2020-07-10
No changes
### Version 2.1.2
Released: 2020-04-10
No changes
### Version 2.1.1
Released: 2019-12-31
No changes
### Version 2.1.0
Released: 2019-11-24
```
* [New] Add Pico's official logo and tagline
* [New] Add some utility classes for typography and images
* [Changed] Improve documentation of `pico-theme.yml`
* [Changed] Various small improvements
```
### Version 2.1.0-beta.1
Released: 2019-11-03
```
* [Changed] Add basic `pico-theme.yml` to use API v3, enable Twig's autoescape
feature (no changes necessary) and register `Social` meta header
* [Changed] Use Pico's `pages` Twig function to create the main navigation
* [Changed] Improve formatting of definition lists and inline code snippets
* [Changed] Improve JSDoc class docs
* [Changed] Various small improvements
```
### Version 2.0.5-beta.1
Released: 2019-01-03
```
* [New] Add `2.0.x-dev` alias for master branch to `composer.json`
```
### Version 2.0.4
Released: 2018-12-17
No changes
### Version 2.0.3
Released: 2018-12-03
No changes
### Version 2.0.2
Released: 2018-08-12
No changes
### Version 2.0.1
Released: 2018-07-29
No changes
### Version 2.0.0
Released: 2018-07-01
```
* [New] Add Bountysource
* [Changed] Improve documentation
```
### Version 2.0.0-beta.3
Released: 2018-04-07
No changes
### Version 2.0.0-beta.2
Released: 2018-01-21
```
* [Fixed] Fix sliding animation of collapsible menu in IE 9
* [Changed] Move Fontello font to `icon/` directory
* [Changed] Move stylesheets to `css/` directory
* [Changed] Improve Fontello font copyright notice
* [Changed] Add Droid Sans and Droid Sans Mono font files to `font/` directory,
making Pico's default theme fully self-containing
```
### Version 2.0.0-beta.1
Released: 2017-11-05
**Note:** Pico's default theme was completely rewritten from scratch for
Pico 2.0 and moved to this separate repository. This changelog only
provides basic information about the most important changes compared
to Pico 1.0. It therefore doesn't include the changes made before
this release. The rewrite breaks backwards compatibility (BC).
```
* [New] Rewrite Pico's default theme from scratch with a much cleaner, more
modern, but still "stupidly simple" structure; the new theme officially
supports Internet Explorer 9+ as well as all versions of the major
desktop and mobile browsers, as long as they are still officially
supported by their respective vendor
* [New] Pico's default theme is now a fully responsive theme, adapting the
layout to the viewing environment (desktops vs. tablets vs. smartphones
vs. ...)
* [New] Add a collapsible page menu for small screens (menu slides up/down)
* [New] Add basic form themeing
* [New] Support a "widescreen" mode, demonstrating how themes can adjust their
behavior using config parameters (i.e. Pico's `config/config.yml`)
* [Changed] Show top-level pages in the website's navigation only (i.e. show
`page.md` and `sub/index.md`, but not `sub/page.md`)
* [Changed] Hide pages starting with a `_` in the website's navigation
* [Changed] Move Pico's social icons from `index.md` to `_meta.md`,
demonstrating how themes can use YAML-only meta pages to support
dynamic content
```

View File

@ -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.

View File

@ -0,0 +1,67 @@
Pico Default Theme
==================
This is the repository of Pico's official default theme.
Pico is a stupidly simple, blazing fast, flat file CMS. See http://picocms.org/ for more info.
Please refer to [`picocms/Pico`](https://github.com/picocms/Pico) to get info about how to contribute or getting help.
Screenshot
----------
![Pico Screenshot](https://picocms.github.io/screenshots/pico-21.png)
Install
-------
You usually don't have to install this theme manually, it's shipped together with [Pico's pre-built release packages](https://github.com/picocms/Pico/releases/latest) and a default dependency of [`picocms/pico-composer`](https://github.com/picocms/pico-composer).
If you're using a custom theme, you can safely remove this theme.
If you use a `composer`-based installation of Pico and want to either remove or install Pico's default theme, simply open a shell on your server and navigate to Pico's install directory (e.g. `/var/www/html`). Run `composer remove picocms/pico-theme` to remove the theme, or run `composer require picocms/pico-theme` (via [Packagist.org](https://packagist.org/packages/picocms/pico-theme)) to install the theme.
If you rather use one of Pico's pre-built release packages, it is best to simply leave Pico's default theme as it is - it won't hurt... :wink: The reason for this is, that the theme is part of Pico's pre-built release packages, thus it will be automatically re-installed when updating Pico. However, if you really want to remove the theme, simply delete the `themes/default` directory in Pico's install directory (e.g. `/var/www/html`). If you want to install Pico's default theme, you must first create a empty `themes/default` directory on your server, [download the version of the theme](https://github.com/picocms/pico-theme/releases) matching the version of your Pico installation and upload all containing files (i.a. `index.twig`) into said `themes/default` directory (resulting in `themes/default/index.twig`).
The versioning of Pico's default theme strictly follows the version of Pico's core. You *must not* use a version of the theme that doesn't match the version of Pico's core (e.g. version 2.0.1 is *not compatible* with Pico 2.0.0). If you're using a `composer`-based installation of Pico, simply use a version constaint like `^2.0` - `picocms/pico-theme` ensures that its version matches Pico's version. Even if you're using one of Pico's pre-built release packages, you don't have to take care of anything - a matching version of the theme is part of Pico's pre-built release packages anyway.
Usage
-----
Pico's default theme isn't really intended to be used for a productive website, it's rather a starting point for creating your own theme. Simply copy the theme's directory (`themes/default/` to e.g. `themes/my_theme/`) and add the following line to your `config/config.yml`:
```yaml
theme: my_theme
```
You can now edit the theme's stylesheets and JavaScript to fit your needs. If you rather want to use a third-party theme, simply add the theme's directory to your `themes/` directory (e.g. `themes/some_other_theme/`) and update your `config/config.yml` accordingly. Pico's default theme is now completely disabled and won't ever interfere with your custom theme or your website in general anymore. If you want to use Pico's default theme again, either remove the line or replace it by `theme: default`.
Anyway, since Pico's default theme is meant to be a starting point for your own theme, it demonstrates how themes can allow one to tweak a theme's behavior. For this reason it supports a "Widescreen" mode: By adding `theme_config.widescreen: true` to your `config/config.yml`, the theme's main container grows from 768px to 1152px breadth due to adding `class="widescreen"` to the website's `<body>` element. Pico's default theme furthermore supports displaying both a logo and a tagline in its header, as well as adding social buttons to its footer. Rather than using Pico's config for this, it uses the YAML Frontmatter of the `content/_meta.md` Markdown file. Here's `content/_meta.md` from Pico's sample contents:
```yaml
---
Logo: %theme_url%/img/pico-white.svg
Tagline: Making the web easy.
Social:
- title: Visit us on GitHub
url: https://github.com/picocms/Pico
icon: octocat
- title: Join us on Freenode IRC Webchat
url: https://webchat.freenode.net/?channels=%23picocms
icon: chat
---
```
You should also check out the theme's `pico-theme.yml`: First of all it tells Pico to use the latest API version for themes and adjusts Pico's default Twig config. But more importantly it also registers the mentioned `widescreen` theme config as well as the meta headers `Logo`, `Tagline` and `Social`.
Getting Help
------------
Please refer to the ["Getting Help" section](https://github.com/picocms/Pico#getting-help) of our main repository.
Contributing
------------
Please refer to the ["Contributing" section](https://github.com/picocms/Pico#contributing) of our main repository.
By contributing to Pico, you accept and agree to the *Developer Certificate of Origin* for your present and future contributions submitted to Pico. Please refer to the ["Developer Certificate of Origin" section](https://github.com/picocms/Pico/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) in the `CONTRIBUTING.md` of our main repository.

View File

@ -0,0 +1,38 @@
{
"name": "picocms/pico-theme",
"type": "pico-theme",
"description": "This is Pico's official default theme. Pico is a stupidly simple, blazing fast, flat file CMS.",
"keywords": [ "pico", "picocms", "picocms-theme", "pico-theme", "default-theme" ],
"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-theme/graphs/contributors"
}
],
"support": {
"docs": "http://picocms.org/themes/default/",
"issues": "https://github.com/picocms/pico-theme/issues",
"source": "https://github.com/picocms/pico-theme"
},
"require": {
"picocms/pico": "self.version"
},
"extra": {
"installer-name": "default",
"branch-alias": {
"dev-master": "2.1.x-dev",
"dev-pico-3.0": "3.0.x-dev"
}
}
}

View File

@ -0,0 +1,41 @@
@font-face {
font-family: 'Droid Sans';
font-style: normal;
font-weight: 400;
src: url('../font/DroidSans-Regular.eot?1516549146');
src: local('Droid Sans Regular'),
local('DroidSans-Regular'),
url('../font/DroidSans-Regular.eot?1516549146#iefix') format('embedded-opentype'),
url('../font/DroidSans-Regular.woff2?1516549146') format('woff2'),
url('../font/DroidSans-Regular.woff?1516549146') format('woff'),
url('../font/DroidSans-Regular.ttf?1516549146') format('truetype'),
url('../font/DroidSans-Regular.svg?1516549146#droid_sansregular') format('svg');
}
@font-face {
font-family: 'Droid Sans';
font-style: normal;
font-weight: 700;
src: url('../font/DroidSans-Bold.eot?1516549146');
src: local('Droid Sans Bold'),
local('DroidSans-Bold'),
url('../font/DroidSans-Bold.eot?1516549146#iefix') format('embedded-opentype'),
url('../font/DroidSans-Bold.woff2?1516549146') format('woff2'),
url('../font/DroidSans-Bold.woff?1516549146') format('woff'),
url('../font/DroidSans-Bold.ttf?1516549146') format('truetype'),
url('../font/DroidSans-Bold.svg?1516549146#droid_sansbold') format('svg');
}
@font-face {
font-family: 'Droid Sans Mono';
font-style: normal;
font-weight: 400;
src: url('../font/DroidSansMono-Regular.eot?1516549146');
src: local('Droid Sans Mono Regular'),
local('DroidSansMono-Regular'),
url('../font/DroidSansMono-Regular.eot?1516549146#iefix') format('embedded-opentype'),
url('../font/DroidSansMono-Regular.woff2?1516549146') format('woff2'),
url('../font/DroidSansMono-Regular.woff?1516549146') format('woff'),
url('../font/DroidSansMono-Regular.ttf?1516549146') format('truetype'),
url('../font/DroidSansMono-Regular.svg?1516549146#droid_sans_monoregular') format('svg');
}

61
themes/default/css/fontello.css vendored 100644
View File

@ -0,0 +1,61 @@
@font-face {
font-family: 'fontello';
src: url('../icon/fontello.eot?29729916');
src: url('../icon/fontello.eot?29729916#iefix') format('embedded-opentype'),
url('../icon/fontello.woff2?29729916') format('woff2'),
url('../icon/fontello.woff?29729916') format('woff'),
url('../icon/fontello.ttf?29729916') format('truetype'),
url('../icon/fontello.svg?29729916#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
src: url('../icon/fontello.svg?13793670#fontello') format('svg');
}
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: "fontello";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.icon-chat:before { content: '\e800'; } /* '' */
.icon-octocat:before { content: '\f09b'; } /* '' */
.icon-menu:before { content: '\f0c9'; } /* '' */
.icon-dollar:before { content: '\f155'; } /* '' */

View File

@ -0,0 +1,386 @@
/**
* Pico's Default Theme
*
* Pico's default theme is a bit bare - but that's intentional! The default
* theme isn't meant for production use, it's actually a template for you to
* design your own theme around.
*
* Pico is a stupidly simple, blazing fast, flat file CMS.
*
* @author Gilbert Pellegrom
* @author Daniel Rudolf
* @link http://picocms.org
* @license http://opensource.org/licenses/MIT The MIT License
* @version 2.1
*/
* {
box-sizing: border-box;
border: 0 none;
margin: 0;
padding: 0;
}
.hidden { display: none !important; }
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0 none;
}
.slide {
overflow-y: hidden !important;
-webkit-transition: height .5s ease-in !important;
transition: height .5s ease-in !important;
}
/*** BASIC LAYOUT ***/
html, body { height: 100%; }
body { display: flex; flex-direction: column; }
#main { flex: 1 0 auto; }
#header, #footer { flex: 0 0 auto; }
#main {
padding: 5em 0 4em;
}
.container {
max-width: 48em;
padding: 0 0.5em;
margin: 0 auto;
}
.widescreen .container { max-width: 72em; }
/* very ugly overflow fix, avoid this whenever possible! */
#main .container { overflow-x: auto; }
/*** BASIC LAYOUT: HEADER ***/
#header { background: #2EAE9B; }
#title, #logo {
float: left;
padding: 3em 3em 3em 0;
}
#title * { margin: 0; color: #fff; }
#title p { font-style: italic; }
#logo { height: 10.8em; }
#logo * { display: block; height: 100%; }
#logo img { min-width: 4.8em; }
#logo + #title h1 { margin: 0.8rem 0; }
#logo + #title.tagline h1 { margin: 0; }
#nav {
padding: 3em 0;
text-align: right;
}
#nav ul {
list-style: none;
margin: 0;
padding: 0;
}
#nav ul li {
display: inline-block;
margin-left: 1em;
padding: 0;
font-weight: bold;
}
#nav a, #nav-toggle { color: #afe1da; }
#nav .active a, #nav a:hover, #nav-toggle:hover { color: #fff; }
#nav-toggle { display: none; }
/* IE8 + IE9 clearfix */
#header > .container:after {
content: '';
display: block;
clear: both;
}
/*** BASIC LAYOUT: FOOTER ***/
#footer {
background: #707070;
color: #C0C0C0;
}
#footer a { color: #ddd; }
#footer a:hover { color: #fff; }
#footer p {
margin: 0;
padding: 3em 0;
}
#footer .social {
float: right;
padding: 1.5em 0 1.5em 1em;
font-size: 2rem;
}
/*** BASIC LAYOUT: EXTRA SMALL DEVICES ***/
@media (max-width: 767px) {
#main { padding: 2em 0 1em; }
#title, #logo { padding: 2em 1.5em 2em 0; }
#logo { height: 8.8em; }
#nav {
clear: both;
padding: 0;
}
#nav ul {
padding-bottom: 1em;
}
#nav ul li {
display: block;
margin-left: 0;
text-align: center;
}
#nav ul li a {
display: block;
padding: 0.5em 0;
}
.js #nav-toggle {
display: block;
float: right;
width: 2em;
margin: 0.6667em 0;
font-size: 1.5rem;
line-height: 2em;
text-align: center;
cursor: pointer;
}
.js #nav-toggle > * { vertical-align: middle; }
#footer p { padding: 1em 0; }
#footer .social { padding: 0.5em 0 0.5em 1em; }
}
/*** TYPOGRAPHY ***/
html { font-size: 16px; }
body {
font-family: 'Droid Sans', 'Helvetica', 'Arial', sans-serif;
font-size: 1rem;
line-height: 1.6;
font-variant-ligatures: common-ligatures;
text-rendering: optimizeLegibility;
font-kerning: normal;
color: #444;
}
p, td, th, li, dd {
text-align: justify;
overflow-wrap: break-word;
word-wrap: break-word;
}
p, hr, table, .table-responsive, ol, ul, dl, dd, pre, blockquote, fieldset {
margin-bottom: 1em;
}
a {
color: #2EAE9B;
text-decoration: none;
-webkit-transition: color .2s ease-in;
transition: color .2s ease-in;
}
a:hover { color: #444; }
h1, h2, h3, h4, h5, h6 {
margin-bottom: 0.6em;
font-weight: bold;
color: #333;
}
h1 { font-size: 2rem; }
h2 { font-size: 1.7rem; }
h3 { font-size: 1.4rem; }
h4 { font-size: 1.1rem; }
h5 { font-size: 1rem; }
h6 { font-size: 1rem; font-weight: normal; font-style: italic; }
img { max-width: 100%; }
hr {
border: 0.15em solid #f5f5f5;
border-radius: 0.3em;
background: #f5f5f5;
}
abbr { text-decoration: underline dotted; }
/*** UTILITIES ***/
.align-left { text-align: left; }
.align-center { text-align: center; }
.align-right { text-align: right; }
.align-justify { text-align: justify; }
.image { display: block; margin: 0 auto; }
.image.xsmall { width: 20%; }
.image.small { width: 40%; }
.image.large { width: 60%; }
.image.xlarge { width: 80%; }
.image.float-left { float: left; margin: 1em 2em 1em 0; }
.image.float-right { float: right; margin: 1em 0 1em 2em; }
.image img { display: block; width: 100%; }
@media (max-width: 767px) {
.image.xsmall { width: 60%; }
.image.small { width: 80%; }
.image.large, .image.xlarge { width: 100%; }
.image.float-left, .image.float-right { float: none; margin: 0 auto; }
}
/*** TABLES ***/
table { border-spacing: 0; }
td, th {
padding: 0.4em 1em;
vertical-align: top;
}
th {
font-weight: bold;
text-align: center;
background: #f5f5f5;
color: #333;
}
td, th { border: 1px solid #ccc; }
tr:not(:last-child) td, tr:not(:last-child) th { border-bottom: 0 none; }
thead tr:last-child th { border-bottom: 0 none; }
td:not(:last-child), th:not(:last-child) { border-right: 0 none; }
tr:first-child td:first-child, tr:first-child th:first-child { border-top-left-radius: 0.3em; }
tr:first-child td:last-child, tr:first-child th:last-child { border-top-right-radius: 0.3em; }
tbody tr:last-child td:first-child { border-bottom-left-radius: 0.3em; }
tbody tr:last-child td:last-child { border-bottom-right-radius: 0.3em; }
table thead + tbody tr:first-child td { border-radius: 0 !important; }
.table-responsive { overflow-x: auto; }
.table-responsive > table { margin-bottom: 0; }
/*** LISTS ***/
ol, ul {
list-style-position: outside;
padding-left: 1.5em;
}
ol { padding-left: 2.5em; }
li { padding-left: 0.5em; }
dt { font-weight: bold; }
dd { margin-left: 2em; }
/*** CODE ***/
code {
margin: 0 0.1em;
padding: 0.1em 0.2em;
border: 1px solid #ccc;
border-radius: 0.3em;
background: #f5f5f5;
font-family: 'Droid Sans Mono', 'Courier New', 'Courier', monospace;
font-size: 0.85rem;
line-height: 1.9824;
}
pre {
padding: 0 1em;
border: 1px solid #ccc;
border-radius: 0.3em;
background: #f5f5f5;
}
pre code {
display: block;
margin: 0;
padding: 1.1111em 0;
border: 0 none;
background: transparent;
overflow-x: auto;
line-height: 1.4;
}
/*** BLOCKQUOTE ***/
blockquote {
font-style: italic;
margin-left: 1em;
padding-left: 1em;
border-left: 0.5em solid #f5f5f5;
}
/*** FORMS ***/
label, fieldset legend { font-weight: bold; }
input:not([type="checkbox"]):not([type="radio"]), button, select, textarea, fieldset, fieldset legend {
border: 1px solid #ccc;
border-radius: 0.3em;
background: #fff;
-webkit-transition: none .2s ease-in;
transition: none .2s ease-in;
-webkit-transition-property: border-color, background, box-shadow;
transition-property: border-color, background, box-shadow;
}
input:not([type="checkbox"]):not([type="radio"]), button, select, textarea {
padding: 0.5em 1em;
outline: 0 none;
font-size: 1rem;
}
input:focus:not([type="checkbox"]):not([type="radio"]), button:focus, select:focus, textarea:focus {
border-color: #2EAE9B;
box-shadow: 0 0 8px #2EAE9B;
}
input[type="button"]:focus, input[type="submit"]:focus, input[type="reset"]:focus, button:focus,
input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover, button:hover {
background: #f5f5f5;
cursor: pointer;
}
textarea, select[multiple] {
vertical-align: bottom;
overflow: auto;
}
fieldset {
padding: 1em;
background: #f5f5f5;
}
fieldset legend { padding: 0 0.5em; }
fieldset label, fieldset input, fieldset button,
fieldset select, fieldset textarea {
margin: 0.2em 0.5em;
}
fieldset label:first-child, fieldset input:first-child, fieldset button:first-child,
fieldset select:first-child, fieldset textarea:first-child {
margin-left: 0;
}
fieldset label:last-child, fieldset input:last-child, fieldset button:last-child,
fieldset select:last-child, fieldset textarea:last-child {
margin-right: 0;
}
/* Firefox input size fix */
input::-moz-focus-inner, button::-moz-focus-inner {
border: 0;
padding: 0;
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,246 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata></metadata>
<defs>
<font id="droid_sans_monoregular" horiz-adv-x="1229" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="500" />
<glyph horiz-adv-x="0" />
<glyph unicode="&#xd;" />
<glyph unicode=" " />
<glyph unicode="!" d="M676 414h-121l-51 1048h223zM614 250q127 0 127 -139q0 -140 -127 -140t-127 140q0 139 127 139z" />
<glyph unicode="&#x22;" d="M522 1462l-41 -528h-155l-41 528h237zM944 1462l-41 -528h-155l-41 528h237z" />
<glyph unicode="#" d="M936 893l-64 -328h240v-137h-266l-82 -428h-148l84 428h-290l-82 -428h-144l78 428h-217v137h244l65 328h-233v137h258l82 432h147l-82 -432h293l84 432h144l-84 -432h221v-137h-248zM436 565h291l64 328h-291z" />
<glyph unicode="$" d="M684 111v-230h-137v221q-228 0 -365 70v172q196 -92 365 -92v434q-193 64 -270.5 145.5t-77.5 219.5q0 131 92 217t256 106v180h137v-176q187 -9 336 -78l-66 -145q-140 62 -270 72v-422q199 -68 279.5 -148.5t80.5 -210.5q0 -280 -360 -335zM547 854v369 q-172 -29 -172 -174q0 -78 40.5 -121t131.5 -74zM684 635v-373q184 28 184 184q0 127 -184 189z" />
<glyph unicode="%" d="M291 784q-131 0 -211 94.5t-80 254.5q0 164 79 255t216 91q129 0 210 -93t81 -253q0 -162 -78.5 -255.5t-216.5 -93.5zM293 903q139 0 139 230q0 225 -139 225q-141 0 -141 -225q0 -230 141 -230zM1057 1462l-729 -1462h-158l729 1462h158zM934 -18q-130 0 -210.5 94.5 t-80.5 253.5q0 164 79 255t216 91q129 0 210 -93t81 -253q0 -161 -78.5 -254.5t-216.5 -93.5zM936 100q139 0 139 230q0 225 -139 225q-141 0 -141 -225q0 -230 141 -230z" />
<glyph unicode="&#x26;" d="M602 776l281 -348q71 121 104 266h184q-53 -234 -178 -403l234 -291h-217l-131 166q-174 -186 -412 -186q-189 0 -297.5 107t-108.5 294q0 131 63.5 228.5t235.5 199.5q-163 192 -163 356q0 148 95.5 234t274.5 86q168 0 260.5 -85.5t92.5 -234.5q0 -203 -318 -389z M508 897q134 79 183.5 138.5t49.5 133.5t-49.5 120t-130.5 46q-87 0 -136.5 -44.5t-49.5 -125.5q0 -118 133 -268zM778 287l-323 401q-203 -123 -203 -301q0 -105 67 -175.5t160 -70.5q160 0 299 146z" />
<glyph unicode="'" d="M733 1462l-41 -528h-155l-41 528h237z" />
<glyph unicode="(" d="M739 1462h193q-449 -376 -449 -893q0 -521 447 -893h-191q-444 353 -444 891q0 532 444 895z" />
<glyph unicode=")" d="M489 -324h-190q446 371 446 893q0 518 -448 893h192q445 -361 445 -895q0 -540 -445 -891z" />
<glyph unicode="*" d="M715 1556l-43 -393l397 111l27 -193l-379 -28l246 -326l-179 -96l-176 358l-157 -358l-185 96l242 326l-375 28l29 193l391 -111l-43 393h205z" />
<glyph unicode="+" d="M539 647h-387v150h387v389h149v-389h387v-150h-387v-385h-149v385z" />
<glyph unicode="," d="M770 262l16 -24q-57 -224 -194 -527h-152q76 323 111 551h219z" />
<glyph unicode="-" d="M285 465v168h659v-168h-659z" />
<glyph unicode="." d="M614 301q152 0 152 -166t-152 -166q-151 0 -151 166t151 166z" />
<glyph unicode="/" d="M1016 1462l-627 -1462h-178l627 1462h178z" />
<glyph unicode="0" d="M612 -20q-229 0 -347 193.5t-118 559.5q0 752 465 752q232 0 350.5 -193.5t118.5 -558.5q0 -753 -469 -753zM612 135q147 0 216 140.5t69 457.5q0 315 -69 455.5t-216 140.5q-145 0 -212.5 -139.5t-67.5 -456.5q0 -318 67.5 -458t212.5 -140z" />
<glyph unicode="1" d="M758 0h-176v913q0 122 8 361q-39 -43 -121 -113l-147 -121l-97 123l383 299h150v-1462z" />
<glyph unicode="2" d="M1069 0h-911v156l350 381q195 213 257 317.5t62 230.5q0 113 -63.5 178.5t-171.5 65.5q-160 0 -318 -137l-102 119q192 172 422 172q194 0 306 -106t112 -285q0 -119 -59 -244t-291 -375l-281 -299v-8h688v-166z" />
<glyph unicode="3" d="M694 770v-6q361 -47 361 -348q0 -203 -138 -319.5t-399 -116.5q-242 0 -387 79v170q184 -96 383 -96q354 0 354 289q0 258 -381 258h-133v151h133q160 0 248 76t88 201q0 102 -68 161.5t-182 59.5q-178 0 -344 -121l-92 125q187 150 436 150q206 0 321.5 -99t115.5 -264 q0 -138 -82 -231t-234 -119z" />
<glyph unicode="4" d="M1126 328h-213v-328h-176v328h-676v159l664 983h188v-976h213v-166zM737 494v356q0 176 13 432h-9q-36 -102 -90 -180l-411 -608h497z" />
<glyph unicode="5" d="M172 59v172q144 -96 360 -96q336 0 336 314q0 294 -344 294q-89 0 -231 -26l-90 57l55 688h690v-166h-532l-39 -419q107 20 209 20q210 0 339.5 -114.5t129.5 -313.5q0 -234 -138 -361.5t-389 -127.5q-224 0 -356 79z" />
<glyph unicode="6" d="M965 1464v-155q-71 24 -166 24q-224 0 -336.5 -141t-122.5 -447h12q95 170 307 170q195 0 305.5 -119t110.5 -325q0 -228 -120.5 -359.5t-323.5 -131.5q-218 0 -347.5 168.5t-129.5 476.5q0 858 639 858q104 0 172 -19zM899 471q0 145 -68.5 223t-195.5 78t-213 -81 t-86 -185q0 -152 81 -262.5t212 -110.5q127 0 198.5 88t71.5 250z" />
<glyph unicode="7" d="M334 0l563 1296h-754v166h940v-145l-555 -1317h-194z" />
<glyph unicode="8" d="M764 774q309 -160 309 -393q0 -181 -126 -291t-333 -110q-216 0 -337 103.5t-121 289.5q0 257 282 393q-235 146 -235 369q0 161 116.5 255.5t294.5 94.5q184 0 298 -95t114 -257q0 -230 -262 -359zM616 848q232 103 232 278q0 101 -63 154t-173 53q-106 0 -168.5 -53 t-62.5 -154q0 -90 49.5 -152.5t185.5 -125.5zM588 696q-254 -121 -254 -325q0 -240 276 -240q136 0 210.5 65.5t74.5 182.5q0 90 -63 159.5t-214 143.5z" />
<glyph unicode="9" d="M264 -2v156q67 -25 166 -25q224 0 336.5 141t122.5 447h-12q-96 -170 -308 -170q-194 0 -304.5 118t-110.5 326q0 228 120.5 360t323.5 132q220 0 348.5 -171t128.5 -474q0 -858 -639 -858q-105 0 -172 18zM330 991q0 -145 68.5 -223t195.5 -78t213 81.5t86 184.5 q0 151 -80 262t-213 111q-128 0 -199 -87t-71 -251z" />
<glyph unicode=":" d="M614 1126q127 0 127 -139t-127 -139t-127 139t127 139zM614 250q127 0 127 -139q0 -140 -127 -140t-127 140q0 139 127 139z" />
<glyph unicode=";" d="M621 1126q127 0 127 -139t-127 -139t-127 139t127 139zM709 238l14 -23q-51 -197 -176 -479h-137q62 255 100 502h199z" />
<glyph unicode="&#x3c;" d="M1075 221l-923 451v102l923 451v-160l-715 -342l715 -342v-160z" />
<glyph unicode="=" d="M152 852v149h923v-149h-923zM152 442v150h923v-150h-923z" />
<glyph unicode="&#x3e;" d="M152 381l714 342l-714 342v160l923 -451v-102l-923 -451v160z" />
<glyph unicode="?" d="M465 414v37q0 120 46 195t161 157q130 97 171.5 155t41.5 158q0 92 -74.5 149.5t-206.5 57.5q-174 0 -371 -90l-65 153q209 97 426 97q214 0 339.5 -97.5t125.5 -261.5q0 -133 -53.5 -216t-196.5 -191q-118 -87 -151 -141t-33 -144v-18h-160zM553 250q127 0 127 -139 q0 -140 -127 -140t-127 140q0 139 127 139z" />
<glyph unicode="@" d="M799 401h-4q-74 -180 -230 -180q-120 0 -190 104.5t-70 280.5q0 206 97 332.5t255 126.5q137 0 256 -47l-22 -416q-2 -38 -2 -69v-7q0 -176 72 -176q100 0 100 383q0 278 -111 436t-299 158q-226 0 -352.5 -192t-126.5 -527q0 -312 129.5 -482.5t368.5 -170.5 q181 0 346 78v-133q-158 -82 -352 -82q-298 0 -465.5 207t-167.5 577q0 397 167 628.5t455 231.5q248 0 396.5 -196t148.5 -535q0 -231 -64 -370.5t-178 -139.5q-128 0 -157 180zM752 915q-54 21 -103 21q-89 0 -136.5 -93.5t-47.5 -240.5q0 -252 127 -252q131 0 145 312z " />
<glyph unicode="A" d="M1004 0l-144 453h-491l-146 -453h-190l483 1468h195l485 -1468h-192zM807 618l-133 424q-39 124 -62 226q-20 -99 -46 -183l-144 -467h385z" />
<glyph unicode="B" d="M135 1462h440q274 0 397.5 -87.5t123.5 -282.5q0 -128 -78.5 -213t-212.5 -103v-10q332 -54 332 -342q0 -198 -127.5 -311t-347.5 -113h-527v1462zM322 842h284q156 0 227.5 55t71.5 182q0 120 -76.5 172t-242.5 52h-264v-461zM322 686v-528h307q311 0 311 274 q0 254 -324 254h-294z" />
<glyph unicode="C" d="M1124 201v-162q-146 -59 -358 -59q-309 0 -473 196t-164 557q0 346 179 548t489 202q220 0 383 -86l-78 -156q-154 78 -305 78q-215 0 -343 -158.5t-128 -429.5q0 -287 120 -437.5t351 -150.5q130 0 327 58z" />
<glyph unicode="D" d="M135 0v1462h342q317 0 493.5 -189t176.5 -528q0 -361 -183 -553t-528 -192h-301zM322 1303v-1143h96q532 0 532 579q0 564 -493 564h-135z" />
<glyph unicode="E" d="M1059 0h-842v1462h842v-164h-656v-452h617v-162h-617v-520h656v-164z" />
<glyph unicode="F" d="M430 0h-186v1462h841v-164h-655v-516h617v-164h-617v-618z" />
<glyph unicode="G" d="M672 772h422v-717q-195 -75 -420 -75q-262 0 -409.5 199.5t-147.5 553.5q0 351 162 550.5t446 199.5q192 0 346 -86l-72 -162q-146 84 -280 84q-192 0 -299 -155.5t-107 -432.5q0 -588 394 -588q97 0 202 29v436h-237v164z" />
<glyph unicode="H" d="M1094 0h-187v682h-585v-682h-187v1462h187v-616h585v616h187v-1462z" />
<glyph unicode="I" d="M1001 0h-776v123l295 20v1176l-295 20v123h776v-123l-294 -20v-1176l294 -20v-123z" />
<glyph unicode="J" d="M137 39v166q162 -62 309 -62q161 0 254 79.5t93 226.5v1013h186v-1011q0 -216 -140.5 -343.5t-377.5 -127.5q-217 0 -324 59z" />
<glyph unicode="K" d="M1198 0h-211l-450 698l-140 -114v-584h-186v1462h186v-731l121 168l453 563h209l-521 -637z" />
<glyph unicode="L" d="M233 0v1462h187v-1296h635v-166h-822z" />
<glyph unicode="M" d="M532 0l-278 1280h-8q18 -266 18 -406v-874h-151v1462h247l248 -1192h6l250 1192h252v-1462h-153v887q0 102 14 391h-8l-283 -1278h-154z" />
<glyph unicode="N" d="M1092 0h-215l-580 1210h-8q18 -277 18 -417v-793h-172v1462h213l578 -1204h6q-14 303 -14 404v800h174v-1462z" />
<glyph unicode="O" d="M616 -20q-532 0 -532 755q0 750 534 750q256 0 392.5 -195.5t136.5 -556.5t-138 -557t-393 -196zM616 143q173 0 253.5 145t80.5 445q0 303 -81.5 445.5t-250.5 142.5q-337 0 -337 -588q0 -590 335 -590z" />
<glyph unicode="P" d="M362 569v-569h-186v1462h404q514 0 514 -428q0 -219 -138.5 -342t-402.5 -123h-191zM362 727h170q198 0 283.5 72t85.5 225q0 279 -338 279h-201v-576z" />
<glyph unicode="Q" d="M862 39q85 -180 279 -311l-121 -142q-236 171 -328 400q-36 -6 -76 -6q-532 0 -532 755q0 750 534 750q256 0 392.5 -195.5t136.5 -556.5q0 -526 -285 -694zM616 143q173 0 253.5 145t80.5 445q0 303 -81.5 445.5t-250.5 142.5q-337 0 -337 -588q0 -590 335 -590z" />
<glyph unicode="R" d="M373 604v-604h-187v1462h357q520 0 520 -415q0 -287 -289 -392l397 -655h-219l-350 604h-229zM373 762h164q171 0 252 66t81 210q0 141 -80 203t-258 62h-159v-541z" />
<glyph unicode="S" d="M141 49v178q211 -86 414 -86q350 0 350 240q0 104 -70.5 160t-285.5 133q-208 73 -298.5 174.5t-90.5 263.5q0 174 128.5 272.5t352.5 98.5q229 0 416 -78l-64 -164q-193 78 -360 78q-293 0 -293 -209q0 -102 65.5 -164t270.5 -133q246 -88 328.5 -181.5t82.5 -240.5 q0 -192 -138.5 -301.5t-393.5 -109.5q-265 0 -414 69z" />
<glyph unicode="T" d="M707 0h-187v1298h-418v164h1022v-164h-417v-1298z" />
<glyph unicode="U" d="M1104 1464v-948q0 -260 -126 -398t-370 -138q-483 0 -483 540v942h186v-932q0 -387 307 -387q295 0 300 389v932h186z" />
<glyph unicode="V" d="M997 1462h199l-489 -1462h-187l-487 1462h196l295 -927q41 -127 88 -334q31 145 93 340z" />
<glyph unicode="W" d="M528 1008h177l145 -521q61 -219 72 -307q2 53 65 619l70 663h170l-187 -1462h-190l-168 580q-40 138 -66 282q-32 -173 -65 -284l-156 -578h-190l-203 1462h170l88 -663q23 -176 40 -378t17 -241q24 151 70 312z" />
<glyph unicode="X" d="M1174 0h-211l-355 635l-366 -635h-189l453 764l-422 698h199l331 -559l334 559h191l-422 -692z" />
<glyph unicode="Y" d="M612 723l381 739h201l-487 -893v-569h-187v559l-487 903h203z" />
<glyph unicode="Z" d="M1124 0h-1022v145l793 1151h-772v166h981v-145l-793 -1151h813v-166z" />
<glyph unicode="[" d="M940 -324h-528v1786h528v-149h-346v-1487h346v-150z" />
<glyph unicode="\" d="M389 1462l627 -1462h-178l-627 1462h178z" />
<glyph unicode="]" d="M289 -174h346v1487h-346v149h528v-1786h-528v150z" />
<glyph unicode="^" d="M111 549l424 924h102l481 -924h-162l-368 735l-318 -735h-159z" />
<glyph unicode="_" d="M1243 -324h-1259v140h1259v-140z" />
<glyph unicode="`" d="M811 1241h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z" />
<glyph unicode="a" d="M895 0l-37 152h-8q-77 -97 -158 -134.5t-209 -37.5q-163 0 -255.5 86t-92.5 241q0 332 510 348l203 7v69q0 236 -244 236q-147 0 -328 -82l-63 137q196 96 383 96q227 0 328.5 -87t101.5 -279v-752h-131zM846 537l-162 -7q-196 -8 -278 -61.5t-82 -163.5q0 -178 200 -178 q147 0 234.5 81.5t87.5 229.5v99z" />
<glyph unicode="b" d="M340 139h-12l-37 -139h-133v1556h182v-376q0 -81 -8 -226h8q107 164 322 164q201 0 315.5 -149.5t114.5 -417.5q0 -270 -115 -420.5t-315 -150.5q-207 0 -322 159zM340 551q0 -227 69.5 -323.5t221.5 -96.5q272 0 272 422q0 414 -274 414q-155 0 -222 -94t-67 -322z" />
<glyph unicode="c" d="M1061 1059l-62 -158q-150 57 -268 57q-371 0 -371 -413q0 -406 361 -406q157 0 321 62v-160q-134 -61 -329 -61q-257 0 -399 145.5t-142 417.5q0 281 145 428t408 147q178 0 336 -59z" />
<glyph unicode="d" d="M897 147h-8q-113 -167 -322 -167q-201 0 -315.5 149.5t-114.5 417.5q0 270 115 420.5t315 150.5q206 0 322 -160h12q-12 129 -12 162v436h182v-1556h-147zM889 506v41q0 227 -69.5 323.5t-221.5 96.5q-272 0 -272 -422q0 -414 274 -414q152 0 218.5 88.5t70.5 286.5z" />
<glyph unicode="e" d="M1096 514h-774q8 -375 344 -375q195 0 370 76v-160q-166 -75 -364 -75q-245 0 -392 149.5t-147 411.5q0 266 135.5 421.5t362.5 155.5q212 0 338.5 -134t126.5 -357v-113zM326 662h573q0 305 -272 305q-275 0 -301 -305z" />
<glyph unicode="f" d="M1044 961h-389v-961h-182v961h-317v110l317 33v96q0 193 90 280t299 87q129 0 252 -35l-41 -143q-104 28 -207 28q-123 0 -167 -50t-44 -165v-104h389v-137z" />
<glyph unicode="g" d="M1126 1098v-113l-196 -27q65 -85 65 -213q0 -161 -106.5 -256.5t-296.5 -95.5q-55 0 -86 6q-100 -56 -100 -133q0 -84 161 -84h187q174 0 266 -77t92 -220q0 -377 -565 -377q-218 0 -331.5 80.5t-113.5 225.5q0 212 240 270q-96 47 -96 154q0 112 133 192 q-89 37 -140 122.5t-51 186.5q0 182 106.5 280.5t303.5 98.5q86 0 150 -20h378zM594 518q223 0 223 230q0 239 -225 239t-225 -242q0 -227 227 -227zM692 18h-188q-230 0 -230 -198q0 -174 271 -174q395 0 395 223q0 88 -50 118.5t-198 30.5z" />
<glyph unicode="h" d="M887 0v707q0 260 -238 260q-307 0 -307 -398v-569h-182v1556h182v-462l-8 -144h10q103 168 336 168q389 0 389 -401v-717h-182z" />
<glyph unicode="i" d="M633 1550q106 0 106 -114q0 -58 -31.5 -86.5t-74.5 -28.5q-107 0 -107 115q0 114 107 114zM541 954l-269 21v123h451v-955l352 -20v-123h-878v123l344 20v811z" />
<glyph unicode="j" d="M743 1550q107 0 107 -114q0 -115 -107 -115q-106 0 -106 115q0 114 106 114zM135 -457v154q134 -39 289 -39q117 0 182.5 57t65.5 158v1081l-420 21v123h602v-1215q0 -180 -113 -277.5t-319 -97.5q-164 0 -287 35z" />
<glyph unicode="k" d="M383 553l135 152l395 393h222l-494 -475l522 -623h-213l-426 504l-129 -82v-422h-180v1556h180v-714l-16 -289h4z" />
<glyph unicode="l" d="M532 1413l-268 21v122h451v-1413l352 -20v-123h-879v123l344 20v1270z" />
<glyph unicode="m" d="M977 0v707q0 146 -26.5 203t-88.5 57q-87 0 -126.5 -83t-39.5 -278v-606h-161v707q0 260 -125 260q-84 0 -120 -79.5t-36 -318.5v-569h-162v1098h127l27 -148h10q67 168 201 168q163 0 213 -182h6q76 182 219 182q128 0 186 -92.5t58 -308.5v-717h-162z" />
<glyph unicode="n" d="M887 0v707q0 260 -238 260q-307 0 -307 -398v-569h-182v1098h147l27 -148h10q103 168 336 168q389 0 389 -401v-717h-182z" />
<glyph unicode="o" d="M610 -20q-216 0 -355.5 155.5t-139.5 415.5q0 263 135.5 415t365.5 152q218 0 357 -155t139 -412q0 -265 -137 -418t-365 -153zM614 131q310 0 310 420q0 416 -312 416q-309 0 -309 -416q0 -420 311 -420z" />
<glyph unicode="p" d="M340 139h-12q12 -129 12 -162v-469h-182v1590h147l27 -148h8q110 168 322 168q201 0 315.5 -149.5t114.5 -417.5q0 -270 -115 -420.5t-315 -150.5q-207 0 -322 159zM340 592v-41q0 -227 69.5 -323.5t221.5 -96.5q272 0 272 422q0 414 -274 414q-152 0 -218.5 -88 t-70.5 -287z" />
<glyph unicode="q" d="M889 950h8l27 148h147v-1590h-182v469q0 41 12 170h-12q-113 -167 -322 -167q-201 0 -315.5 149.5t-114.5 417.5q0 270 115 420.5t315 150.5q207 0 322 -168zM889 506v41q0 227 -69.5 323.5t-221.5 96.5q-272 0 -272 -422q0 -414 274 -414q152 0 218.5 88.5t70.5 286.5z " />
<glyph unicode="r" d="M1059 1073l-49 -166q-123 45 -224 45q-163 0 -251.5 -92.5t-88.5 -267.5v-592h-182v1098h148l22 -201h8q76 119 163 170t214 51q118 0 240 -45z" />
<glyph unicode="s" d="M203 49v166q193 -86 370 -86q275 0 275 162q0 57 -49 99t-226 106q-233 87 -293.5 159.5t-60.5 171.5q0 136 111.5 213.5t308.5 77.5q198 0 369 -74l-60 -149q-182 72 -319 72q-236 0 -236 -133q0 -61 50.5 -97.5t232.5 -101.5q211 -77 280.5 -151.5t69.5 -182.5 q0 -150 -117 -235.5t-331 -85.5q-248 0 -375 69z" />
<glyph unicode="t" d="M1020 150v-138q-130 -32 -252 -32q-362 0 -362 344v637h-267v94l267 49l77 287h105v-293h438v-137h-438v-637q0 -195 192 -195q93 0 240 21z" />
<glyph unicode="u" d="M922 0l-27 147h-10q-105 -167 -334 -167q-391 0 -391 401v717h182v-707q0 -260 236 -260q161 0 235 92.5t74 304.5v570h182v-1098h-147z" />
<glyph unicode="v" d="M498 0l-416 1098h188l240 -652q85 -231 100 -325h6q7 44 101 325l239 652h189l-416 -1098h-231z" />
<glyph unicode="w" d="M813 0l-131 596l-68 330h-6l-65 -334l-135 -592h-189l-223 1098h162l98 -543q34 -186 57 -393h6q31 185 68 358l133 578h193l127 -578q43 -195 67 -358h6q31 242 60 393l102 543h158l-225 -1098h-195z" />
<glyph unicode="x" d="M510 563l-393 535h207l290 -410l291 410h207l-395 -535l413 -563h-206l-310 436l-311 -436h-207z" />
<glyph unicode="y" d="M82 1098h188l262 -654q82 -205 89 -290h6q23 112 90 292l239 652h189l-475 -1241q-67 -174 -156 -261.5t-246 -87.5q-86 0 -168 17v145q62 -12 136 -12q96 0 149.5 41t95.5 141l58 150z" />
<glyph unicode="z" d="M1044 0h-862v125l660 836h-627v137h811v-146l-647 -815h665v-137z" />
<glyph unicode="{" d="M745 -16q0 -81 56 -118.5t200 -39.5v-150q-438 6 -438 293v334q0 189 -338 189v155q338 0 338 189v333q0 287 438 293v-149q-144 -2 -200 -39.5t-56 -118.5v-332q0 -207 -233 -248v-12q233 -41 233 -248v-331z" />
<glyph unicode="|" d="M539 1556h149v-2048h-149v2048z" />
<glyph unicode="}" d="M483 315q0 207 234 248v12q-234 41 -234 248v332q0 81 -56.5 119t-199.5 39v149q439 -6 439 -293v-333q0 -189 338 -189v-155q-338 0 -338 -189v-334q0 -287 -439 -293v150q143 1 199.5 39t56.5 119v331z" />
<glyph unicode="~" d="M152 586v162q99 108 247 108q100 0 248 -63q130 -56 201 -56q108 0 227 121v-162q-99 -108 -248 -108q-100 0 -247 63q-131 56 -201 56q-108 0 -227 -121z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa1;" d="M614 840q-127 0 -127 139t127 139t127 -139t-127 -139zM553 676h121l51 -1049h-223z" />
<glyph unicode="&#xa2;" d="M743 1319q162 -3 318 -59l-62 -158q-150 57 -268 57q-371 0 -371 -414q0 -405 361 -405q153 0 321 61v-159q-122 -59 -299 -62v-200h-137v206q-434 69 -434 557q0 494 434 568v172h137v-164z" />
<glyph unicode="&#xa3;" d="M1063 1401l-66 -144q-141 72 -272 72q-223 0 -223 -246v-295h377v-137h-377v-211q0 -196 -140 -274h748v-166h-991v154q200 49 200 284v213h-198v137h198v324q0 168 108.5 268.5t289.5 100.5q192 0 346 -80z" />
<glyph unicode="&#xa4;" d="M303 936l-129 129l98 98l127 -129q101 68 215 68t213 -68l129 129l99 -96l-129 -129q67 -101 67 -215q0 -120 -67 -215l127 -127l-97 -96l-129 127q-99 -66 -213 -66q-118 0 -215 68l-127 -127l-96 96l127 127q-65 95 -65 213q0 114 65 213zM614 483q100 0 172 70t72 170 q0 101 -71.5 172.5t-172.5 71.5q-99 0 -169 -71t-70 -173q0 -100 70.5 -170t168.5 -70z" />
<glyph unicode="&#xa5;" d="M612 723l346 739h191l-385 -768h240v-137h-302v-158h302v-137h-302v-262h-178v262h-301v137h301v158h-301v137h234l-379 768h192z" />
<glyph unicode="&#xa6;" d="M539 1556h149v-780h-149v780zM539 289h149v-781h-149v781z" />
<glyph unicode="&#xa7;" d="M420 1067q-160 80 -160 236q0 120 104 192t277 72q162 0 326 -72l-56 -139q-156 67 -276 67q-201 0 -201 -116q0 -54 49.5 -93t196.5 -100q157 -62 231 -139.5t74 -190.5q0 -182 -145 -270q145 -80 145 -225q0 -138 -110.5 -218.5t-307.5 -80.5q-204 0 -323 65v158 q171 -82 323 -82q240 0 240 141q0 57 -43 97t-195 102q-197 84 -253 159t-56 179q0 179 160 258zM713 573q114 76 114 185q0 89 -73.5 144.5t-206.5 103.5q-133 -48 -133 -175q0 -73 56.5 -126.5t207.5 -116.5z" />
<glyph unicode="&#xa8;" d="M426 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM801 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xa9;" d="M614 1483q286 0 447.5 -204t161.5 -548q0 -345 -162 -548t-447 -203q-286 0 -447 203.5t-161 547.5q0 343 160.5 547.5t447.5 204.5zM614 88q240 0 370 170.5t130 472.5t-130 472.5t-370 170.5t-369.5 -171t-129.5 -472t129.5 -472t369.5 -171zM874 453v-131 q-107 -50 -221 -50q-195 0 -300 123.5t-105 337.5q0 209 110 332t301 123q128 0 254 -62l-61 -127q-110 54 -193 54q-121 0 -186 -85.5t-65 -236.5q0 -323 251 -323q94 0 215 45z" />
<glyph unicode="&#xaa;" d="M799 797l-33 118q-104 -131 -268 -131q-222 0 -222 205q0 116 85 167.5t276 57.5l125 5v10q0 133 -152 133q-112 0 -245 -51l-41 110q138 58 294 58q291 0 291 -238v-444h-110zM662 1116q-114 -2 -174 -28t-60 -101q0 -90 104 -90q105 0 167.5 55t62.5 146v20z" />
<glyph unicode="&#xab;" d="M197 553l309 414l117 -78l-238 -348l238 -348l-117 -78l-309 411v27zM604 553l309 414l117 -78l-237 -348l237 -348l-117 -78l-309 411v27z" />
<glyph unicode="&#xac;" d="M1075 797v-535h-149v385h-774v150h923z" />
<glyph unicode="&#xad;" d="M285 465v168h659v-168h-659z" />
<glyph unicode="&#xae;" d="M614 1483q286 0 447.5 -204t161.5 -548q0 -345 -162 -548t-447 -203q-286 0 -447 203.5t-161 547.5q0 343 160.5 547.5t447.5 204.5zM614 88q240 0 370 170.5t130 472.5t-130 472.5t-370 170.5t-369.5 -171t-129.5 -472t129.5 -472t369.5 -171zM748 680l237 -395h-178 l-207 352h-94v-352h-158v893h234q325 0 325 -265q0 -163 -159 -233zM506 768h72q170 0 170 141q0 74 -42 103.5t-131 29.5h-69v-274z" />
<glyph unicode="&#xaf;" d="M1249 1556h-1269v140h1269v-140z" />
<glyph unicode="&#xb0;" d="M614 1483q129 0 222.5 -93.5t93.5 -222.5t-93 -221t-223 -92q-131 0 -223 92.5t-92 220.5q0 129 92.5 222.5t222.5 93.5zM614 977q79 0 136 56t57 134q0 81 -57.5 138t-135.5 57q-79 0 -135.5 -57.5t-56.5 -137.5q0 -78 56 -134t136 -56z" />
<glyph unicode="&#xb1;" d="M539 647h-387v150h387v389h149v-389h387v-150h-387v-385h-149v385zM152 0v150h923v-150h-923z" />
<glyph unicode="&#xb2;" d="M879 672h-531v102l187 199q111 118 141.5 168.5t30.5 107.5q0 115 -111 115q-81 0 -164 -76l-78 86q117 103 248 103q118 0 183 -60t65 -164q0 -66 -35 -134t-164 -197l-135 -136h363v-114z" />
<glyph unicode="&#xb3;" d="M670 1085q176 -39 176 -186q0 -116 -74.5 -180t-214.5 -64q-131 0 -215 50v124q110 -65 203 -65q149 0 149 137q0 125 -147 125h-72v104h70q123 0 123 127q0 111 -97 111q-71 0 -161 -70l-66 86q111 93 238 93q109 0 173 -54.5t64 -148.5q0 -139 -149 -189z" />
<glyph unicode="&#xb4;" d="M418 1268q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xb5;" d="M362 391q0 -260 218 -260q148 0 217 91t69 306v570h183v-1098h-148l-27 147h-10q-96 -167 -295 -167q-139 0 -213 88q6 -153 6 -240v-320h-182v1590h182v-707z" />
<glyph unicode="&#xb6;" d="M1079 -260h-121v1657h-206v-1657h-121v819q-61 -18 -146 -18q-419 0 -419 501q0 259 108.5 386.5t341.5 127.5h563v-1816z" />
<glyph unicode="&#xb7;" d="M614 862q127 0 127 -139t-127 -139t-127 139t127 139z" />
<glyph unicode="&#xb8;" d="M428 -483v108q33 -6 80 -6q151 0 151 92q0 74 -172 113l91 176h120l-57 -115q160 -37 160 -172q0 -205 -291 -205q-34 0 -82 9z" />
<glyph unicode="&#xb9;" d="M586 1460h135v-788h-146v465q0 69 9 200q-41 -44 -74 -65l-70 -51l-73 88z" />
<glyph unicode="&#xba;" d="M612 784q-144 0 -237.5 93t-93.5 256q0 162 90 254t245 92q145 0 238.5 -92.5t93.5 -253.5q0 -165 -92 -257t-244 -92zM614 903q181 0 181 230q0 225 -181 225q-182 0 -182 -225q0 -230 182 -230z" />
<glyph unicode="&#xbb;" d="M1030 526l-309 -411l-117 78l238 348l-238 348l117 78l309 -414v-27zM623 526l-310 -411l-116 78l237 348l-237 348l116 78l310 -414v-27z" />
<glyph unicode="&#xbc;" d="M1208 175h-84v-174h-143v174h-375v98l377 523h141v-508h84v-113zM981 288v176q0 82 6 172q-40 -73 -80 -131l-156 -217h230zM241 1460h135v-788h-146v465q0 69 9 200q-41 -44 -74 -65l-70 -51l-73 88zM1057 1462l-729 -1462h-158l729 1462h158z" />
<glyph unicode="&#xbd;" d="M222 1460h135v-788h-146v465q0 69 9 200q-41 -44 -74 -65l-70 -51l-73 88zM992 1462l-729 -1462h-158l729 1462h158zM1225 1h-531v102l187 199q111 118 141.5 168.5t30.5 107.5q0 115 -111 115q-81 0 -164 -76l-78 86q117 103 248 103q118 0 183 -60t65 -164 q0 -66 -35 -134t-164 -197l-135 -136h363v-114z" />
<glyph unicode="&#xbe;" d="M1229 175h-84v-174h-143v174h-375v98l377 523h141v-508h84v-113zM1002 288v176q0 82 6 172q-40 -73 -80 -131l-156 -217h230zM349 1085q176 -39 176 -186q0 -116 -74.5 -180t-214.5 -64q-131 0 -215 50v124q110 -65 203 -65q149 0 149 137q0 125 -147 125h-72v104h70 q123 0 123 127q0 111 -97 111q-71 0 -161 -70l-66 86q111 93 238 93q109 0 173 -54.5t64 -148.5q0 -139 -149 -189zM1110 1462l-729 -1462h-158l729 1462h158z" />
<glyph unicode="&#xbf;" d="M674 840q-127 0 -127 139t127 139t127 -139t-127 -139zM762 676v-37q0 -119 -44.5 -193.5t-162.5 -158.5q-129 -97 -171 -155t-42 -159q0 -93 74.5 -149.5t206.5 -56.5q181 0 370 90l62 -144q-219 -106 -422 -106q-217 0 -341 97.5t-124 260.5q0 134 53.5 217t196.5 191 q119 87 151.5 140.5t32.5 143.5v19h160z" />
<glyph unicode="&#xc0;" d="M1004 0l-144 453h-491l-146 -453h-190l483 1468h195l485 -1468h-192zM807 618l-133 424q-39 124 -62 226q-20 -99 -46 -183l-144 -467h385zM734 1579h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z" />
<glyph unicode="&#xc1;" d="M1004 0l-144 453h-491l-146 -453h-190l483 1468h195l485 -1468h-192zM807 618l-133 424q-39 124 -62 226q-20 -99 -46 -183l-144 -467h385zM520 1606q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xc2;" d="M1004 0l-144 453h-491l-146 -453h-190l483 1468h195l485 -1468h-192zM807 618l-133 424q-39 124 -62 226q-20 -99 -46 -183l-144 -467h385zM946 1579h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z " />
<glyph unicode="&#xc3;" d="M1004 0l-144 453h-491l-146 -453h-190l483 1468h195l485 -1468h-192zM807 618l-133 424q-39 124 -62 226q-20 -99 -46 -183l-144 -467h385zM357 1579h-104q25 264 211 264q58 0 161 -56q102 -56 136 -56q80 0 106 114h105q-27 -264 -211 -264q-57 0 -157 57 q-100 56 -140 56q-82 0 -107 -115z" />
<glyph unicode="&#xc4;" d="M1004 0l-144 453h-491l-146 -453h-190l483 1468h195l485 -1468h-192zM807 618l-133 424q-39 124 -62 226q-20 -99 -46 -183l-144 -467h385zM426 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM801 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z " />
<glyph unicode="&#xc5;" d="M1004 0l-144 453h-491l-146 -453h-190l483 1468h195l485 -1468h-192zM807 618l-133 424q-39 124 -62 226q-20 -99 -46 -183l-144 -467h385zM610 1366q-102 0 -162.5 58t-60.5 157t60.5 157t162.5 58q101 0 165.5 -59t64.5 -154q0 -98 -63.5 -157.5t-166.5 -59.5z M610 1694q-49 0 -80.5 -30t-31.5 -83q0 -113 112 -113q50 0 81.5 30t31.5 83t-31.5 83t-81.5 30z" />
<glyph unicode="&#xc6;" d="M1210 0h-653v453h-289l-96 -453h-172l338 1462h872v-164h-477v-452h438v-162h-438v-520h477v-164zM305 618h252v680h-106z" />
<glyph unicode="&#xc7;" d="M1124 201v-162q-146 -59 -358 -59q-309 0 -473 196t-164 557q0 346 179 548t489 202q220 0 383 -86l-78 -156q-154 78 -305 78q-215 0 -343 -158.5t-128 -429.5q0 -287 120 -437.5t351 -150.5q130 0 327 58zM508 -483v108q33 -6 80 -6q151 0 151 92q0 74 -172 113l91 176 h120l-57 -115q160 -37 160 -172q0 -205 -291 -205q-34 0 -82 9z" />
<glyph unicode="&#xc8;" d="M1059 0h-842v1462h842v-164h-656v-452h617v-162h-617v-520h656v-164zM738 1579h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z" />
<glyph unicode="&#xc9;" d="M1059 0h-842v1462h842v-164h-656v-452h617v-162h-617v-520h656v-164zM481 1606q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xca;" d="M1059 0h-842v1462h842v-164h-656v-452h617v-162h-617v-520h656v-164zM981 1579h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xcb;" d="M1059 0h-842v1462h842v-164h-656v-452h617v-162h-617v-520h656v-164zM451 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM826 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xcc;" d="M1001 0h-776v123l295 20v1176l-295 20v123h776v-123l-294 -20v-1176l294 -20v-123zM703 1579h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z" />
<glyph unicode="&#xcd;" d="M1001 0h-776v123l295 20v1176l-295 20v123h776v-123l-294 -20v-1176l294 -20v-123zM537 1606q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xce;" d="M1001 0h-776v123l295 20v1176l-295 20v123h776v-123l-294 -20v-1176l294 -20v-123zM946 1579h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xcf;" d="M1001 0h-776v123l295 20v1176l-295 20v123h776v-123l-294 -20v-1176l294 -20v-123zM428 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM803 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xd0;" d="M135 0v659h-135v162h135v641h342q317 0 493.5 -189t176.5 -528q0 -361 -183 -553t-528 -192h-301zM322 1303v-482h380v-162h-380v-499h96q532 0 532 579q0 564 -493 564h-135z" />
<glyph unicode="&#xd1;" d="M1092 0h-215l-580 1210h-8q18 -277 18 -417v-793h-172v1462h213l578 -1204h6q-14 303 -14 404v800h174v-1462zM362 1579h-104q25 264 211 264q58 0 161 -56q102 -56 136 -56q80 0 106 114h105q-27 -264 -211 -264q-57 0 -157 57q-100 56 -140 56q-82 0 -107 -115z" />
<glyph unicode="&#xd2;" d="M616 -20q-532 0 -532 755q0 750 534 750q256 0 392.5 -195.5t136.5 -556.5t-138 -557t-393 -196zM616 143q173 0 253.5 145t80.5 445q0 303 -81.5 445.5t-250.5 142.5q-337 0 -337 -588q0 -590 335 -590zM730 1579h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z " />
<glyph unicode="&#xd3;" d="M616 -20q-532 0 -532 755q0 750 534 750q256 0 392.5 -195.5t136.5 -556.5t-138 -557t-393 -196zM616 143q173 0 253.5 145t80.5 445q0 303 -81.5 445.5t-250.5 142.5q-337 0 -337 -588q0 -590 335 -590zM508 1606q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z " />
<glyph unicode="&#xd4;" d="M616 -20q-532 0 -532 755q0 750 534 750q256 0 392.5 -195.5t136.5 -556.5t-138 -557t-393 -196zM616 143q173 0 253.5 145t80.5 445q0 303 -81.5 445.5t-250.5 142.5q-337 0 -337 -588q0 -590 335 -590zM946 1579h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27 q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xd5;" d="M616 -20q-532 0 -532 755q0 750 534 750q256 0 392.5 -195.5t136.5 -556.5t-138 -557t-393 -196zM616 143q173 0 253.5 145t80.5 445q0 303 -81.5 445.5t-250.5 142.5q-337 0 -337 -588q0 -590 335 -590zM366 1579h-104q25 264 211 264q58 0 161 -56q102 -56 136 -56 q80 0 106 114h105q-27 -264 -211 -264q-57 0 -157 57q-100 56 -140 56q-82 0 -107 -115z" />
<glyph unicode="&#xd6;" d="M616 -20q-532 0 -532 755q0 750 534 750q256 0 392.5 -195.5t136.5 -556.5t-138 -557t-393 -196zM616 143q173 0 253.5 145t80.5 445q0 303 -81.5 445.5t-250.5 142.5q-337 0 -337 -588q0 -590 335 -590zM428 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z M803 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xd7;" d="M508 723l-318 319l105 105l317 -318l322 318l104 -103l-321 -321l319 -320l-102 -102l-322 317l-317 -315l-102 103z" />
<glyph unicode="&#xd8;" d="M309 74l-92 -150l-137 78l121 197q-117 184 -117 536q0 750 534 750q186 0 310 -105l92 152l137 -78l-125 -201q115 -188 115 -520q0 -361 -138 -557t-393 -196q-189 0 -307 94zM319 391l515 836q-80 94 -216 94q-337 0 -337 -588q0 -212 38 -342zM915 1061l-512 -832 q80 -86 213 -86q173 0 253.5 145t80.5 445q0 209 -35 328z" />
<glyph unicode="&#xd9;" d="M1104 1464v-948q0 -260 -126 -398t-370 -138q-483 0 -483 540v942h186v-932q0 -387 307 -387q295 0 300 389v932h186zM742 1579h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z" />
<glyph unicode="&#xda;" d="M1104 1464v-948q0 -260 -126 -398t-370 -138q-483 0 -483 540v942h186v-932q0 -387 307 -387q295 0 300 389v932h186zM494 1606q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xdb;" d="M1104 1464v-948q0 -260 -126 -398t-370 -138q-483 0 -483 540v942h186v-932q0 -387 307 -387q295 0 300 389v932h186zM946 1579h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xdc;" d="M1104 1464v-948q0 -260 -126 -398t-370 -138q-483 0 -483 540v942h186v-932q0 -387 307 -387q295 0 300 389v932h186zM428 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM803 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xdd;" d="M612 723l381 739h201l-487 -893v-569h-187v559l-487 903h203zM494 1606q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xde;" d="M362 317v-317h-186v1462h186v-252h218q514 0 514 -428q0 -219 -138.5 -342t-402.5 -123h-191zM362 475h170q198 0 283.5 72t85.5 225q0 279 -338 279h-201v-576z" />
<glyph unicode="&#xdf;" d="M479 49v166q143 -86 277 -86q213 0 213 174q0 81 -45.5 132t-143.5 112q-123 78 -173 139t-50 148q0 117 129 223t129 196q0 164 -227 164q-242 0 -242 -215v-1202h-182v1200q0 367 424 367q194 0 302.5 -79.5t108.5 -227.5q0 -132 -133 -249q-84 -74 -108.5 -105 t-24.5 -64q0 -39 29 -69t151 -111q144 -95 191 -173t47 -176q0 -162 -100 -247.5t-283 -85.5q-182 0 -289 69z" />
<glyph unicode="&#xe0;" d="M895 0l-37 152h-8q-77 -97 -158 -134.5t-209 -37.5q-163 0 -255.5 86t-92.5 241q0 332 510 348l203 7v69q0 236 -244 236q-147 0 -328 -82l-63 137q196 96 383 96q227 0 328.5 -87t101.5 -279v-752h-131zM846 537l-162 -7q-196 -8 -278 -61.5t-82 -163.5q0 -178 200 -178 q147 0 234.5 81.5t87.5 229.5v99zM726 1241h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z" />
<glyph unicode="&#xe1;" d="M895 0l-37 152h-8q-77 -97 -158 -134.5t-209 -37.5q-163 0 -255.5 86t-92.5 241q0 332 510 348l203 7v69q0 236 -244 236q-147 0 -328 -82l-63 137q196 96 383 96q227 0 328.5 -87t101.5 -279v-752h-131zM846 537l-162 -7q-196 -8 -278 -61.5t-82 -163.5q0 -178 200 -178 q147 0 234.5 81.5t87.5 229.5v99zM502 1268q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xe2;" d="M895 0l-37 152h-8q-77 -97 -158 -134.5t-209 -37.5q-163 0 -255.5 86t-92.5 241q0 332 510 348l203 7v69q0 236 -244 236q-147 0 -328 -82l-63 137q196 96 383 96q227 0 328.5 -87t101.5 -279v-752h-131zM846 537l-162 -7q-196 -8 -278 -61.5t-82 -163.5q0 -178 200 -178 q147 0 234.5 81.5t87.5 229.5v99zM954 1241h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xe3;" d="M895 0l-37 152h-8q-77 -97 -158 -134.5t-209 -37.5q-163 0 -255.5 86t-92.5 241q0 332 510 348l203 7v69q0 236 -244 236q-147 0 -328 -82l-63 137q196 96 383 96q227 0 328.5 -87t101.5 -279v-752h-131zM846 537l-162 -7q-196 -8 -278 -61.5t-82 -163.5q0 -178 200 -178 q147 0 234.5 81.5t87.5 229.5v99zM368 1241h-104q25 264 211 264q58 0 161 -56q102 -56 136 -56q80 0 106 114h105q-27 -264 -211 -264q-57 0 -157 57q-100 56 -140 56q-82 0 -107 -115z" />
<glyph unicode="&#xe4;" d="M895 0l-37 152h-8q-77 -97 -158 -134.5t-209 -37.5q-163 0 -255.5 86t-92.5 241q0 332 510 348l203 7v69q0 236 -244 236q-147 0 -328 -82l-63 137q196 96 383 96q227 0 328.5 -87t101.5 -279v-752h-131zM846 537l-162 -7q-196 -8 -278 -61.5t-82 -163.5q0 -178 200 -178 q147 0 234.5 81.5t87.5 229.5v99zM438 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM813 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xe5;" d="M895 0l-37 152h-8q-77 -97 -158 -134.5t-209 -37.5q-163 0 -255.5 86t-92.5 241q0 332 510 348l203 7v69q0 236 -244 236q-147 0 -328 -82l-63 137q196 96 383 96q227 0 328.5 -87t101.5 -279v-752h-131zM846 537l-162 -7q-196 -8 -278 -61.5t-82 -163.5q0 -178 200 -178 q147 0 234.5 81.5t87.5 229.5v99zM609 1241q-102 0 -162.5 58t-60.5 157t60.5 157t162.5 58q101 0 165.5 -59t64.5 -154q0 -98 -63.5 -157.5t-166.5 -59.5zM609 1569q-49 0 -80.5 -30t-31.5 -83q0 -113 112 -113q50 0 81.5 30t31.5 83t-31.5 83t-81.5 30z" />
<glyph unicode="&#xe6;" d="M522 662v69q0 236 -139 236q-107 0 -211 -82l-57 137q131 96 276 96q188 0 246 -178q78 178 240 178q137 0 223 -135.5t86 -355.5v-113h-496q3 -192 67 -283.5t169 -91.5q111 0 233 76v-162q-107 -73 -241 -73q-222 0 -316 229q-105 -229 -301 -229q-115 0 -185.5 86.5 t-70.5 240.5q0 332 328 348zM694 662h316q0 141 -40.5 223t-111.5 82q-68 0 -113 -78t-51 -227zM520 537l-88 -7q-217 -17 -217 -225q0 -83 32 -130.5t87 -47.5q82 0 134 82.5t52 228.5v99z" />
<glyph unicode="&#xe7;" d="M1061 1059l-62 -158q-150 57 -268 57q-371 0 -371 -413q0 -406 361 -406q157 0 321 62v-160q-134 -61 -329 -61q-257 0 -399 145.5t-142 417.5q0 281 145 428t408 147q178 0 336 -59zM477 -483v108q33 -6 80 -6q151 0 151 92q0 74 -172 113l91 176h120l-57 -115 q160 -37 160 -172q0 -205 -291 -205q-34 0 -82 9z" />
<glyph unicode="&#xe8;" d="M1096 514h-774q8 -375 344 -375q195 0 370 76v-160q-166 -75 -364 -75q-245 0 -392 149.5t-147 411.5q0 266 135.5 421.5t362.5 155.5q212 0 338.5 -134t126.5 -357v-113zM326 662h573q0 305 -272 305q-275 0 -301 -305zM767 1241h-121q-166 142 -272 307v21h219 q86 -178 174 -301v-27z" />
<glyph unicode="&#xe9;" d="M1096 514h-774q8 -375 344 -375q195 0 370 76v-160q-166 -75 -364 -75q-245 0 -392 149.5t-147 411.5q0 266 135.5 421.5t362.5 155.5q212 0 338.5 -134t126.5 -357v-113zM326 662h573q0 305 -272 305q-275 0 -301 -305zM500 1268q94 133 174 301h219v-21 q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xea;" d="M1096 514h-774q8 -375 344 -375q195 0 370 76v-160q-166 -75 -364 -75q-245 0 -392 149.5t-147 411.5q0 266 135.5 421.5t362.5 155.5q212 0 338.5 -134t126.5 -357v-113zM326 662h573q0 305 -272 305q-275 0 -301 -305zM962 1241h-121q-85 56 -211 186 q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xeb;" d="M1096 514h-774q8 -375 344 -375q195 0 370 76v-160q-166 -75 -364 -75q-245 0 -392 149.5t-147 411.5q0 266 135.5 421.5t362.5 155.5q212 0 338.5 -134t126.5 -357v-113zM326 662h573q0 305 -272 305q-275 0 -301 -305zM444 1497q96 0 96 -102q0 -103 -96 -103t-96 103 q0 102 96 102zM819 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xec;" d="M541 954l-269 21v123h451v-955l352 -20v-123h-878v123l344 20v811zM726 1241h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z" />
<glyph unicode="&#xed;" d="M541 954l-269 21v123h451v-955l352 -20v-123h-878v123l344 20v811zM531 1268q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xee;" d="M541 954l-269 21v123h451v-955l352 -20v-123h-878v123l344 20v811zM946 1241h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xef;" d="M541 954l-269 21v123h451v-955l352 -20v-123h-878v123l344 20v811zM426 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM801 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xf0;" d="M889 852l8 4q-58 226 -242 391l-256 -153l-73 114l217 131q-104 71 -172 109l69 123q143 -70 246 -148l227 138l74 -113l-194 -117q301 -291 301 -758q0 -277 -128.5 -435t-353.5 -158q-213 0 -345 133.5t-132 363.5q0 234 120.5 364t334.5 130q211 0 299 -119zM614 823 q-286 0 -286 -352q0 -340 288 -340q154 0 221.5 99.5t67.5 295.5q0 129 -77.5 213t-213.5 84z" />
<glyph unicode="&#xf1;" d="M887 0v707q0 260 -238 260q-307 0 -307 -398v-569h-182v1098h147l27 -148h10q103 168 336 168q389 0 389 -401v-717h-182zM364 1241h-104q25 264 211 264q58 0 161 -56q102 -56 136 -56q80 0 106 114h105q-27 -264 -211 -264q-57 0 -157 57q-100 56 -140 56 q-82 0 -107 -115z" />
<glyph unicode="&#xf2;" d="M610 -20q-216 0 -355.5 155.5t-139.5 415.5q0 263 135.5 415t365.5 152q218 0 357 -155t139 -412q0 -265 -137 -418t-365 -153zM614 131q310 0 310 420q0 416 -312 416q-309 0 -309 -416q0 -420 311 -420zM771 1241h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z " />
<glyph unicode="&#xf3;" d="M610 -20q-216 0 -355.5 155.5t-139.5 415.5q0 263 135.5 415t365.5 152q218 0 357 -155t139 -412q0 -265 -137 -418t-365 -153zM614 131q310 0 310 420q0 416 -312 416q-309 0 -309 -416q0 -420 311 -420zM498 1268q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z " />
<glyph unicode="&#xf4;" d="M610 -20q-216 0 -355.5 155.5t-139.5 415.5q0 263 135.5 415t365.5 152q218 0 357 -155t139 -412q0 -265 -137 -418t-365 -153zM614 131q310 0 310 420q0 416 -312 416q-309 0 -309 -416q0 -420 311 -420zM941 1241h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27 q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xf5;" d="M610 -20q-216 0 -355.5 155.5t-139.5 415.5q0 263 135.5 415t365.5 152q218 0 357 -155t139 -412q0 -265 -137 -418t-365 -153zM614 131q310 0 310 420q0 416 -312 416q-309 0 -309 -416q0 -420 311 -420zM358 1241h-104q25 264 211 264q58 0 161 -56q102 -56 136 -56 q80 0 106 114h105q-27 -264 -211 -264q-57 0 -157 57q-100 56 -140 56q-82 0 -107 -115z" />
<glyph unicode="&#xf6;" d="M610 -20q-216 0 -355.5 155.5t-139.5 415.5q0 263 135.5 415t365.5 152q218 0 357 -155t139 -412q0 -265 -137 -418t-365 -153zM614 131q310 0 310 420q0 416 -312 416q-309 0 -309 -416q0 -420 311 -420zM419 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z M794 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xf7;" d="M612 1196q115 0 115 -125t-115 -125q-114 0 -114 125t114 125zM152 647v150h923v-150h-923zM612 498q115 0 115 -125t-115 -125q-114 0 -114 125t114 125z" />
<glyph unicode="&#xf8;" d="M377 33l-76 -119l-131 84l84 131q-139 158 -139 422q0 266 133 416.5t368 150.5q128 0 236 -57l76 119l131 -84l-84 -131q137 -156 137 -414q0 -271 -134.5 -421t-367.5 -150q-129 0 -233 53zM356 276l406 656q-66 35 -156 35q-161 0 -232 -103.5t-71 -312.5 q0 -180 53 -275zM872 817l-405 -653q61 -33 154 -33q161 0 232 105.5t71 314.5q0 164 -52 266z" />
<glyph unicode="&#xf9;" d="M922 0l-27 147h-10q-105 -167 -334 -167q-391 0 -391 401v717h182v-707q0 -260 236 -260q161 0 235 92.5t74 304.5v570h182v-1098h-147zM734 1241h-121q-166 142 -272 307v21h219q86 -178 174 -301v-27z" />
<glyph unicode="&#xfa;" d="M922 0l-27 147h-10q-105 -167 -334 -167q-391 0 -391 401v717h182v-707q0 -260 236 -260q161 0 235 92.5t74 304.5v570h182v-1098h-147zM500 1268q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xfb;" d="M922 0l-27 147h-10q-105 -167 -334 -167q-391 0 -391 401v717h182v-707q0 -260 236 -260q161 0 235 92.5t74 304.5v570h182v-1098h-147zM954 1241h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#xfc;" d="M922 0l-27 147h-10q-105 -167 -334 -167q-391 0 -391 401v717h182v-707q0 -260 236 -260q161 0 235 92.5t74 304.5v570h182v-1098h-147zM428 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM803 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#xfd;" d="M82 1098h188l262 -654q82 -205 89 -290h6q23 112 90 292l239 652h189l-475 -1241q-67 -174 -156 -261.5t-246 -87.5q-86 0 -168 17v145q62 -12 136 -12q96 0 149.5 41t95.5 141l58 150zM494 1268q94 133 174 301h219v-21q-112 -173 -272 -307h-121v27z" />
<glyph unicode="&#xfe;" d="M340 950q110 168 322 168q201 0 315.5 -149.5t114.5 -417.5q0 -270 -115 -420.5t-315 -150.5q-207 0 -322 159h-12q12 -129 12 -162v-469h-182v2048h182v-458l-8 -148h8zM340 592v-41q0 -227 69.5 -323.5t221.5 -96.5q272 0 272 422q0 414 -274 414q-152 0 -218.5 -88 t-70.5 -287z" />
<glyph unicode="&#xff;" d="M82 1098h188l262 -654q82 -205 89 -290h6q23 112 90 292l239 652h189l-475 -1241q-67 -174 -156 -261.5t-246 -87.5q-86 0 -168 17v145q62 -12 136 -12q96 0 149.5 41t95.5 141l58 150zM434 1497q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM809 1497 q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#x131;" d="M541 954l-269 21v123h451v-955l352 -20v-123h-878v123l344 20v811z" />
<glyph unicode="&#x152;" d="M1227 0h-574l-48 -10q-51 -10 -97 -10q-488 0 -488 755q0 750 512 750q82 0 154 -23h541v-164h-398v-452h359v-162h-359v-520h398v-164zM651 176v1112q-58 33 -131 33q-311 0 -311 -588q0 -590 309 -590q70 0 133 33z" />
<glyph unicode="&#x153;" d="M651 201q-88 -221 -266 -221q-146 0 -237 153.5t-91 417.5q0 268 88 417.5t242 149.5q171 0 260 -217q84 217 242 217q131 0 208 -133.5t77 -357.5v-113h-439q3 -375 189 -375q108 0 204 76v-162q-94 -73 -217 -73q-87 0 -158.5 59t-101.5 162zM397 131q168 0 168 410 q0 426 -170 426q-90 0 -129 -103t-39 -313q0 -211 39.5 -315.5t130.5 -104.5zM997 662q0 305 -123 305q-125 0 -137 -305h260z" />
<glyph unicode="&#x178;" d="M612 723l381 739h201l-487 -893v-569h-187v559l-487 903h203zM428 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102zM803 1835q96 0 96 -102q0 -103 -96 -103t-96 103q0 102 96 102z" />
<glyph unicode="&#x2c6;" d="M946 1241h-121q-85 56 -211 186q-133 -136 -211 -186h-120v27q25 29 59 67q139 155 176 234h193q37 -79 176 -234l59 -67v-27z" />
<glyph unicode="&#x2da;" d="M610 1241q-102 0 -162.5 58t-60.5 157t60.5 157t162.5 58q101 0 165.5 -59t64.5 -154q0 -98 -63.5 -157.5t-166.5 -59.5zM610 1569q-49 0 -80.5 -30t-31.5 -83q0 -113 112 -113q50 0 81.5 30t31.5 83t-31.5 83t-81.5 30z" />
<glyph unicode="&#x2dc;" d="M358 1241h-104q25 264 211 264q58 0 161 -56q102 -56 136 -56q80 0 106 114h105q-27 -264 -211 -264q-57 0 -157 57q-100 56 -140 56q-82 0 -107 -115z" />
<glyph unicode="&#x2000;" horiz-adv-x="953" />
<glyph unicode="&#x2001;" horiz-adv-x="1907" />
<glyph unicode="&#x2002;" horiz-adv-x="953" />
<glyph unicode="&#x2003;" horiz-adv-x="1907" />
<glyph unicode="&#x2004;" horiz-adv-x="635" />
<glyph unicode="&#x2005;" horiz-adv-x="476" />
<glyph unicode="&#x2006;" horiz-adv-x="317" />
<glyph unicode="&#x2007;" horiz-adv-x="317" />
<glyph unicode="&#x2008;" horiz-adv-x="238" />
<glyph unicode="&#x2009;" horiz-adv-x="381" />
<glyph unicode="&#x200a;" horiz-adv-x="105" />
<glyph unicode="&#x2010;" d="M285 465v168h659v-168h-659z" />
<glyph unicode="&#x2011;" d="M285 465v168h659v-168h-659z" />
<glyph unicode="&#x2012;" d="M285 465v168h659v-168h-659z" />
<glyph unicode="&#x2013;" d="M184 465v168h860v-168h-860z" />
<glyph unicode="&#x2014;" d="M-6 465v168h1241v-168h-1241z" />
<glyph unicode="&#x2018;" d="M461 961l-15 22q54 206 177 479h157q-62 -255 -100 -501h-219z" />
<glyph unicode="&#x2019;" d="M766 1462l14 -22q-55 -213 -176 -479h-158q65 266 101 501h219z" />
<glyph unicode="&#x201a;" d="M756 238l14 -23q-55 -213 -176 -479h-137q71 292 100 502h199z" />
<glyph unicode="&#x201c;" d="M674 961l-15 22q54 206 177 479h157q-62 -255 -100 -501h-219zM248 961l-15 22q54 206 177 479h157q-62 -255 -100 -501h-219z" />
<glyph unicode="&#x201d;" d="M553 1462l14 -22q-55 -213 -176 -479h-158q65 266 101 501h219zM979 1462l14 -22q-55 -213 -176 -479h-158q65 266 101 501h219z" />
<glyph unicode="&#x201e;" d="M543 238l14 -23q-55 -213 -176 -479h-137q71 292 100 502h199zM969 238l14 -23q-51 -197 -176 -479h-137q71 292 100 502h199z" />
<glyph unicode="&#x2022;" d="M614 1010q236 0 236 -262q0 -128 -63.5 -195.5t-172.5 -67.5q-111 0 -173 67t-62 196q0 262 235 262z" />
<glyph unicode="&#x2026;" d="M205 250q127 0 127 -139q0 -140 -127 -140t-127 140q0 139 127 139zM614 250q127 0 127 -139q0 -140 -127 -140t-127 140q0 139 127 139zM1024 250q127 0 127 -139q0 -140 -127 -140t-127 140q0 139 127 139z" />
<glyph unicode="&#x202f;" horiz-adv-x="381" />
<glyph unicode="&#x2039;" d="M401 553l310 414l116 -78l-237 -348l237 -348l-116 -78l-310 411v27z" />
<glyph unicode="&#x203a;" d="M827 526l-309 -411l-117 78l238 348l-238 348l117 78l309 -414v-27z" />
<glyph unicode="&#x2044;" d="M1057 1462l-729 -1462h-158l729 1462h158z" />
<glyph unicode="&#x205f;" horiz-adv-x="476" />
<glyph unicode="&#x20ac;" d="M442 934h432v-137h-446q0 -15 -1 -29l-1 -25v-62q0 -20 2 -42h385v-137h-367q73 -359 369 -359q136 0 268 58v-162q-122 -59 -282 -59q-447 0 -541 522h-164v137h148l-2 38l2 120h-148v137h160q39 262 179.5 405.5t359.5 143.5q191 0 335 -92l-79 -146q-122 74 -242 74 q-136 0 -233 -99.5t-134 -285.5z" />
<glyph unicode="&#x2122;" d="M303 741h-127v613h-176v108h481v-108h-178v-613zM797 741l-146 549h-12l10 -180v-369h-123v721h187l139 -534l149 534h179v-721h-127v342q0 87 10 207h-12l-154 -549h-100z" />
<glyph unicode="&#x25fc;" horiz-adv-x="1100" d="M0 1100h1100v-1100h-1100v1100z" />
<glyph unicode="&#xfb01;" d="M672 961h-246v-961h-182v961h-195v75l195 68v96q0 190 76.5 278.5t254.5 88.5q97 0 197 -37l-47 -141q-79 28 -143 28q-92 0 -124 -50.5t-32 -164.5v-104h246v-137zM961 1509q106 0 106 -114q0 -58 -31.5 -86.5t-74.5 -28.5q-107 0 -107 115q0 114 107 114zM1051 0h-183 v1098h183v-1098z" />
<glyph unicode="&#xfb02;" d="M672 961h-246v-961h-182v961h-195v75l195 68v96q0 190 76.5 278.5t254.5 88.5q97 0 197 -37l-47 -141q-79 28 -143 28q-92 0 -124 -50.5t-32 -164.5v-104h246v-137zM1051 0h-183v1556h183v-1556z" />
<glyph unicode="&#xfb03;" d="M1065 0h-164v971h-203v-971h-163v971h-205v-971h-164v971h-100v65l100 62v82q0 106 20 176.5t58.5 112.5t94.5 59.5t128 17.5q49 0 92.5 -11t77.5 -24q38 29 89 42.5t114 13.5q52 0 97.5 -11.5t82.5 -25.5l-41 -131q-29 11 -63.5 19.5t-71.5 8.5q-38 0 -65.5 -11 t-45.5 -37t-26.5 -69.5t-8.5 -107.5v-104h367v-1098zM330 1098h205v102q0 115 24 193q-20 6 -42.5 10t-45.5 4q-35 0 -61.5 -11t-44 -37t-26.5 -69.5t-9 -107.5v-84z" />
<glyph unicode="&#xfb04;" d="M840 971h-142v-971h-163v971h-205v-971h-164v971h-100v65l100 62v82q0 106 20 176.5t58.5 112.5t94.5 59.5t128 17.5q49 0 92.5 -11t77.5 -24q38 29 89 42.5t114 13.5q48 0 94 -11h131v-1556h-164v1421q-14 3 -28.5 4.5t-28.5 1.5q-38 0 -65.5 -11t-45.5 -37t-26.5 -69.5 t-8.5 -107.5v-104h142v-127zM330 1098h205v102q0 115 24 193q-20 6 -42.5 10t-45.5 4q-35 0 -61.5 -11t-44 -37t-26.5 -69.5t-9 -107.5v-84z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,189 @@
Copyright (c) 2005-2008, The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

View File

@ -0,0 +1,23 @@
Icon fonts generator
## Fontello
Copyright (C) 2011 by Vitaly Puzrin
Author: Vitaly Puzrin
License: The MIT License <https://github.com/fontello/fontello/blob/master/LICENSE>
Homepage: http://fontello.com/
Font license info
## Font Awesome
Copyright (C) 2016 by Dave Gandy
Author: Dave Gandy
License: SIL OFL 1.1 <http://scripts.sil.org/OFL>
Homepage: http://fortawesome.github.com/Font-Awesome/
Icons: chat, github-circled ("octocat"), menu, dollar

View File

@ -0,0 +1,21 @@
(The MIT License)
Copyright (C) 2011 by Vitaly Puzrin
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.

View File

@ -0,0 +1,94 @@
Copyright (c) 2016, Dave Gandy <http://fontawesome.io>,
with Reserved Font Name Font Awesome.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2018 by original authors @ fontello.com</metadata>
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="chat" unicode="&#xe800;" d="M786 421q0-77-53-143t-143-104-197-38q-48 0-98 9-70-49-155-72-21-5-48-9h-2q-6 0-12 5t-6 12q-1 1-1 3t1 4 1 3l1 3t2 3 2 3 3 3 2 2q3 3 13 14t15 16 12 17 14 21 11 25q-69 40-108 98t-40 125q0 78 53 144t143 104 197 38 197-38 143-104 53-144z m214-142q0-67-40-126t-108-98q5-14 11-25t14-21 13-16 14-17 13-14q0 0 2-2t3-3 2-3 2-3l1-3t1-3 1-4-1-3q-2-8-7-13t-12-4q-28 4-48 9-86 23-156 72-50-9-98-9-151 0-263 74 32-3 49-3 90 0 172 25t148 72q69 52 107 119t37 141q0 43-13 85 72-39 114-99t42-128z" horiz-adv-x="1000" />
<glyph glyph-name="octocat" unicode="&#xf09b;" d="M429 779q116 0 215-58t156-156 57-215q0-140-82-252t-211-155q-15-3-22 4t-7 17q0 1 0 43t0 75q0 54-29 79 32 3 57 10t53 22 45 37 30 58 11 84q0 67-44 115 21 51-4 114-16 5-46-6t-51-25l-21-13q-52 15-107 15t-108-15q-8 6-23 15t-47 22-47 7q-25-63-5-114-44-48-44-115 0-47 12-83t29-59 45-37 52-22 57-10q-21-20-27-58-12-5-25-8t-32-3-36 12-31 35q-11 18-27 29t-28 14l-11 1q-12 0-16-2t-3-7 5-8 7-6l4-3q12-6 24-21t18-29l6-13q7-21 24-34t37-17 39-3 31 1l13 3q0-22 0-50t1-30q0-10-8-17t-22-4q-129 43-211 155t-82 252q0 117 58 215t155 156 216 58z m-267-616q2 4-3 7-6 1-8-1-1-4 4-7 5-3 7 1z m18-19q4 3-1 9-6 5-9 2-4-3 1-9 5-6 9-2z m16-25q6 4 0 11-4 7-9 3-5-3 0-10t9-4z m24-23q4 4-2 10-7 7-11 2-5-5 2-11 6-6 11-1z m32-14q1 6-8 9-8 2-10-4t7-9q8-3 11 4z m35-3q0 7-10 6-9 0-9-6 0-7 10-6 9 0 9 6z m32 5q-1 7-10 5-9-1-8-8t10-4 8 7z" horiz-adv-x="857.1" />
<glyph glyph-name="menu" unicode="&#xf0c9;" d="M857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
<glyph glyph-name="dollar" unicode="&#xf155;" d="M546 189q0-86-56-147t-144-77v-97q0-8-5-13t-13-5h-75q-7 0-13 5t-5 13v97q-37 5-71 18t-57 25-41 26-26 21-10 10q-9 12-1 23l58 76q3 5 12 6 9 1 14-5l1-1q63-55 135-70 21-4 42-4 45 0 79 24t35 68q0 16-9 30t-18 23-33 21-37 18-45 18q-21 9-34 14t-34 15-35 17-32 20-29 24-25 27-20 32-11 37-5 44q0 77 55 135t142 75v100q0 7 5 13t13 5h75q8 0 13-5t5-13v-98q32-3 62-13t48-19 36-20 21-17 9-7q9-11 3-22l-46-81q-4-9-12-9-8-2-15 4-2 2-9 7t-21 14-33 18-42 15-47 6q-53 0-87-24t-33-62q0-14 4-27t17-23 22-18 31-18 34-15 39-15q30-11 45-17t43-20 42-24 34-28 30-35 18-43 7-52z" horiz-adv-x="571.4" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200"><path d="m298.4 194.7q0-14.15-.8-31.2l-.85-14.25h-51.05v89.95l8 1.1q9.6 1.05 17.6 1.05 7.95 0 17.5-1.05 4.8-.55 7.95-1.1 1.65-22.2 1.65-44.5m-69.75-45.8h-49.3v182.45l7.7.85q9.3.8 17 .8 12.3 0 24.6-1.65z" fill="#ffffff" transform="translate(-138.85 -140.95)"/></svg>

After

Width:  |  Height:  |  Size: 353 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200"><path d="m298.4 194.7q0-14.15-.8-31.2l-.85-14.25h-51.05v89.95l8 1.1q9.6 1.05 17.6 1.05 7.95 0 17.5-1.05 4.8-.55 7.95-1.1 1.65-22.2 1.65-44.5m-69.75-45.8h-49.3v182.45l7.7.85q9.3.8 17 .8 12.3 0 24.6-1.65z" fill="#2eae9b" transform="translate(-138.85 -140.95)"/></svg>

After

Width:  |  Height:  |  Size: 353 B

View File

@ -0,0 +1,85 @@
<!DOCTYPE html>
<html class="no-js">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<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/droidsans.css" type="text/css" />
<link rel="stylesheet" href="{{ theme_url }}/css/fontello.css" type="text/css" />
</head>
<body{% if config.theme_config.widescreen %} class="widescreen"{% endif %}>
<div id="header" role="banner">
<div class="container">
<a id="nav-toggle" title="Toggle Menu" role="button" aria-controls="nav" aria-expanded="false" tabindex="1">
<span class="icon-menu" aria-hidden="true"></span>
<span class="sr-only">Toggle Menu</span>
</a>
{% if pages["_meta"].meta.logo %}
<div id="logo" aria-hidden="true">
<a href="{{ "index"|link }}">
<img src="{{ pages["_meta"].meta.logo|url }}" alt="" />
</a>
</div>
{% endif %}
<div id="title"{{ pages["_meta"].meta.tagline ? ' class="tagline"' }}>
<a href="{{ "index"|link }}">
<h1>{{ site_title }}</h1>
{{ pages["_meta"].meta.tagline|markdown }}
</a>
</div>
<div id="nav" role="navigation" tabindex="-1">
<ul>
{% for page in pages(depthOffset=-1) if page.title and not page.hidden %}
<li{% if page.id == current_page.id %} class="active"{% endif %}>
<a href="{{ page.url }}">{{ page.title }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>
<div id="main" role="main">
<div class="container">
{{ content }}
</div>
</div>
<div id="footer">
<div class="container">
<div class="social">
{% for social in pages["_meta"].meta.social %}
<a href="{{ social.url }}" title="{{ social.title }}" role="button">
<span class="icon-{{ social.icon }}" aria-hidden="true"></span>
<span class="sr-only">{{ social.title }}</span>
</a>
{% endfor %}
</div>
<p>
<a href="http://picocms.org/">Pico</a> was made by <a href="http://gilbert.pellegrom.me">Gilbert Pellegrom</a>
and is maintained by <a href="https://github.com/picocms/Pico/graphs/contributors">The Pico Community</a>.
Released under the <a href="https://github.com/picocms/Pico/blob/master/LICENSE.md">MIT license</a>.
</p>
</div>
</div>
<script src="{{ theme_url }}/js/modernizr-3.3.1-custom.min.js" type="text/javascript"></script>
<script src="{{ theme_url }}/js/utils.js" type="text/javascript"></script>
<script src="{{ theme_url }}/js/pico.js" type="text/javascript"></script>
</body>
</html>

View File

@ -0,0 +1,3 @@
/*! modernizr 3.3.1 (Custom Build) | MIT *
* https://modernizr.com/download/?-classlist-csstransitions-requestanimationframe !*/
!function(e,n,t){function r(e,n){return typeof e===n}function i(){var e,n,t,i,o,s,a;for(var f in y)if(y.hasOwnProperty(f)){if(e=[],n=y[f],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;t<n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(i=r(n.fn,"function")?n.fn():n.fn,o=0;o<e.length;o++)s=e[o],a=s.split("."),1===a.length?Modernizr[a[0]]=i:(!Modernizr[a[0]]||Modernizr[a[0]]instanceof Boolean||(Modernizr[a[0]]=new Boolean(Modernizr[a[0]])),Modernizr[a[0]][a[1]]=i),C.push((i?"":"no-")+a.join("-"))}}function o(e){return e.replace(/([a-z])-([a-z])/g,function(e,n,t){return n+t.toUpperCase()}).replace(/^-/,"")}function s(e,n){return!!~(""+e).indexOf(n)}function a(e,n){return function(){return e.apply(n,arguments)}}function f(e,n,t){var i;for(var o in e)if(e[o]in n)return t===!1?e[o]:(i=n[e[o]],r(i,"function")?a(i,t||n):i);return!1}function l(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):T?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}function u(e){return e.replace(/([A-Z])/g,function(e,n){return"-"+n.toLowerCase()}).replace(/^ms-/,"-ms-")}function d(){var e=n.body;return e||(e=l(T?"svg":"body"),e.fake=!0),e}function p(e,t,r,i){var o,s,a,f,u="modernizr",p=l("div"),c=d();if(parseInt(r,10))for(;r--;)a=l("div"),a.id=i?i[r]:u+(r+1),p.appendChild(a);return o=l("style"),o.type="text/css",o.id="s"+u,(c.fake?c:p).appendChild(o),c.appendChild(p),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(n.createTextNode(e)),p.id=u,c.fake&&(c.style.background="",c.style.overflow="hidden",f=w.style.overflow,w.style.overflow="hidden",w.appendChild(c)),s=t(p,e),c.fake?(c.parentNode.removeChild(c),w.style.overflow=f,w.offsetHeight):p.parentNode.removeChild(p),!!s}function c(n,r){var i=n.length;if("CSS"in e&&"supports"in e.CSS){for(;i--;)if(e.CSS.supports(u(n[i]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var o=[];i--;)o.push("("+u(n[i])+":"+r+")");return o=o.join(" or "),p("@supports ("+o+") { #modernizr { position: absolute; } }",function(e){return"absolute"==getComputedStyle(e,null).position})}return t}function m(e,n,i,a){function f(){d&&(delete P.style,delete P.modElem)}if(a=r(a,"undefined")?!1:a,!r(i,"undefined")){var u=c(e,i);if(!r(u,"undefined"))return u}for(var d,p,m,v,h,y=["modernizr","tspan","samp"];!P.style&&y.length;)d=!0,P.modElem=l(y.shift()),P.style=P.modElem.style;for(m=e.length,p=0;m>p;p++)if(v=e[p],h=P.style[v],s(v,"-")&&(v=o(v)),P.style[v]!==t){if(a||r(i,"undefined"))return f(),"pfx"==n?v:!0;try{P.style[v]=i}catch(g){}if(P.style[v]!=h)return f(),"pfx"==n?v:!0}return f(),!1}function v(e,n,t,i,o){var s=e.charAt(0).toUpperCase()+e.slice(1),a=(e+" "+_.join(s+" ")+s).split(" ");return r(n,"string")||r(n,"undefined")?m(a,n,i,o):(a=(e+" "+E.join(s+" ")+s).split(" "),f(a,n,t))}function h(e,n,r){return v(e,t,t,n,r)}var y=[],g={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){y.push({name:e,fn:n,options:t})},addAsyncTest:function(e){y.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=g,Modernizr=new Modernizr;var C=[],w=n.documentElement;Modernizr.addTest("classlist","classList"in w);var x="Moz O ms Webkit",_=g._config.usePrefixes?x.split(" "):[];g._cssomPrefixes=_;var S=function(n){var r,i=prefixes.length,o=e.CSSRule;if("undefined"==typeof o)return t;if(!n)return!1;if(n=n.replace(/^@/,""),r=n.replace(/-/g,"_").toUpperCase()+"_RULE",r in o)return"@"+n;for(var s=0;i>s;s++){var a=prefixes[s],f=a.toUpperCase()+"_"+r;if(f in o)return"@-"+a.toLowerCase()+"-"+n}return!1};g.atRule=S;var E=g._config.usePrefixes?x.toLowerCase().split(" "):[];g._domPrefixes=E;var T="svg"===w.nodeName.toLowerCase(),z={elem:l("modernizr")};Modernizr._q.push(function(){delete z.elem});var P={style:z.elem.style};Modernizr._q.unshift(function(){delete P.style}),g.testAllProps=v;var b=g.prefixed=function(e,n,t){return 0===e.indexOf("@")?S(e):(-1!=e.indexOf("-")&&(e=o(e)),n?v(e,n,t):v(e,"pfx"))};Modernizr.addTest("requestanimationframe",!!b("requestAnimationFrame",e),{aliases:["raf"]}),g.testAllProps=h,Modernizr.addTest("csstransitions",h("transition","all",!0)),i(),delete g.addTest,delete g.addAsyncTest;for(var L=0;L<Modernizr._q.length;L++)Modernizr._q[L]();e.Modernizr=Modernizr}(window,document);

View File

@ -0,0 +1,74 @@
/**
* Pico's Default Theme - JavaScript helper
*
* Pico is a stupidly simple, blazing fast, flat file CMS.
*
* @author Daniel Rudolf
* @link http://picocms.org
* @license http://opensource.org/licenses/MIT The MIT License
* @version 2.1
*/
function main()
{
// capability CSS classes
document.documentElement.className = 'js';
// wrap tables
var tables = document.querySelectorAll('#main > .container > table');
for (var i = 0; i < tables.length; i++) {
if (!/\btable-responsive\b/.test(tables[i].parentElement.className)) {
var tableWrapper = document.createElement('div');
tableWrapper.className = 'table-responsive';
tables[i].parentElement.insertBefore(tableWrapper, tables[i]);
tableWrapper.appendChild(tables[i]);
}
}
// responsive menu
var menu = document.getElementById('nav'),
menuToggle = document.getElementById('nav-toggle');
if (menu && menuToggle) {
function toggleMenuEvent(event) {
if (event.type === 'keydown') {
if ((event.keyCode !== 13) && (event.keyCode !== 32)) {
return;
}
}
event.preventDefault();
if (menuToggle.getAttribute('aria-expanded') === 'false') {
menuToggle.setAttribute('aria-expanded', 'true');
utils.slideDown(menu, null, function () {
if (event.type === 'keydown') {
menu.focus();
}
});
} else {
menuToggle.setAttribute('aria-expanded', 'false');
utils.slideUp(menu);
}
}
function onResizeEvent() {
if (utils.isElementVisible(menuToggle)) {
menu.className = 'hidden';
menuToggle.addEventListener('click', toggleMenuEvent);
menuToggle.addEventListener('keydown', toggleMenuEvent);
} else {
menu.className = '';
menu.removeAttribute('data-slide-id');
menuToggle.removeEventListener('click', toggleMenuEvent);
menuToggle.removeEventListener('keydown', toggleMenuEvent);
}
}
window.addEventListener('resize', onResizeEvent);
onResizeEvent();
}
}
main();

View File

@ -0,0 +1,134 @@
/**
* Pico's Default Theme - JavaScript helper
*
* Pico is a stupidly simple, blazing fast, flat file CMS.
*
* @author Daniel Rudolf
* @link http://picocms.org
* @license http://opensource.org/licenses/MIT The MIT License
* @version 2.1
*/
utils = {};
/**
* Checks whether the client's browser is able to slide elements or not
*
* @return {bool} TRUE when the browser supports sliding, FALSE otherwise
*/
utils.canSlide = function ()
{
return (Modernizr.classlist && Modernizr.requestanimationframe && Modernizr.csstransitions);
};
/**
* Slides a element up (i.e. hide a element by changing its height to 0px)
*
* @param {HTMLElement} element the element to slide up
* @param {function} finishCallback function to call when the animation has
* been finished (i.e. the element is hidden)
* @param {function} startCallback function to call when the animation starts
*/
utils.slideUp = function (element, finishCallback, startCallback)
{
if (!utils.canSlide()) {
if (startCallback) startCallback();
element.className += (element.className !== '') ? ' hidden' : 'hidden';
if (finishCallback) window.setTimeout(finishCallback, 16);
return;
}
element.style.height = element.clientHeight + 'px';
var slideId = parseInt(element.getAttribute('data-slide-id')) || 0;
element.setAttribute('data-slide-id', ++slideId);
window.requestAnimationFrame(function () {
element.classList.add('slide');
window.requestAnimationFrame(function () {
element.style.height = '0px';
if (startCallback) {
startCallback();
}
window.setTimeout(function () {
if (parseInt(element.getAttribute('data-slide-id')) !== slideId) return;
element.classList.add('hidden');
element.classList.remove('slide');
element.style.height = null;
if (finishCallback) {
window.requestAnimationFrame(finishCallback);
}
}, 500);
});
});
};
/**
* Slides a element down (i.e. show a hidden element)
*
* @param {HTMLElement} element the element to slide down
* @param {function} finishCallback function to call when the animation has
* been finished (i.e. the element is visible)
* @param {function} startCallback function to call when the animation starts
*/
utils.slideDown = function (element, finishCallback, startCallback)
{
if (!utils.canSlide()) {
if (startCallback) startCallback();
element.className = element.className.replace(/\bhidden\b */g, '');
if (finishCallback) window.setTimeout(finishCallback, 16);
return;
}
var cssRuleOriginalValue = element.clientHeight + 'px',
slideId = parseInt(element.getAttribute('data-slide-id')) || 0;
element.setAttribute('data-slide-id', ++slideId);
element.style.height = null;
element.classList.remove('hidden');
element.classList.remove('slide');
var cssRuleValue = element.clientHeight + 'px';
element.style.height = cssRuleOriginalValue;
window.requestAnimationFrame(function () {
element.classList.add('slide');
window.requestAnimationFrame(function () {
element.style.height = cssRuleValue;
if (startCallback) {
startCallback();
}
window.setTimeout(function () {
if (parseInt(element.getAttribute('data-slide-id')) !== slideId) return;
element.classList.remove('slide');
element.style.height = null;
if (finishCallback) {
window.requestAnimationFrame(finishCallback);
}
}, 500);
});
});
};
/**
* Checks whether a element is visible or not
*
* @param {HTMLElement} element the element to check
*
* @return {bool} TRUE when the element is visible, FALSE otherwise
*/
utils.isElementVisible = function (element)
{
return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
};

View File

@ -0,0 +1,14 @@
api_version: 3 # Use Pico's latest API version for themes
meta: # Register meta headers used by this theme
Logo: logo # The URL to your website's logo (value is passed to Pico's "url" Twig filter)
Tagline: tagline # Your website's tag line, shown right below your site title (supports Markdown)
Social: social # A list of social icons that will be shown in your website's footer;
# You must specify a "title", "url" and "icon" per entry
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
widescreen: false # Use more horicontal space (i.e. make the site container wider)