shinmun 0.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/README.md +127 -62
- data/Rakefile +23 -11
- data/bin/shinmun +6 -1
- data/lib/shinmun/admin_controller.rb +161 -0
- data/lib/shinmun/aggregations/delicious.rb +57 -0
- data/lib/shinmun/aggregations/flickr.rb +81 -0
- data/lib/shinmun/blog.rb +319 -0
- data/lib/shinmun/cache.rb +59 -0
- data/lib/shinmun/comment.rb +44 -0
- data/lib/shinmun/controller.rb +135 -0
- data/lib/shinmun/helpers.rb +116 -0
- data/lib/shinmun/post.rb +166 -0
- data/lib/shinmun/template.rb +39 -0
- data/lib/shinmun.rb +14 -411
- metadata +15 -81
- data/example/posts/2008/9/example.md +0 -19
- data/example/posts/blog.yml +0 -10
- data/example/posts/uuid.state +0 -3
- data/example/public/controllers/comments.php +0 -56
- data/example/public/images/loading.gif +0 -0
- data/example/public/javascripts/comments.js +0 -60
- data/example/public/javascripts/highlight.js +0 -505
- data/example/public/javascripts/images/bg-fill.png +0 -0
- data/example/public/javascripts/images/bg.png +0 -0
- data/example/public/javascripts/images/blockquote.png +0 -0
- data/example/public/javascripts/images/bold.png +0 -0
- data/example/public/javascripts/images/code.png +0 -0
- data/example/public/javascripts/images/h1.png +0 -0
- data/example/public/javascripts/images/hr.png +0 -0
- data/example/public/javascripts/images/img.png +0 -0
- data/example/public/javascripts/images/italic.png +0 -0
- data/example/public/javascripts/images/link.png +0 -0
- data/example/public/javascripts/images/ol.png +0 -0
- data/example/public/javascripts/images/redo.png +0 -0
- data/example/public/javascripts/images/separator.png +0 -0
- data/example/public/javascripts/images/ul.png +0 -0
- data/example/public/javascripts/images/undo.png +0 -0
- data/example/public/javascripts/images/wmd-on.png +0 -0
- data/example/public/javascripts/images/wmd.png +0 -0
- data/example/public/javascripts/jquery-form.js +0 -869
- data/example/public/javascripts/jquery.js +0 -3383
- data/example/public/javascripts/languages/1c.js +0 -82
- data/example/public/javascripts/languages/axapta.js +0 -52
- data/example/public/javascripts/languages/bash.js +0 -80
- data/example/public/javascripts/languages/diff.js +0 -64
- data/example/public/javascripts/languages/dos.js +0 -33
- data/example/public/javascripts/languages/dynamic.js +0 -460
- data/example/public/javascripts/languages/ini.js +0 -36
- data/example/public/javascripts/languages/javascript.js +0 -38
- data/example/public/javascripts/languages/lisp.js +0 -86
- data/example/public/javascripts/languages/mel.js +0 -50
- data/example/public/javascripts/languages/profile.js +0 -50
- data/example/public/javascripts/languages/renderman.js +0 -71
- data/example/public/javascripts/languages/smalltalk.js +0 -53
- data/example/public/javascripts/languages/sql.js +0 -50
- data/example/public/javascripts/languages/static.js +0 -175
- data/example/public/javascripts/languages/vbscript.js +0 -25
- data/example/public/javascripts/languages/www.js +0 -245
- data/example/public/javascripts/prettyDate.js +0 -36
- data/example/public/javascripts/showdown.js +0 -421
- data/example/public/javascripts/template.js +0 -165
- data/example/public/javascripts/wmd-base.js +0 -1799
- data/example/public/javascripts/wmd-plus.js +0 -311
- data/example/public/javascripts/wmd.js +0 -73
- data/example/public/stylesheets/grid.css +0 -243
- data/example/public/stylesheets/grid.png +0 -0
- data/example/public/stylesheets/highlight/ascetic.css +0 -38
- data/example/public/stylesheets/highlight/dark.css +0 -96
- data/example/public/stylesheets/highlight/default.css +0 -91
- data/example/public/stylesheets/highlight/far.css +0 -95
- data/example/public/stylesheets/highlight/idea.css +0 -75
- data/example/public/stylesheets/highlight/sunburst.css +0 -112
- data/example/public/stylesheets/highlight/zenburn.css +0 -108
- data/example/public/stylesheets/print.css +0 -76
- data/example/public/stylesheets/reset.css +0 -45
- data/example/public/stylesheets/style.css +0 -141
- data/example/public/stylesheets/typography.css +0 -59
- data/example/templates/feed.rxml +0 -21
- data/example/templates/layout.rhtml +0 -54
- data/example/templates/page.rhtml +0 -4
- data/example/templates/post.rhtml +0 -57
- data/example/templates/posts.rhtml +0 -10
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shinmun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "0.
|
4
|
+
version: "0.2"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthias Georgi
|
@@ -9,18 +9,9 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-11-17 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: uuid
|
17
|
-
version_requirement:
|
18
|
-
version_requirements: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 2.0.0
|
23
|
-
version:
|
24
15
|
- !ruby/object:Gem::Dependency
|
25
16
|
name: BlueCloth
|
26
17
|
version_requirement:
|
@@ -28,7 +19,7 @@ dependencies:
|
|
28
19
|
requirements:
|
29
20
|
- - ">="
|
30
21
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
22
|
+
version: "0"
|
32
23
|
version:
|
33
24
|
- !ruby/object:Gem::Dependency
|
34
25
|
name: rubypants
|
@@ -37,9 +28,9 @@ dependencies:
|
|
37
28
|
requirements:
|
38
29
|
- - ">="
|
39
30
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0
|
31
|
+
version: "0"
|
41
32
|
version:
|
42
|
-
description: Shinmun is a blog engine, which renders text files using a markup language like Markdown and a set of templates into static web pages
|
33
|
+
description: Shinmun is a blog engine, which renders text files using a markup language like Markdown and a set of templates into either static web pages or serving them over a rack adapter. Shinmun supports categories, archives, rss feeds and commenting.
|
43
34
|
email: matti.georgi@gmail.com
|
44
35
|
executables:
|
45
36
|
- shinmun
|
@@ -53,74 +44,17 @@ files:
|
|
53
44
|
- README.md
|
54
45
|
- Rakefile
|
55
46
|
- bin/shinmun
|
56
|
-
- example/posts/2008/9/example.md
|
57
|
-
- example/posts/blog.yml
|
58
|
-
- example/posts/uuid.state
|
59
|
-
- example/public/controllers/comments.php
|
60
|
-
- example/public/images/loading.gif
|
61
|
-
- example/public/javascripts/comments.js
|
62
|
-
- example/public/javascripts/highlight.js
|
63
|
-
- example/public/javascripts/images/bg-fill.png
|
64
|
-
- example/public/javascripts/images/bg.png
|
65
|
-
- example/public/javascripts/images/blockquote.png
|
66
|
-
- example/public/javascripts/images/bold.png
|
67
|
-
- example/public/javascripts/images/code.png
|
68
|
-
- example/public/javascripts/images/h1.png
|
69
|
-
- example/public/javascripts/images/hr.png
|
70
|
-
- example/public/javascripts/images/img.png
|
71
|
-
- example/public/javascripts/images/italic.png
|
72
|
-
- example/public/javascripts/images/link.png
|
73
|
-
- example/public/javascripts/images/ol.png
|
74
|
-
- example/public/javascripts/images/redo.png
|
75
|
-
- example/public/javascripts/images/separator.png
|
76
|
-
- example/public/javascripts/images/ul.png
|
77
|
-
- example/public/javascripts/images/undo.png
|
78
|
-
- example/public/javascripts/images/wmd-on.png
|
79
|
-
- example/public/javascripts/images/wmd.png
|
80
|
-
- example/public/javascripts/jquery-form.js
|
81
|
-
- example/public/javascripts/jquery.js
|
82
|
-
- example/public/javascripts/languages/1c.js
|
83
|
-
- example/public/javascripts/languages/axapta.js
|
84
|
-
- example/public/javascripts/languages/bash.js
|
85
|
-
- example/public/javascripts/languages/diff.js
|
86
|
-
- example/public/javascripts/languages/dos.js
|
87
|
-
- example/public/javascripts/languages/dynamic.js
|
88
|
-
- example/public/javascripts/languages/ini.js
|
89
|
-
- example/public/javascripts/languages/javascript.js
|
90
|
-
- example/public/javascripts/languages/lisp.js
|
91
|
-
- example/public/javascripts/languages/mel.js
|
92
|
-
- example/public/javascripts/languages/profile.js
|
93
|
-
- example/public/javascripts/languages/renderman.js
|
94
|
-
- example/public/javascripts/languages/smalltalk.js
|
95
|
-
- example/public/javascripts/languages/sql.js
|
96
|
-
- example/public/javascripts/languages/static.js
|
97
|
-
- example/public/javascripts/languages/vbscript.js
|
98
|
-
- example/public/javascripts/languages/www.js
|
99
|
-
- example/public/javascripts/prettyDate.js
|
100
|
-
- example/public/javascripts/showdown.js
|
101
|
-
- example/public/javascripts/template.js
|
102
|
-
- example/public/javascripts/wmd-base.js
|
103
|
-
- example/public/javascripts/wmd-plus.js
|
104
|
-
- example/public/javascripts/wmd.js
|
105
|
-
- example/public/stylesheets/grid.css
|
106
|
-
- example/public/stylesheets/grid.png
|
107
|
-
- example/public/stylesheets/highlight/ascetic.css
|
108
|
-
- example/public/stylesheets/highlight/dark.css
|
109
|
-
- example/public/stylesheets/highlight/default.css
|
110
|
-
- example/public/stylesheets/highlight/far.css
|
111
|
-
- example/public/stylesheets/highlight/idea.css
|
112
|
-
- example/public/stylesheets/highlight/sunburst.css
|
113
|
-
- example/public/stylesheets/highlight/zenburn.css
|
114
|
-
- example/public/stylesheets/print.css
|
115
|
-
- example/public/stylesheets/reset.css
|
116
|
-
- example/public/stylesheets/style.css
|
117
|
-
- example/public/stylesheets/typography.css
|
118
|
-
- example/templates/feed.rxml
|
119
|
-
- example/templates/layout.rhtml
|
120
|
-
- example/templates/page.rhtml
|
121
|
-
- example/templates/post.rhtml
|
122
|
-
- example/templates/posts.rhtml
|
123
47
|
- lib/shinmun.rb
|
48
|
+
- lib/shinmun/admin_controller.rb
|
49
|
+
- lib/shinmun/aggregations/delicious.rb
|
50
|
+
- lib/shinmun/aggregations/flickr.rb
|
51
|
+
- lib/shinmun/blog.rb
|
52
|
+
- lib/shinmun/cache.rb
|
53
|
+
- lib/shinmun/comment.rb
|
54
|
+
- lib/shinmun/controller.rb
|
55
|
+
- lib/shinmun/helpers.rb
|
56
|
+
- lib/shinmun/post.rb
|
57
|
+
- lib/shinmun/template.rb
|
124
58
|
has_rdoc: true
|
125
59
|
homepage: http://shinmun.rubyforge.org
|
126
60
|
post_install_message:
|
@@ -1,19 +0,0 @@
|
|
1
|
-
---
|
2
|
-
category: Ruby
|
3
|
-
guid: 72ece880-5e32-012b-362f-001a92975b89
|
4
|
-
date: 2008-09-01
|
5
|
-
|
6
|
-
Example post
|
7
|
-
============
|
8
|
-
|
9
|
-
This is the first paragraph. Below is a code example:
|
10
|
-
|
11
|
-
# Return the first paragraph of rendered html.
|
12
|
-
def summary
|
13
|
-
body.split("\n\n")[0]
|
14
|
-
end
|
15
|
-
|
16
|
-
# Return the first paragraph of source text.
|
17
|
-
def text_summary
|
18
|
-
src.split("\n\n")[1]
|
19
|
-
end
|
data/example/posts/blog.yml
DELETED
data/example/posts/uuid.state
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
<?php
|
2
|
-
|
3
|
-
$guid_pattern = "/^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$/";
|
4
|
-
$req = $_REQUEST;
|
5
|
-
$guid = $req['guid'];
|
6
|
-
|
7
|
-
preg_match($guid_pattern, $guid) or die("invalid guid");
|
8
|
-
|
9
|
-
$file = 'comments/' . $guid;
|
10
|
-
|
11
|
-
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
12
|
-
|
13
|
-
// create a comment record
|
14
|
-
$record = array(date('Y-m-d H:i:s'),
|
15
|
-
strip_tags(stripslashes($req['name'])),
|
16
|
-
strip_tags(stripslashes($req['website'])),
|
17
|
-
strip_tags(stripslashes($req['text'])));
|
18
|
-
|
19
|
-
// encode as json string
|
20
|
-
$json = json_encode($record) . "\n";
|
21
|
-
|
22
|
-
// open the comment file for appending
|
23
|
-
$fp = fopen($file, "a");
|
24
|
-
|
25
|
-
// acquire a write lock
|
26
|
-
flock($fp, LOCK_EX);
|
27
|
-
|
28
|
-
// append the json line
|
29
|
-
fwrite($fp, $json);
|
30
|
-
|
31
|
-
// release lock
|
32
|
-
flock($fp, LOCK_UN);
|
33
|
-
|
34
|
-
// close file and release lock
|
35
|
-
fclose($fp);
|
36
|
-
}
|
37
|
-
|
38
|
-
if (file_exists($file)) {
|
39
|
-
|
40
|
-
// open the comment file for reading
|
41
|
-
$fp = fopen($file, "r");
|
42
|
-
|
43
|
-
// acquire a read lock
|
44
|
-
flock($fp, LOCK_SH);
|
45
|
-
|
46
|
-
// read whole file and print it out
|
47
|
-
echo fread($fp, filesize($file));
|
48
|
-
|
49
|
-
// release lock
|
50
|
-
flock($fp, LOCK_UN);
|
51
|
-
|
52
|
-
// close file
|
53
|
-
fclose($fp);
|
54
|
-
}
|
55
|
-
|
56
|
-
?>
|
Binary file
|
@@ -1,60 +0,0 @@
|
|
1
|
-
$('.comment-form form').ajaxForm({
|
2
|
-
url: Blog.root + 'controllers/comments.php',
|
3
|
-
type: 'POST',
|
4
|
-
resetForm: true,
|
5
|
-
beforeSubmit: function(values) {
|
6
|
-
if (values[1].value && values[3].value) {
|
7
|
-
$('.comment-form-loading').show();
|
8
|
-
return true;
|
9
|
-
}
|
10
|
-
else {
|
11
|
-
alert('Please enter name and text!');
|
12
|
-
return false;
|
13
|
-
}
|
14
|
-
},
|
15
|
-
success: function(data) {
|
16
|
-
$('.comment-form-loading').hide();
|
17
|
-
renderComments(data);
|
18
|
-
}
|
19
|
-
});
|
20
|
-
|
21
|
-
function renderComments(data) {
|
22
|
-
var converter = new Showdown.converter();
|
23
|
-
var lines = data.split("\n");
|
24
|
-
var comments = [];
|
25
|
-
for (var i = 0; i < lines.length; i++) {
|
26
|
-
var row = eval(lines[i]);
|
27
|
-
if (row) {
|
28
|
-
comments.push({
|
29
|
-
time: row[0],
|
30
|
-
name: row[1],
|
31
|
-
website: row[2],
|
32
|
-
text: converter.makeHtml(row[3])
|
33
|
-
});
|
34
|
-
}
|
35
|
-
}
|
36
|
-
$('.comments-loading').hide();
|
37
|
-
$('.comments').expand(Template.comments, { comment: comments });
|
38
|
-
$('.comments a').prettyDate();
|
39
|
-
}
|
40
|
-
|
41
|
-
function loadComments() {
|
42
|
-
$('.comments-loading').show();
|
43
|
-
$.ajax({
|
44
|
-
type: "GET",
|
45
|
-
url: Blog.root + 'controllers/comments.php',
|
46
|
-
data: {
|
47
|
-
guid: Blog.guid
|
48
|
-
},
|
49
|
-
complete: function(response) {
|
50
|
-
renderComments(response.responseText);
|
51
|
-
}
|
52
|
-
});
|
53
|
-
}
|
54
|
-
|
55
|
-
$(function() {
|
56
|
-
if ($('.comments').length > 0) {
|
57
|
-
Template.comments = new Template('comments-template');
|
58
|
-
loadComments();
|
59
|
-
}
|
60
|
-
});
|