For most of my clients I use WordPress as my go-to CMS for a simple, page-driven. It's not uncommon to have a situation where the general hierarchy of the site has been agreed upon but not all the content has been written. As I sloooooowly wait for that information to trickly I like to dive into actually building the thing, and sometimes this is you find you need to make blank dummy pages for some of the content.
Because I was tired of clicking the "new page" button 20 times to create twenty blank dummy pages for the site I was working on I developer the WP-Quick-Pages plugin.
This plugin adds a page to the admin area that allows you to rapidly create blank pages. In the text field you can enter one page per line, like this:
Home
About
Links
FAQ
Contact
Pretty simple, right? It does one other nice thing: it lets you create hierarchies! Here's a nother take on that basic structure, with additional subpages added:
Home
About
- History
- Team
-- John Doe
-- Jane Doe
Links
- Our Projects
- Friends Projects
FAQ
Contact
- Form
The number of hyphens determines the depth of the page and the appropriate parent ID gets assigned as the pages are created. So, assuming you have pretty permalinks enabled, the URL for John Does' bio page would automatically look something like:
http://example.com/about/team/john-doe
Isn't that nicer than clicking on the "Add new page" button a thousand time and manually selecting the parent pages?
You can find the source on GitHub (Pull requests welcome!) and a link in the WP Plugin Directory.
If you use Jekyll and pjax in your projects then you might be interested in jekyll-pjax. It's a standard Jeykll template designed with pjax in mind. Because using multiple layouts for a single Jekyll page appeared to be something that would require writing a plugin or extending the core, I wrote a shell script that will analyze your Jekyll site and generate the appropriate snippets. It comes bundled with an .htaccess file to make pjax work without much server-side help.
View the demo here:
http://snaptortoise.com/pjaxify-demo
Fork it on Github:
https://github.com/snaptortoise/jekyll-pjax
Today I experimented with pjax for an interal project. It's a client-side approach to speeding page loads with pushState and AJAX by only loading the minimum HTML necessary and injecting it into the existing page, avoiding a full-page reload. It makes a ton of sense for web pages that have a relatively static "chrome" that surrounds the primary content, which covers about 90% of websites. This approach has the advantage of speeding up loading times and decreasing the number of and size of the requests between your server and the browser.
It's not the sort of thing you can magically drop-in and convert your site with. The requests require HTML snippets, not full pages. If you're using some kind of server-side framework to construct your pages with templates that contain precomposed headers and footers it's not too terribly difficult. The source code for the demo site shows how this can be done with Ruby. Essentially you update your code to look for the HTTP_X_PJAX header when the request is made. If it's not present you present the full page, header and footer included. If it is you only have to server the basic content (Along with a title tag to give the impression of an ordinary page load...).
What if you have a site that's static HTML? You'll essentially have to make a copy of your site into a dedicated snippets folder, removing the header and footer content from each file so it only exists as a snippet of the unique content on that page. Already this probably doesn't seem worth the effort and you should probably consider looking into a server-side approach... Anyways, assuming you're running Apache and mod_rewrite you, can then include something like this in your htaccess file:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-PJAX} true
RewriteRule ([a-zA-Z0-9\_\-]+).html snippets/$1.html
Browsers that don't support pjax will load the static pages as normal while the ones that do will pull up the appropriate snippets you've stored in the snippets folder.
I'm thinking about creating a Jekyll template that creates the snippets automatically somehow...