persona 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +91 -0
- data/bin/persona +6 -2
- data/lib/persona/version.rb +1 -1
- data/template/config/persona.yaml +4 -3
- data/template/contents/pages/about.txt +1 -1
- data/template/public/css/main.css +15 -2
- data/template/views/index.erb +3 -3
- data/template/views/layout.erb +8 -20
- metadata +3 -3
- data/README.rdoc +0 -15
data/README.md
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
Persona
|
2
|
+
=======
|
3
|
+
|
4
|
+
Persona is a minimal personal content manager. It is designed for geeks: you need to have Ruby and Git installed in your machine, and know how to use it. However, you don't need to be a Ruby developer.
|
5
|
+
|
6
|
+
Principles:
|
7
|
+
|
8
|
+
* it's for geeks
|
9
|
+
* it's minimal (150 lines of code at the moment)
|
10
|
+
* leverage cloud services and infrastructure
|
11
|
+
* lets you create a website for free (no hosting fees)
|
12
|
+
|
13
|
+
In this stage it's a work in progress, without much documentation.
|
14
|
+
|
15
|
+
Prerequisites
|
16
|
+
-------------
|
17
|
+
You need to have
|
18
|
+
|
19
|
+
1. Ruby (1.8.7 or 1.9.2)
|
20
|
+
2. RubyGems
|
21
|
+
3. git
|
22
|
+
4. a Rack compatible HTTP Server
|
23
|
+
|
24
|
+
installed on your machine.
|
25
|
+
|
26
|
+
If you don't have a Rack server, or you don't know what is it, after you have installed Ruby and RubyGems just type
|
27
|
+
|
28
|
+
$ gem install thin
|
29
|
+
|
30
|
+
Notice: depending on your installation, you might see some problem with permissions while executing the previous command. In this case, try
|
31
|
+
|
32
|
+
$ sudo gem install thin
|
33
|
+
|
34
|
+
|
35
|
+
Create your site
|
36
|
+
----------------
|
37
|
+
|
38
|
+
$ gem install persona
|
39
|
+
$ persona create_site myblog
|
40
|
+
$ cd myblog
|
41
|
+
|
42
|
+
done.
|
43
|
+
|
44
|
+
Test your website
|
45
|
+
-----------------
|
46
|
+
|
47
|
+
From the 'myblog' folder, start your Rack server. If you installed thin, type
|
48
|
+
|
49
|
+
$ thin start
|
50
|
+
|
51
|
+
and open your browser to [localhost:3000](http://localhost:3000/ "localhost:3000")
|
52
|
+
|
53
|
+
Add contents
|
54
|
+
------------
|
55
|
+
|
56
|
+
Pages and blog posts are (at the moment, will likely change soon) specified in HTML-ish files inside the folders /contents/pages and /contents/posts.
|
57
|
+
Have a look at the sample provided in your website.
|
58
|
+
|
59
|
+
Every file specifies in the first 3 rows some metadata (title, author and date) and, after a blank line, the HTML content of the page/post.
|
60
|
+
|
61
|
+
To add a new page, just create another .txt file in the /contents/page folder. If the file is called myfile.txt, it will immediately be visible at http://localhost:3000/pages/myfile
|
62
|
+
|
63
|
+
To add a new blog post, create a .txt file with this naming convention:
|
64
|
+
<year>-<month>-<day>-<post_title>.txt
|
65
|
+
The blog post will be immediately visible under http://localhost:3000/year/month/date/post_title
|
66
|
+
|
67
|
+
|
68
|
+
Customize
|
69
|
+
---------
|
70
|
+
|
71
|
+
The folders
|
72
|
+
public
|
73
|
+
views
|
74
|
+
config
|
75
|
+
contain files you can customize. Have a look!
|
76
|
+
|
77
|
+
What to do next
|
78
|
+
---------------
|
79
|
+
|
80
|
+
A few things you might want to do next
|
81
|
+
|
82
|
+
1. open a github account and project, and upload your website there
|
83
|
+
2. open a Heroku account, and deploy your website there
|
84
|
+
|
85
|
+
Note that, since your website doesn't use a database, you can use the Heroku free plan!
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
(that's it for now, will post more details soon)
|
90
|
+
|
91
|
+
|
data/bin/persona
CHANGED
@@ -8,6 +8,10 @@ end
|
|
8
8
|
|
9
9
|
if (ARGV.length == 2 and ARGV[0] == 'create_site')
|
10
10
|
PersonaTasks.create_site Dir.new('.'), ARGV[1]
|
11
|
-
|
11
|
+
puts "site #{ARGV[1]} created"
|
12
|
+
else
|
13
|
+
puts "\nUsage: \n\n"
|
14
|
+
puts "persona create_site <site_name>"
|
15
|
+
puts "\n"
|
12
16
|
end
|
13
|
-
|
17
|
+
|
data/lib/persona/version.rb
CHANGED
@@ -3,22 +3,34 @@ body {
|
|
3
3
|
margin: 0 auto;
|
4
4
|
font-family: Georgia, 'Baskerville', Times, serif;
|
5
5
|
font-size: 18px;
|
6
|
-
line-height: 27px;
|
7
6
|
padding: 15px;
|
8
7
|
width: 780px;
|
9
8
|
|
10
9
|
}
|
11
|
-
header, footer, section, article {
|
10
|
+
header, footer, section, article, logobar {
|
12
11
|
display: block;
|
13
12
|
}
|
14
13
|
|
15
14
|
body > header {
|
16
15
|
height: 30px;
|
17
16
|
font-size: 16px;
|
17
|
+
vertical-align: top;
|
18
|
+
margin-bottom: 20px;
|
19
|
+
}
|
20
|
+
|
21
|
+
body > logobar {
|
18
22
|
vertical-align: top;
|
19
23
|
margin-bottom: 60px;
|
20
24
|
}
|
21
25
|
|
26
|
+
body > logobar h1 {
|
27
|
+
font-size: 54px;
|
28
|
+
}
|
29
|
+
|
30
|
+
body > logobar h2 {
|
31
|
+
font-size: 20px;
|
32
|
+
}
|
33
|
+
|
22
34
|
#content {
|
23
35
|
}
|
24
36
|
#by {
|
@@ -101,6 +113,7 @@ blockquote {
|
|
101
113
|
|
102
114
|
body > footer {
|
103
115
|
text-align: left;
|
116
|
+
margin-top:90px;
|
104
117
|
margin-left: 10px;
|
105
118
|
font-style: italic;
|
106
119
|
font-size: 18px;
|
data/template/views/index.erb
CHANGED
@@ -14,13 +14,13 @@
|
|
14
14
|
|
15
15
|
<% end %>
|
16
16
|
|
17
|
-
<h2>Older posts</h2>
|
18
|
-
<ul>
|
19
17
|
<% if @posts.size > 3%>
|
18
|
+
<h2>Older posts</h2>
|
19
|
+
<ul>
|
20
20
|
<% @posts[3..-1].each do |post| %>
|
21
21
|
<li>
|
22
22
|
<a href="<%= post.url %>"><%= post.title %></a>, published on <%= post.date.strftime('%b %d, %Y') %>
|
23
23
|
</li>
|
24
24
|
<%end%>
|
25
|
+
</ul>
|
25
26
|
<%end%>
|
26
|
-
</ul>
|
data/template/views/layout.erb
CHANGED
@@ -4,36 +4,24 @@
|
|
4
4
|
<link rel="stylesheet" type="text/css" href="/css/main.css">
|
5
5
|
<link rel="alternate" type="application/atom+xml" title="feed" href="/feed/" />
|
6
6
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
7
|
-
<title
|
8
|
-
<meta name="keywords" content="
|
9
|
-
<meta name="author" content="
|
10
|
-
|
11
|
-
<script type="text/javascript">
|
12
|
-
|
13
|
-
var _gaq = _gaq || [];
|
14
|
-
_gaq.push(['_setAccount', 'UA-398358-5']);
|
15
|
-
_gaq.push(['_trackPageview']);
|
16
|
-
|
17
|
-
(function() {
|
18
|
-
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
19
|
-
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
20
|
-
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
21
|
-
})();
|
22
|
-
|
23
|
-
</script>
|
24
|
-
|
7
|
+
<title><%=$config['site']['title']%></title>
|
8
|
+
<meta name="keywords" content="<%=$config['site']['description']%>">
|
9
|
+
<meta name="author" content="<%=$config['site']['author']%>">
|
25
10
|
|
26
11
|
</head>
|
27
12
|
<body>
|
28
13
|
<header>
|
29
14
|
<a href='/'>Home</a> | <a href='/pages/about'>About</a>
|
30
15
|
</header>
|
31
|
-
|
16
|
+
<logobar>
|
17
|
+
<h1><%=$config['site']['title']%></h1>
|
18
|
+
<h2><%=$config['site']['description']%></h2>
|
19
|
+
</logobar>
|
32
20
|
<section>
|
33
21
|
<%= yield %>
|
34
22
|
</section>
|
35
23
|
<footer>
|
36
|
-
powered by Persona
|
24
|
+
powered by <a href="https://github.com/fdiotalevi/persona-cms">Persona, the minimal personal content manager</a>
|
37
25
|
</footer>
|
38
26
|
</body>
|
39
27
|
</html>
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 4
|
9
|
+
version: 0.0.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Filippo Diotalevi
|
@@ -59,7 +59,7 @@ extra_rdoc_files: []
|
|
59
59
|
files:
|
60
60
|
- .gitignore
|
61
61
|
- Gemfile
|
62
|
-
- README.
|
62
|
+
- README.md
|
63
63
|
- Rakefile
|
64
64
|
- bin/persona
|
65
65
|
- lib/persona.rb
|
data/README.rdoc
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
== Persona
|
2
|
-
|
3
|
-
Persona is a minimal personal content manager.
|
4
|
-
In this stage it's a work in progress, without much documentation.
|
5
|
-
|
6
|
-
|
7
|
-
$ gem install persona
|
8
|
-
$ persona create_site myblog
|
9
|
-
$ cd myblog
|
10
|
-
|
11
|
-
and then start any Rack compatible HTTP server
|
12
|
-
|
13
|
-
done.
|
14
|
-
|
15
|
-
(I'll post more details soon, promised)
|