shinmun 0.1 → 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
- });