From: Harris Lapiroff Date: Wed, 25 May 2011 21:46:44 +0000 (-0400) Subject: Lots of updates. Pretty much early-release ready--just needs documentation links. X-Git-Url: http://git.ithinksw.org/philo.git/commitdiff_plain/f4ec4ce7ba83b9aab095da9da70b500147d6dfc5 Lots of updates. Pretty much early-release ready--just needs documentation links. --- diff --git a/index.html b/index.html index 1a280ce..934f8e0 100644 --- a/index.html +++ b/index.html @@ -9,29 +9,36 @@
-Fork me on GitHub
+ Fork me on GitHub +
+ +
+

Philo

+ Install
-

Philo is a powerful content-management system built with Django.

+
+

Philo is a powerful content-management system built with Django. It manages websites, simple and complex.

+

Features

-

Philo allows the creation of complex site structures from Django’s web-based admin interface (or similar database-editing interface). For a simple site, you will use the following three objects, included in the Philo core.

+

Philo allows the creation of complex site structures from Django’s own admin interface (or similar database interface). For a simple site, you will use the following three objects, included in the Philo core.

    -
  • Nodes are the basic building blocks of a website using Philo. They define the URL hierarchy and connect each URL to a View subclass instance, such as a Page.
  • +
  • Nodes are the basic building blocks of a website using Philo. They define the URL hierarchy and connect each URL to a View subclass instance, such as a Page.
  • Templates are Django templates, stored in the database and editable from the Django admin (or similar).
  • Pages are a simple view subclass which return a basic HTML page according to a template. They have related, editable Contentlets and Content References based on {% container %} tags used in the template.
-

Philo also provides a number of useful template tags, in particular {% container %}, which generates a relationship (and a field in the admin interface) on any pages which use that template.

+

Philo also provides a number of useful template tags, in particular {% container %}, which generates a relationship (and a field in the admin interface) on any pages which use that template. For more about Philo and its features, read the documentation.

@@ -39,20 +46,20 @@
- +
Put container tags in your template.
- +
Edit the contentlets on the page.
- +
See the results on your site!
-

You can use also collections, redirects, files, content references (all included in the Philo core), as well as the Philo contrib apps and your own code to create and manage more powerful, complex websites.

+

You can use also collections, redirects, files, content references (all included in the Philo core), as well as the Philo contrib apps and your own code to create and manage more powerful, complex websites.

