Commit graph

619 commits

Author SHA1 Message Date
Daniel Rudolf 2ca711ad59 Add missing rawurlencode() to Pico::getPageUrl()
Replace urldecode() in Pico::evaluateRequestUrl() with rawurldecode()
See #272 for details, thanks @smcdougall for spotting!
2015-11-08 03:12:18 +01:00
Daniel Rudolf e144cce6b1 Update .gitignore 2015-11-06 21:19:17 +01:00
Daniel Rudolf 7b4ad7f234 Version 1.0.0-beta.1
**Note:** This changelog only provides basic information about the enormous
          changes introduced with Pico 1.0.0-beta.1. Please refer to the
          UGPRADE section of the docs for details.

```
* [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] #93, #158: Pico doesn't parse all content files anymore; moved to
            `PicoParsePagesContent` plugin, but still impacts performance;
            Note: This means `$page['content']` isn't available anymore, but
            usually the new `$page['raw_content']` is suitable as replacement.
* [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] Moving Pico's excerpt feature to `PicoExcerpt` plugin
```
2015-11-06 19:13:17 +01:00
Daniel Rudolf 2d6859af60 Update .travis.yml 2015-11-06 19:13:01 +01:00
Daniel Rudolf e5b0ec6d7b Merge pull request #252 from PhrozenByte/pico1.0
Pico 1.0
2015-11-06 19:06:39 +01:00
Daniel Rudolf cd1dc07d81 Sync docs 2015-11-06 17:50:22 +01:00
theshka 82cbe37009 fix typos 2015-11-06 10:15:28 -06:00
Daniel Rudolf e3e0300025 Fix typo 2015-11-06 02:02:04 +01:00
Daniel Rudolf cd7cd374bb Add content filter to get the parsed contents of a page (lazy loading) 2015-11-06 01:08:31 +01:00
Daniel Rudolf b5d54d05c4 Update .travis.yml: Name release archives "pico-release-$TRAVIS_TAG.tar.gz"
Should make it easier for a ordinary user to distinct source code and release 😃
2015-11-05 21:58:45 +01:00
Daniel Rudolf 19f708e572 Sync documentation 2015-11-04 22:44:19 +01:00
Daniel Rudolf af8de56512 Fix typos 2015-11-04 19:50:44 +01:00
Daniel Rudolf 2a43b21bae Enable PicoDeprecated if no plugins are loaded 2015-11-04 19:44:20 +01:00
Daniel Rudolf ccac8dd4d3 Force trailing slash of $config['base_url'] and force existance of $config['timezone'] 2015-11-04 19:43:54 +01:00
Daniel Rudolf e3a6116c79 Sync documentation 2015-11-04 19:43:06 +01:00
Daniel Rudolf 90128f4946 Fix possible foreach on null errors 2015-11-03 23:49:34 +01:00
Daniel Rudolf 82e0ca5216 Small changes
- Use Travis build status
- Update version number in config template
2015-11-03 17:35:33 +01:00
Daniel Rudolf 8164038ff7 Use Markdown for CHANGELOG.md 2015-11-03 17:34:41 +01:00
Daniel Rudolf 48264fce3d Move license.txt and changelog.txt 2015-11-03 17:32:58 +01:00
Daniel Rudolf 365333c62e Update content-sample/index.md 2015-11-03 16:35:27 +01:00
Daniel Rudolf ffc59362be README.md: Add Getting Help section 2015-11-03 15:50:39 +01:00
Daniel Rudolf 2ab361106c Update content-sample/index.md 2015-11-03 00:41:10 +01:00
Daniel Rudolf d65eb553ad Update README.md 2015-11-03 00:09:31 +01:00
Daniel Rudolf 641a5d1a02 Merge branch 'pico1.0' of github.com:PhrozenByte/Pico into pico1.0 2015-11-02 23:44:19 +01:00
Daniel Rudolf 0e0eb567fa Update CONTRIBUTING.md
Add "Keep documentation in sync" section
2015-11-02 23:43:40 +01:00
Daniel Rudolf 92adb27da5 Update README.md
- New Contributing section
- Various small improvements
2015-11-02 22:52:51 +01:00
Daniel Rudolf 8db3bc5a18 Update changelog.txt to reflect ebe007b 2015-11-02 21:52:08 +01:00
Daniel Rudolf a1331e7bd7 Update inline docs to reflect ebe007b 2015-11-02 20:00:48 +01:00
Daniel Rudolf ebe007bd78 Guess content directory
As pointed out by @Lomanic (see https://github.com/picocms/Pico/pull/260#issuecomment-153091890; thank you btw\!) we actually have to explain users how to change the content directory. This runs contrary to our "stupidly simple" claim. So Pico now simply uses the `content` directory when it exists...
2015-11-02 19:48:58 +01:00
Daniel Rudolf 2597e0dd91 Move upgrade instructions from inline docs to README.md in a more generic form 2015-11-02 19:14:07 +01:00
Daniel Rudolf 85d7c510f9 Update CONTRIBUTING.md 2015-11-02 03:16:37 +01:00
Daniel Rudolf 8da62f4aad PicoDeprecated: Making $config globally accessible again
This was dropped without a replacement with Pico 0.9. I checked all changes since Pico 0.8 manually, as far as I can tell there should be no more surprises regarding BC... Thanks @Lomanic for rubbing our nose in the fact that we should check this! I also added the missing changes of Pico 0.9 to changelog.txt
2015-10-31 01:03:24 +01:00
Daniel Rudolf 9a702415fb Remove return $config in config/config.php
I always thought that doing this is pretty unusual... But now it simply breaks BC - please refer to @Lomanic's [comment](https://github.com/picocms/Pico/pull/260#issuecomment-152610857). Using a return statement has no advantages, but increases the probability that something goes wrong (e.g. a clueless user removes the return statement). It was introduced with 23b90e2, but we never released it ([v0.9.1](4cb2b24fae/lib/pico.php (L188-L189))). Removing the return statement shouldn't cause any problems even for users which installed Pico in the meantime. As a result we don't break BC and moreover remove a prior BC break 😃
2015-10-31 00:32:08 +01:00
Daniel Rudolf afb55b9cb6 Improve class docs 2015-10-29 18:13:35 +01:00
Daniel Rudolf e6681ea903 Improve class docs
Also add some ToDos to inline docs
2015-10-29 18:07:45 +01:00
Daniel Rudolf 7a69fdf66d Update CONTRIBUTING.md 2015-10-29 17:16:57 +01:00
Daniel Rudolf d29e2c1f95 Add CONTRIBUTING.md
The file mostly contains adapted contents @theska wrote for our website and the great CONTRIBUTING.md of phpDocumentor (https://github.com/phpDocumentor/phpDocumentor2/blob/v2.8.5/CONTRIBUTING.md)
2015-10-29 16:57:25 +01:00
Daniel Rudolf 54ce5b9699 Various small improvements
- Improve class docs for phpDocumentor
- Add missing onPagesLoading() event to DummyPlugin
- Add some TODOs to the UPGRADE section of the docs
2015-10-29 02:55:30 +01:00
Daniel Rudolf f1fc4c979e Revert commit a068850
According to travis-ci/travis-ci#2111 and some own testing, it isn't possible to combine branch whitelists with tag-based auto deployment. Unfortunately it is necessary to whitelist the gh-pages branch, because Travis implicitly blacklists it.
2015-10-29 01:19:43 +01:00
Daniel Rudolf 638638f5a4 Add UPGRADE section to docs
This is still work in progress
2015-10-29 00:57:54 +01:00
Daniel Rudolf 38081b3d52 Sync docs with website 2015-10-29 00:54:01 +01:00
Daniel Rudolf a068850578 Update .travis.yml
Let Travis build branches master and gh-pages only
2015-10-29 00:37:59 +01:00
Daniel Rudolf 43f9590d5e Update .travis.yml
Use Travis container-based infrastructure
2015-10-28 17:34:10 +01:00
Daniel Rudolf 360e7ab91f Update .travis.yml
Use $TRAVIS_TAG for the "binary" filename
2015-10-28 17:26:43 +01:00
Daniel Rudolf a068a1f9d7 Update changelog.txt
- Add security section
- Add Travis CI
2015-10-28 15:11:34 +01:00
Daniel Rudolf efcbbb8ce0 Update .travis.yml
Build on picocms/Pico only
2015-10-28 14:38:02 +01:00
Daniel Rudolf d3a1308556 Update .travis.yml
Just adding some features inspired by other projects using Travis, e.g. a simple PHP syntax checker with various PHP versions. A short peak into @dav-m85 link leads me to think that running composer and creating the archive should be done with before_deploy rather than script.
2015-10-28 12:53:56 +01:00
David "Paztek" Moreau 3e0161b51a Create .travis.yml 2015-10-28 12:37:46 +01:00
Daniel Rudolf 647a7b5bb7 Trap empty $requestFileParts 2015-10-28 01:41:26 +01:00
Daniel Rudolf 9e2604af85 Prevent content_dir breakouts using malicious request URLs
It's appalling that nobody (including me!) thought about that!
2015-10-28 01:36:28 +01:00