picocms / Pico

Pico is a stupidly simple, blazing fast, flat file CMS.
http://picocms.org/
MIT License
3.83k stars 614 forks source link

Proposal: A new CMS, inspired by Pico #208

Closed eschwartz closed 9 years ago

eschwartz commented 9 years ago

From what I can tell, PicoCMS is no longer maintained (see #199).

I'm considering forking this project, and putting out a new version inspired by what's already here: namely, a dead simple, flat-file CMS for static websites. I think Pico is a really awesome concept, but I don't want to build production sites on top of a open source repo with no maintainer.

Would anyone like to give me a hand putting this together?

My goals for the new CMS would be:

$app = new OurNewKickAssCms();

$app->registerPlugin(new MyAwsomePlugin());  // implements some kind of PluginInterface

// or, hook into event system directly
$eventManager = $app->getEventManager();
$eventManager->addListener(Event::BEFORE_LOAD_CONTENT, function(Event $evt) {
  $context = $evt->getTemplateContext();
  $context->set('foo', 'bar');
});

For some of this, it may be helpful to have some frameworky kind of things. For example, it would be nice to expose the Twig environment as a service, making it available from within plugins. Personally, I'm a big fan of Silex, which is a "microframework" by Sensio Labs, built off of Symfony2 components. It would give us services, routing, and a bit of structure, without being too opinionated or bulky.

My personal goal here it to have a quick bootstrap for making dead-simple static sites for non-profits or small businesses. I'm thinking you could host the clients app on github, and let them use the markdown editor to edit content. Then you could setup Travis to automatically build and deploy.

Anyways, I'm probably overestimating the amount of time I have to put into something like this, but if I can find a couple people to back me up, I'd be willing to give it a shot.

eschwartz commented 9 years ago

One other thing to add -- I'd like to keep this backwards compatible with existing sites and plugins, so folks who already have something going can migrate to the new version.

four43 commented 9 years ago

+1

gilbitron commented 9 years ago

Sounds like a good plan. I was disappointed when I sold Pico that there has been no development on the project.

pschmitt commented 9 years ago

There is another rather active fork, PhileCMS: https://github.com/PhileCMS/Phile Plugins are not compatible anymore though.

eschwartz commented 9 years ago

Cool, thanks @pschmitt -- that looks like what I was imagining. I'll have to play around with that.

bricebou commented 9 years ago

Hi,

It would be nice to see new developments on Pico !

A few time after I just discovered Pico, I've heard about Phile ; but for a non-developper like me, Pico is just perfect. The little I looked to Phile, it seemed to me much more difficult to achieve what I wanted... Pico is quite simple to understant (and I don't understant the whole thing) and I managed to write some basic plugins, mixing usage and fun...

I'll look the evolution of what you are planning to do @eschwartz and maybe I can help with testing. The backward compatiiliy seems interesting but maybe it's quite difficult to achieve ?

One thing that seem important to me is that we have a complete documentation, with examples, snippets, comments in the code ; this way, non-developpers can understand the structure, the way the cms works...

Sorry for my english, I hope you'll understand.

See you !

eschwartz commented 9 years ago

After being directed to Pico, I started looking around at other static-site generators, and found sculpin. It passes all of my requirements, except for:

  1. it's not compatible with Pico (of course)
  2. There are test, but coverage is limited to some core components
  3. I can't read through the entire source in one sitting

3 worries me just a little, and only because of 2. 1 is not a concern to me, but it may be to others.

I think there could be room for something that accomplishes all three of these goals, or at least 2 and 3. It would mean trading extensibility for a small code base, but that could be valuable for some people.

I'm pretty bad at writing concise code (I just like my DI and AbstractFactoryResolverFactoryServiceInterfaces too much), so this is probably not a job for me.

mistergraphx commented 9 years ago

all your suggestions make me thing at "Piecrust" project ...

gilbitron commented 9 years ago

I've decided to make a new effort: https://github.com/BaunCMS/Baun

mistergraphx commented 9 years ago

:+1:

eschwartz commented 9 years ago

Wow, cool.

I started this knowing only about a few lightweight/flat-file CMSs, but it looks like there are a ton out there.

You know what would be really nice... would be a wiki which listed all the different CMSs, with some bullet points for each.

eschwartz commented 9 years ago

Also, this obligatory relevant xkcd.

bricebou commented 9 years ago

@gilbitron Thanks for the sharing ! Unfortunately, I won't be able to use it because of my shared hosting : I can't access to the server through SSH and can't define a new vhost. Is it possible to use an htaccess redirect from the root to the public directory ?

Could you give us some information about the pros of Baun, in comparison to Pico ? Do you plan to add some documentation about plugins ?

Thanks :)

gilbitron commented 9 years ago

Unfortunately you can't use htaccess to redirect from the root to the public directory (as far as I'm aware). Baun is written from the ground up so it has a much nicer, more extendable architecture compared to Pico. There is no plugin functionality at the moment, but this is something I plan to add in the future.

dgleba commented 9 years ago

I found this

http://stackoverflow.com/questions/990392/htaccess-rewrite-to-redirect-root-url-to-subdirectory

It seems to allow redirect to a folder.

dav-m85 commented 9 years ago

@eschwartz You can google this, you'll find a lot of sites with flat file cms comparison. @gilbitron Nice to see you're still in the trade :)

IMHO, one of the strenght of Pico is that it is being installable without any shell access. It would be nice to keep it in future works. A custom composer autoloader could do the trick.

gilbitron commented 9 years ago

I released Baun v1.2.0 the other day and it now comes with an auto-installer script for those who don't have SSH access http://bauncms.com/blog/plugins-auto-installer-and-more

romanov commented 9 years ago

@gilbitron PHP 5.4? How about 5.3? http://phpversions.info/

MorganConrad commented 9 years ago

First, want to ask what is the status of these efforts? Been playing briefly with Pico and like a lot of it, but have a couple of suggestions. Might do them myself for play. But might be better to tag along with your guys efforts.

In get_pages():

  1. Don't read all files recursively from the root content folder for all urls. If you are in a subfolder, i.e. "blogs", read pages from that folder, i.e. content/blogs, not from content. With perhaps a "don't recur" option.
  2. Improved parsing of the page meta stuff. Ideally, it reads all the jey value pairs between some delimiters, not just the title, url, ... excerpt based upon a complex regex. So you don't need to write an extension to add your own tags, they sho up automatically.
dav-m85 commented 9 years ago

@MorganConrad I like your suggestion 1, and it seems that there are some work already ongoing for suggestion 2.