summaryrefslogtreecommitdiff
path: root/README.md
blob: baf88d6ebd0c03918afca8ec41550fd6b1d1c081 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
About this web application
============================

The LEAP public website is lightweight rails application that just mostly
serves up (semi) static templates.

No databases are used or harmed in the making of this website.

The goal with this web app is to be as flexible and lightweight as possible,
and to support stellar localization.

There are numerous ruby tools to build static websites, but I found them to
not be good for localization and to be too inflexible.

Installation

    sudo apt-get install ruby ruby-dev rubygems
    gem install bundler
    git clone git://leap.se/leap_website
    cd leap_website
    bundle

Optional

    sudo apt-get install python-docutils    # for ReStructuredText support

Running in development mode

    cd leap_website
    rails server thin

Console examples

    rails console
    rails console production
    rails dbconsole

Rake takes

    rake doc:app

Running in production (with thin)

    bundle exec rake assets:precompile
    RAILS_ENV=production rails server thin


Modifying pages
======================================

Edit the HAML files found in leap_website/pages


Deploying
======================================

Manually
----------------

    rsync -a leap_website server:~
    ssh server
    cd leap_website
    bundle install --deployment

With Capistrano
---------------------

    Edit config/deploy.rb
    cap setup
    cap deploy

Running with Apache
------------------------

Install Passenger (mod_rack)

   sudo apt-get install libapache2-mod-passenger

Configure Apache

    <VirtualHost *:80>
      ServerName leap.se
      DocumentRoot /home/leap/leap_website/public
      <Directory /home/leap/leap_website/public>
        Allow from all
        Options -MultiViews
      </Directory>
    </VirtualHost>


Development
==============================

This app uses precompiled assets.

If you change a sass source file, you must run this before deploying:

  rake assets:precompile RAILS_ENV=production

To make the stylesheets autogenerate again in development mode, run this:

  rake assets:clean


Development Notes
=============================

Search
---------------------------

Maybe we should add search.

This appears to be the most appropriate search tool to use for this static webapp: http://xapian.org/docs/bindings/ruby/

Some notes on how flask does a similar thing::
* http://librelist.com/browser//flask/2012/3/21/maillinglist-archive-searchable/#ff1d34246a16845c410d2c9a411f5829
* https://github.com/mitsuhiko/flask/blob/website/flask_website/search.py
* https://github.com/mitsuhiko/flask/blob/website/flask_website/views/mailinglist.py

pure ruby, for ar: https://github.com/dougal/acts_as_indexed/

Other static CMS in ruby
-----------------------------

* http://nestacms.com/
* https://github.com/gma/nesta
* https://github.com/gma/nesta-rails
* https://github.com/quickleft/regulate -- git, engine, cms, rails