more changes
This commit is contained in:
parent
6e713e7b99
commit
3b32421428
5
Manifest
5
Manifest
@ -1,5 +1,10 @@
|
||||
Manifest
|
||||
Rakefile
|
||||
bin/trivialize
|
||||
content/index.html
|
||||
dist/htaccess.dist
|
||||
lib/trivial.php
|
||||
readme.md
|
||||
styles/application.css
|
||||
trivial.gemspec
|
||||
views/application.inc
|
||||
|
2
Rakefile
2
Rakefile
@ -2,7 +2,7 @@ require 'rubygems'
|
||||
require 'rake'
|
||||
require 'echoe'
|
||||
|
||||
Echoe.new('trivial', '0.0.2') do |p|
|
||||
Echoe.new('trivial', '0.0.3') do |p|
|
||||
p.summary = "Ultra-lightweight website framework for PHP"
|
||||
p.description = <<-EOT
|
||||
For those who are using PHP to build their sites and want a very simple framework
|
||||
|
@ -12,13 +12,14 @@ FileUtils.mkdir ARGV[0] if (!File.directory? ARGV[0])
|
||||
FileUtils.mkdir File.join(ARGV[0], dir) if (!File.directory? File.join(ARGV[0], dir))
|
||||
end
|
||||
|
||||
FileUtils.cp(File.join(File.dirname(__FILE__), '..', 'lib', 'trivial.php'), File.join(ARGV[0], 'lib', 'trivial.php'))
|
||||
FileUtils.cp(File.join(File.dirname(__FILE__), '..', 'dist', 'htaccess.dist'), File.join(ARGV[0], '.htaccess'))
|
||||
|
||||
if !File.exists? File.join(ARGV[0], 'content', 'index.html')
|
||||
File.open File.join(ARGV[0], 'content', 'index.html'), "w" do |fh|
|
||||
fh.puts %{Your Website construction work just became <a href="http://github.com/johnbintz/trivial/">trivial</a>!}
|
||||
end
|
||||
[
|
||||
[ [File.dirname(__FILE__), '..', 'lib', 'trivial.php'], [ARGV[0], 'lib', 'trivial.php'] ],
|
||||
[ [File.dirname(__FILE__), '..', 'dist', 'htaccess.dist'], [ARGV[0], '.htaccess'] ],
|
||||
[ [File.dirname(__FILE__), '..', 'views', 'application.inc'], [ARGV[0], 'views', 'application.inc'] ],
|
||||
[ [File.dirname(__FILE__), '..', 'content', 'index.html'], [ARGV[0], 'content', 'index.html'] ],
|
||||
[ [File.dirname(__FILE__), '..', 'styles', 'application.css'], [ARGV[0], 'styles', 'application.css'] ]
|
||||
].each do |src, dest|
|
||||
FileUtils.cp(File.join(*src), File.join(*dest))
|
||||
end
|
||||
|
||||
puts "Done! Make sure you can use .htaccess files in your Webserver setup."
|
||||
|
5
content/index.html
Normal file
5
content/index.html
Normal file
@ -0,0 +1,5 @@
|
||||
<h1>Welcome to Trivial</h1>
|
||||
|
||||
<p>
|
||||
Buiding your site has now become <a href="http://github.com/johnbintz/trivial">trivial</a>!
|
||||
</p>
|
@ -39,11 +39,11 @@ $requested = preg_replace('#/$#', '/index.html', $_SERVER['REDIRECT_URL']);
|
||||
$requested = preg_replace("#${trim}/(.*)\.[^\.]+\$#", '\1', $requested);
|
||||
|
||||
function styles($additional = array()) {
|
||||
return head_component($additional, 'styles/%s.css', '<link rel="stylesheet" href="%s" type="text/css" />');
|
||||
return head_component($additional, 'styles/%s.css', '<link rel="stylesheet" href="styles/%s.css" type="text/css" />');
|
||||
}
|
||||
|
||||
function scripts($additional = array()) {
|
||||
return head_component($additional, 'scripts/%s.js', '<script type="text/javascript" src="%s"></script>');
|
||||
return head_component($additional, 'scripts/%s.js', '<script type="text/javascript" src="scripts/%s.js"></script>');
|
||||
}
|
||||
|
||||
function head_component($additional, $search, $format) {
|
||||
|
37
readme.md
Normal file
37
readme.md
Normal file
@ -0,0 +1,37 @@
|
||||
# Trivial - the ultra-lightweight Web framework for PHP
|
||||
|
||||
## Installation
|
||||
|
||||
Installation is done via RubyGems:
|
||||
|
||||
`gem install trivial`
|
||||
|
||||
A new binary is created, `trivialize`.
|
||||
|
||||
## Creating a new site
|
||||
|
||||
`cd` to the directory where you want your new site and type:
|
||||
|
||||
`trivialize my-new-site`
|
||||
|
||||
A directory called `my-new-site` will be created with the site structure in place. An example `content/index.html` and `views/application.inc` will also be installed.
|
||||
|
||||
## The request process
|
||||
|
||||
When a request comes in to that directory for a file that doesn't exist, trivial
|
||||
does the following (for the examples, the request was for `about_us/contact.html` and the default `$layout` value is `"application"`):
|
||||
|
||||
* The `content` folder is checked for a `.html` file that matches the path (`content/about_us/contact.html`). If it exists, the contents of the file are pulled into the global `$content` variable.
|
||||
* The `actions` folder is checked for two files:
|
||||
* `actions/application.inc`
|
||||
* `actions/about_us/contact.inc`
|
||||
Each found file is included into the program, potentially modifying `$content` or `$layout`.
|
||||
* The `views` folder is checked for two files:
|
||||
* `views/about_us/contact.inc`
|
||||
* `views/application.inc`
|
||||
Each found file is included into the program, including `$content` where specified and outputting back into `$content`.
|
||||
* The value of `$content` is output to the visitor.
|
||||
|
||||
## Styles and scripts
|
||||
|
||||
Styles and scripts can be searched for in a structured way. The included `views/application.inc` gives an example as to how this works.
|
7
styles/application.css
Normal file
7
styles/application.css
Normal file
@ -0,0 +1,7 @@
|
||||
* {
|
||||
font-family: helvetica, arial
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #eee
|
||||
}
|
38
trivial.gemspec
Normal file
38
trivial.gemspec
Normal file
@ -0,0 +1,38 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
Gem::Specification.new do |s|
|
||||
s.name = %q{trivial}
|
||||
s.version = "0.0.3"
|
||||
|
||||
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
||||
s.authors = ["John Bintz"]
|
||||
s.date = %q{2010-03-21}
|
||||
s.default_executable = %q{trivialize}
|
||||
s.description = %q{ For those who are using PHP to build their sites and want a very simple framework
|
||||
in which to organize their files, trivial is the solution. It's one PHP file
|
||||
that can include a few other pre-determined PHP and HTML files based on the
|
||||
request URI. This very simple division of content, actions (controllers), and
|
||||
views allows for multiple people to easily work on a smaller project without
|
||||
the overhead of a larger framework.
|
||||
}
|
||||
s.email = %q{john@coswelproductions.com}
|
||||
s.executables = ["trivialize"]
|
||||
s.extra_rdoc_files = ["bin/trivialize", "lib/trivial.php"]
|
||||
s.files = ["Manifest", "Rakefile", "bin/trivialize", "content/index.html", "dist/htaccess.dist", "lib/trivial.php", "readme.md", "styles/application.css", "trivial.gemspec", "views/application.inc"]
|
||||
s.homepage = %q{http://github.com/johnbintz/trivial}
|
||||
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Trivial", "--main", "readme.md"]
|
||||
s.require_paths = ["lib"]
|
||||
s.rubyforge_project = %q{trivial}
|
||||
s.rubygems_version = %q{1.3.6}
|
||||
s.summary = %q{Ultra-lightweight website framework for PHP}
|
||||
|
||||
if s.respond_to? :specification_version then
|
||||
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
||||
s.specification_version = 3
|
||||
|
||||
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
||||
else
|
||||
end
|
||||
else
|
||||
end
|
||||
end
|
10
views/application.inc
Normal file
10
views/application.inc
Normal file
@ -0,0 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>My Application</title>
|
||||
<?php echo scripts() ?>
|
||||
<?php echo styles() ?>
|
||||
</head>
|
||||
<body>
|
||||
<?php echo $content ?>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user