shinmun 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/.gitignore +2 -0
  2. data/README.md +127 -62
  3. data/Rakefile +23 -11
  4. data/bin/shinmun +6 -1
  5. data/lib/shinmun/admin_controller.rb +161 -0
  6. data/lib/shinmun/aggregations/delicious.rb +57 -0
  7. data/lib/shinmun/aggregations/flickr.rb +81 -0
  8. data/lib/shinmun/blog.rb +319 -0
  9. data/lib/shinmun/cache.rb +59 -0
  10. data/lib/shinmun/comment.rb +44 -0
  11. data/lib/shinmun/controller.rb +135 -0
  12. data/lib/shinmun/helpers.rb +116 -0
  13. data/lib/shinmun/post.rb +166 -0
  14. data/lib/shinmun/template.rb +39 -0
  15. data/lib/shinmun.rb +14 -411
  16. metadata +15 -81
  17. data/example/posts/2008/9/example.md +0 -19
  18. data/example/posts/blog.yml +0 -10
  19. data/example/posts/uuid.state +0 -3
  20. data/example/public/controllers/comments.php +0 -56
  21. data/example/public/images/loading.gif +0 -0
  22. data/example/public/javascripts/comments.js +0 -60
  23. data/example/public/javascripts/highlight.js +0 -505
  24. data/example/public/javascripts/images/bg-fill.png +0 -0
  25. data/example/public/javascripts/images/bg.png +0 -0
  26. data/example/public/javascripts/images/blockquote.png +0 -0
  27. data/example/public/javascripts/images/bold.png +0 -0
  28. data/example/public/javascripts/images/code.png +0 -0
  29. data/example/public/javascripts/images/h1.png +0 -0
  30. data/example/public/javascripts/images/hr.png +0 -0
  31. data/example/public/javascripts/images/img.png +0 -0
  32. data/example/public/javascripts/images/italic.png +0 -0
  33. data/example/public/javascripts/images/link.png +0 -0
  34. data/example/public/javascripts/images/ol.png +0 -0
  35. data/example/public/javascripts/images/redo.png +0 -0
  36. data/example/public/javascripts/images/separator.png +0 -0
  37. data/example/public/javascripts/images/ul.png +0 -0
  38. data/example/public/javascripts/images/undo.png +0 -0
  39. data/example/public/javascripts/images/wmd-on.png +0 -0
  40. data/example/public/javascripts/images/wmd.png +0 -0
  41. data/example/public/javascripts/jquery-form.js +0 -869
  42. data/example/public/javascripts/jquery.js +0 -3383
  43. data/example/public/javascripts/languages/1c.js +0 -82
  44. data/example/public/javascripts/languages/axapta.js +0 -52
  45. data/example/public/javascripts/languages/bash.js +0 -80
  46. data/example/public/javascripts/languages/diff.js +0 -64
  47. data/example/public/javascripts/languages/dos.js +0 -33
  48. data/example/public/javascripts/languages/dynamic.js +0 -460
  49. data/example/public/javascripts/languages/ini.js +0 -36
  50. data/example/public/javascripts/languages/javascript.js +0 -38
  51. data/example/public/javascripts/languages/lisp.js +0 -86
  52. data/example/public/javascripts/languages/mel.js +0 -50
  53. data/example/public/javascripts/languages/profile.js +0 -50
  54. data/example/public/javascripts/languages/renderman.js +0 -71
  55. data/example/public/javascripts/languages/smalltalk.js +0 -53
  56. data/example/public/javascripts/languages/sql.js +0 -50
  57. data/example/public/javascripts/languages/static.js +0 -175
  58. data/example/public/javascripts/languages/vbscript.js +0 -25
  59. data/example/public/javascripts/languages/www.js +0 -245
  60. data/example/public/javascripts/prettyDate.js +0 -36
  61. data/example/public/javascripts/showdown.js +0 -421
  62. data/example/public/javascripts/template.js +0 -165
  63. data/example/public/javascripts/wmd-base.js +0 -1799
  64. data/example/public/javascripts/wmd-plus.js +0 -311
  65. data/example/public/javascripts/wmd.js +0 -73
  66. data/example/public/stylesheets/grid.css +0 -243
  67. data/example/public/stylesheets/grid.png +0 -0
  68. data/example/public/stylesheets/highlight/ascetic.css +0 -38
  69. data/example/public/stylesheets/highlight/dark.css +0 -96
  70. data/example/public/stylesheets/highlight/default.css +0 -91
  71. data/example/public/stylesheets/highlight/far.css +0 -95
  72. data/example/public/stylesheets/highlight/idea.css +0 -75
  73. data/example/public/stylesheets/highlight/sunburst.css +0 -112
  74. data/example/public/stylesheets/highlight/zenburn.css +0 -108
  75. data/example/public/stylesheets/print.css +0 -76
  76. data/example/public/stylesheets/reset.css +0 -45
  77. data/example/public/stylesheets/style.css +0 -141
  78. data/example/public/stylesheets/typography.css +0 -59
  79. data/example/templates/feed.rxml +0 -21
  80. data/example/templates/layout.rhtml +0 -54
  81. data/example/templates/page.rhtml +0 -4
  82. data/example/templates/post.rhtml +0 -57
  83. 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.1"
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-09-11 00:00:00 +02:00
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: 1.0.0
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.2.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. It supports Categories, Archives and RSS Feeds. Commenting can be done with some Javascript, PHP and a flat file JSON store.
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
@@ -1,10 +0,0 @@
1
- blog_title: The title of the blog
2
- blog_description: Blog description
3
- blog_language: en
4
- blog_author: The author
5
- blog_url: http://www.example.com
6
- categories:
7
- - Ruby
8
- - Emacs
9
-
10
-
@@ -1,3 +0,0 @@
1
- mac_addr: "00:1a:92:97:5b:89"
2
- sequence: "0x3630"
3
- last_clock: "0x2b5e3272ece3d8"
@@ -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
- });