@@ -78,49 +85,54 @@ Custom authentication systems.
  • - (in development) + (in development) Gilbert Alternative web-based admin.
  • - (in development) + (in development) Julian Calendar and events system.
  • - (in development) + (in development) Edmonia Asset management.
  • - (in development) + (in development) Bartleby Form generation and handling.
  • - (planned) + (planned) Forums.
  • - (planned) + (planned) Wikis.
  • -

    Install Philo

    +

    Install Philo

    - git clone https://github.com/ithinksw/philo.git + git clone git://git.ithinksw.org/philo.git python philo/setup.py install rm -rf philo
    +
    +

    Get Involved

    +

    Philo is still under heavy-development. If you’re a Python/Django developer, help out by forking Philo on GitHub to add features or fix bugs.

    +
    +
    diff --git a/static/css/screen.css b/static/css/screen.css index 1877405..d52c659 100644 --- a/static/css/screen.css +++ b/static/css/screen.css @@ -70,7 +70,14 @@ html > body { ::selection { background: #ff6ae6; text-shadow: none !important; - color: #FFF !important; } + color: white !important; } + +@-webkit-keyframes glow { + 0% { + text-shadow: 0 0 3px rgba(255, 255, 255, 0); } + + 100% { + text-shadow: 0 0 3px rgba(255, 255, 255, 0.5); } } body { background: #e0e5ef; @@ -92,29 +99,93 @@ body { #nameplate { font-size: 3.75em; line-height: 1.25em; - margin-bottom: 25px; - padding-bottom: 5px; - border-bottom: 5px solid #333333; - -moz-box-shadow: 0 1px 0 white; - -webkit-box-shadow: 0 1px 0 white; - -o-box-shadow: 0 1px 0 white; - box-shadow: 0 1px 0 white; - font-family: "Expletus Sans", Helvetica, Arial, serif; } + font-family: "Expletus Sans", Helvetica, Arial, serif; + position: relative; } -#content a { - color: black; +.installButton { + height: 30px; + color: #222222; text-decoration: none; - background: #aebbd5; - padding: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - -khtml-border-radius: 3px; - border-radius: 3px; } + font-size: 25px; + line-height: 36px; + font-family: "Expletus Sans", Helvetica, Arial, serif; + text-transform: uppercase; + letter-spacing: 2px; + float: right; + width: 160px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; + -moz-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15); + -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15); + -o-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15); + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15); + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #eeeeee), color-stop(100%, #d4d4d4)); + background: -webkit-linear-gradient(#eeeeee, #d4d4d4); + background: -moz-linear-gradient(#eeeeee, #d4d4d4); + background: -o-linear-gradient(#eeeeee, #d4d4d4); + background: linear-gradient(#eeeeee, #d4d4d4); + text-shadow: #FFF 0 1px 0; + border: 1px solid #eeeeee; + padding: 5px 10px; + position: absolute; + top: 10px; + right: 0; } + .installButton::after { + content: '\2b07'; + font-size: 20px; + line-height: 20px; + padding: 7px 1px 3px 4px; + width: 25px; + -moz-border-radius: 15px; + -webkit-border-radius: 15px; + -o-border-radius: 15px; + -ms-border-radius: 15px; + -khtml-border-radius: 15px; + border-radius: 15px; + -moz-box-shadow: 0 1px 0 0 white, 0 1px 2px 0 rgba(0, 0, 0, 0.15) inset; + -webkit-box-shadow: 0 1px 0 0 white, 0 1px 2px 0 rgba(0, 0, 0, 0.15) inset; + -o-box-shadow: 0 1px 0 0 white, 0 1px 2px 0 rgba(0, 0, 0, 0.15) inset; + box-shadow: 0 1px 0 0 white, 0 1px 2px 0 rgba(0, 0, 0, 0.15) inset; + background: #bbbbbb; + float: left; + text-align: center; + margin-right: 10px; + font-family: Helvetica, Arial, sans-serif; } + .installButton:hover { + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #eeeeee), color-stop(100%, #c8c8c8)); + background: -webkit-linear-gradient(#eeeeee, #c8c8c8); + background: -moz-linear-gradient(#eeeeee, #c8c8c8); + background: -o-linear-gradient(#eeeeee, #c8c8c8); + background: linear-gradient(#eeeeee, #c8c8c8); } + .installButton:active { + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c8c8c8), color-stop(100%, #eeeeee)); + background: -webkit-linear-gradient(#c8c8c8, #eeeeee); + background: -moz-linear-gradient(#c8c8c8, #eeeeee); + background: -o-linear-gradient(#c8c8c8, #eeeeee); + background: linear-gradient(#c8c8c8, #eeeeee); + -moz-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15), 0 0 16px 0 rgba(0, 0, 0, 0.15) inset; + -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15), 0 0 16px 0 rgba(0, 0, 0, 0.15) inset; + -o-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15), 0 0 16px 0 rgba(0, 0, 0, 0.15) inset; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15), 0 0 16px 0 rgba(0, 0, 0, 0.15) inset; + color: #080808; } + .installButton:active::after { + background: #a2a2a2; } + +#content a { + color: #354668; + border-bottom: 1px solid #9dadcc; + -moz-box-shadow: 0 1px 0 0 white; + -webkit-box-shadow: 0 1px 0 0 white; + -o-box-shadow: 0 1px 0 0 white; + box-shadow: 0 1px 0 0 white; + text-decoration: none; } #content a:hover { - background: #95a1bb; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.65); } + color: #354668; + border-bottom: 1px solid #354668; } #content p, #content ul, #content ol, #content header { margin-bottom: 1.563em; } #content h1, #content h2, #content h3, #content h4, #content h5, #content h6 { @@ -142,6 +213,7 @@ body { font-size: 0.813em; line-height: 1.923em; } #content .codeblock { + margin-bottom: 1.563em; padding: 10px; display: block; } #content .codeblock code, #content .codeblock .codeblock { @@ -162,6 +234,8 @@ body { #content .codeblock.shell code::before, #content .codeblock.shell .codeblock::before { content: "$ "; color: #4d4d4d; } +#content .pname { + color: #354668; } .three-up { background: #333333; @@ -231,6 +305,46 @@ body { font-size: 0.813em; line-height: 1.923em; } +#whatIs { + padding: 10px; + background: #333333; + margin-bottom: 20px; + line-height: 30px; + font-size: 20px; + -moz-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.35) inset, 0 1px 0 0 white; + -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.35) inset, 0 1px 0 0 white; + -o-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.35) inset, 0 1px 0 0 white; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.35) inset, 0 1px 0 0 white; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; + text-shadow: 0 -1px 0 black; + text-align: center; + -webkit-font-smoothing: antialiased; + color: #cccccc; } + #whatIs :last-child { + margin-bottom: 0; } + #whatIs .w1 { + font-weight: bold; } + #whatIs .s1 { + color: white; + display: block; } + #whatIs a { + background: transparent; + padding: 0; + color: #73e600; + border-width: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -o-box-shadow: none; + box-shadow: none; } + #whatIs a:hover { + background: transparent; + color: #73e600; } + #modelList { margin-left: 1.5em; } #modelList li { @@ -242,7 +356,7 @@ body { #contribList { background: #333333; margin: 25px -10px; - padding: 20px 10px; + padding: 20px 10px 10px 10px; -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; @@ -288,6 +402,14 @@ body { font-size: 0.813em; line-height: 1.923em; float: right; } + #contribList .status.dev { + -webkit-animation-name: glow; + -webkit-animation-duration: 1s; + -webkit-animation-timing-function: ease; + -webkit-animation-iteration-count: infinite; + -webkit-animation-direction: alternate; } + #contribList .status.pla { + opacity: .5; } footer { margin-top: 25px; diff --git a/static/scss/_var.scss b/static/scss/_var.scss index 6e4c9e6..d90b1ce 100644 --- a/static/scss/_var.scss +++ b/static/scss/_var.scss @@ -9,6 +9,8 @@ $page-width: 750px; $page-background: #E0E5EF; $content-background: transparent; $foreground: #333; +$accent: #408000; +$accent2: #004080; $textfonts: Helvetica, Arial, serif; $headingfonts: "Expletus Sans", $textfonts; diff --git a/static/scss/screen.scss b/static/scss/screen.scss index d6a043c..b115015 100644 --- a/static/scss/screen.scss +++ b/static/scss/screen.scss @@ -16,6 +16,15 @@ color:#FFF !important; } +@-webkit-keyframes glow{ + 0% { + text-shadow: 0 0 3px rgba(255,255,255,0); + } + 100% { + text-shadow: 0 0 3px rgba(255,255,255,.5); + } +} + body{ background:$page-background; @include background( @@ -33,24 +42,70 @@ body{ #nameplate{ @include adjust-font-size-to(60px); - margin-bottom:25px; - padding-bottom:5px; - border-bottom:5px solid $foreground; - @include box-shadow(0 1px 0 #FFF); font-family:$headingfonts; + position:relative; +} + +.installButton{ + height:30px; + $buttoncolor:#EEE; + $buttonbottom:darken($buttoncolor, 10%); + $buttonfore:darken($buttoncolor, 80%); + color:$buttonfore; + text-decoration:none; + font-size:25px; + line-height:36px; + font-family:$headingfonts; + text-transform:uppercase; + letter-spacing:2px; + float:right; + width:160px; + @include border-radius(5px); + @include box-shadow(0 1px 3px 0 rgba(0,0,0,.15)); + @include background(linear-gradient($buttoncolor, $buttonbottom)); + text-shadow: #FFF 0 1px 0; + border:1px solid $buttoncolor; + padding:5px 10px; + position:absolute; + top:10px; + right:0; + &::after{ + content: '\2b07'; + font-size:20px; + line-height:20px; + padding:7px 1px 3px 4px; + width:25px; + @include border-radius(15px); + @include box-shadow(0 1px 0 0 #FFF, 0 1px 2px 0 rgba(0,0,0,.15) inset); + background:darken($buttoncolor,20%); + float:left; + text-align:center; + margin-right:10px; + font-family:Helvetica, Arial, sans-serif; + } + &:hover{ + @include background(linear-gradient($buttoncolor, darken($buttonbottom, 5%))); + } + &:active{ + @include background(linear-gradient(darken($buttonbottom, 5%), $buttoncolor)); + @include box-shadow(0 1px 3px 0 rgba(0,0,0,.15), 0 0 16px 0 rgba(0,0,0,.15) inset); + color:darken($buttonfore, 10%); + &::after{ + background:darken($buttoncolor, 30%); + } + } } #content{ a{ - color: darken($foreground, 20%); + color: darken($page-background, 60%);; + border-bottom:1px solid darken($page-background, 20%); + @include box-shadow(0 1px 0 0 #FFF); text-decoration:none; - background: darken($page-background, 15%); - padding:3px; - @include border-radius(3px); &:hover{ - background: desaturate(darken($page-background, 25%), 10%); - text-shadow: 0 1px 0 rgba(255,255,255,.65); - }; + color: darken($page-background, 60%); + border-bottom:1px solid darken($page-background, 60%); + } } p, ul, ol, header{ @include margin-trailer; @@ -74,6 +129,7 @@ body{ } .codeblock{ @extend code; + @include margin-trailer; padding: 10px; display:block; code{ @@ -89,6 +145,9 @@ body{ color:lighten($foreground, 10%); } } + .pname{ + color:darken($page-background, 60%); + } } .three-up{ @@ -145,6 +204,41 @@ body{ @include clearfix; } +#whatIs{ + padding:10px; + background:$foreground; + margin-bottom:20px; + line-height:30px; + font-size:20px; + @include box-inset(rgba(0,0,0,.35), #FFF); + @include border-radius(5px); + text-shadow: 0 -1px 0 #000; + text-align:center; + -webkit-font-smoothing: antialiased; + color:lighten($foreground, 60%); + :last-child{ + margin-bottom:0; + } + .w1{ + font-weight:bold; + } + .s1{ + color:lighten($foreground, 80%); + display:block; + } + a{ + background:transparent; + padding:0; + color:lighten($accent, 20%); + border-width:0; + @include box-shadow(none); + &:hover{ + background:transparent; + color:lighten($accent, 20%); + } + } +} + #modelList{ margin-left: 1.5em; li{ @@ -161,7 +255,7 @@ body{ $width: $page-width + $pad; background: $foreground; margin:$base-line-height #{-$pad}; - padding:#{2*$pad} $pad; + padding:#{2*$pad} $pad $pad $pad; @include border-radius(5px); @include box-shadow(0 1px 0 0 #FFF, 0 2px 4px rgba(0,0,0,.35) inset); @include clearfix; @@ -194,6 +288,16 @@ body{ font-style:italic; @include adjust-font-size-to(13px); float:right; + &.dev{ + -webkit-animation-name: glow; + -webkit-animation-duration: 1s; + -webkit-animation-timing-function: ease; + -webkit-animation-iteration-count: infinite; + -webkit-animation-direction: alternate; + } + &.pla{ + opacity:.5; + } } }