liveblog 0.4.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: af39a7f3157c00b642215a38751b9b293cd1e77f
4
- data.tar.gz: 205a8e3a03696338557d26122772fb7d6ee8b735
3
+ metadata.gz: 07c2d324bf12fdf6e1e724c5d0995cda117eda39
4
+ data.tar.gz: ac47bcb00f5c5bcd912b4866f5528297bc644929
5
5
  SHA512:
6
- metadata.gz: ae0e6b4500f2f47891fb0c105028d21901de4b73086b2d223d329ec7edf5982d7ce5366944bef05c4eab8dd2ed187082ec8387c795216923af45bfd577f0937b
7
- data.tar.gz: df1ccd2e5d513b4776652f5e87c2b6bda13ebfcb93ce4b11f7a8702881960f4d823864b38dcdbb2b2edb987859b4afb5104eff64e6d78e2ad9c0bd49e837848f
6
+ metadata.gz: 0dfd3e16ea4465f56ab7cfba777bdc9fa2807bf08131573dd53c6bb645d60983dd23f123723dfba6a868b3ea14219e0c0673e2f209a184f19a2a23f9c2e191fc
7
+ data.tar.gz: 748e5a9ea4e3a3e9684cedf963094836e0a8bb70aa508e149bfa2b145b60f5a09afe9309710254b0bbd8f80f510698f6acdbf31b3b3d1f0f8c42e2d9afb3ff68
checksums.yaml.gz.sig CHANGED
@@ -1 +1,2 @@
1
- *}rZ ߮�Vcp�Cܪ��:��`�8��q��W ֆ��W��gw�-�м.\G[�\U��pN��oj|��W*:�w�/lvvy†�V���[!��)��$�q͵��1d@,ܷ���j��J?ǵ��� s�ޭXҒ���\ �em/��Q�/vN�~���2�p���8�ֿZ�
1
+ �+��SAgu����bT��IIe)��ׯ�9��G������e ��l���p+�@MC�Ʒ�~i-'�PoY۔�v�lΞu{l����!��c~���5����gJ�j����3�Y�/ċ4��BjdR!��|�8�~��.��W�����#+�z��P��2�� q�S��dd�RPKO^u���<��ra�B7�q�.qެ,>��J�� gu4`x K y�ð�m9 a��
2
+ ��ħr��`�� ��
data.tar.gz.sig CHANGED
@@ -1,2 +1 @@
1
- 0ՠ��W�*<���c�N����h�a��!8�yB��%�G�Y����a�@�kX��(�8�5��Hr�;��u�汇��}��#-"U0�����M��+
2
- <A��)� ���fqH�{�50�H���[�Lgp��qx�.;I��a3�}��nM�t�$�C��<Cw��5K!�Rk�������Q�I,`�b��Y�,u�F�Oԇ�ʴk5c�=E�L�⺏���#�t�"_�u�#8�:��
1
+ 6�4EtF�]Xް�eF4DHx�'��]�aG|Gk� F�B�4H�~Hm�a���6���d+t{����>�6�����K����o�� �T4�~�5k8���9��yJ/~(J4]�0=�Ú�Dq�o�mB;F���� 8εʢ�[}�.�]9}:mS���E�O�=TR(�5��5��{5��sa������'�ј.��S��vDž�ZJ��N*]-3�(�@Zf�F&�E�3�7�ǓW�/'��8&$���:�-K
data/lib/liveblog.css ADDED
@@ -0,0 +1,117 @@
1
+ body { background-color: #c48f33;}
2
+
3
+
4
+ header{
5
+ background-color: rgba(200,200,200,0.1);
6
+ border-top: 1px solid rgba(100,150,100,0.4);
7
+ border-bottom: 1px solid rgba(100,150,100,0.4);
8
+ overflow: hidden
9
+ margin: 0.3em; padding: 0.3em 0.1em;
10
+ }
11
+
12
+ header>nav:first-child>ul{
13
+ background-color: transparent;
14
+ list-style-type: none;
15
+ margin: 0.2em; padding: 0.3em;
16
+ }
17
+ header>nav:first-child>ul>li {
18
+ background-color: transparent;
19
+ color: #392;
20
+ display: inline;
21
+ font-family: Verdana, Arial;
22
+ font-size: 1em;
23
+ }
24
+
25
+ header>nav:first-child>ul>li~li:before {
26
+ background-color: transparent; color: rgba(100,150,100,0.6);
27
+ content: "> ";
28
+ }
29
+ header>nav>ul>li>a {background-color: tansparent; color: #494;}
30
+ header>nav>ul>li>a:hover {background-color: transparent; color: #272;}
31
+ header>nav>ul>li>a:focus {background-color: #161; color: #fff;}
32
+ header>nav>ul>li>a:active {background-color: rgba(200,200,200,0.4); color: #5a5;}
33
+ article {
34
+ background-color: #AFC332;
35
+
36
+ overflow: hidden;
37
+ }
38
+ section {
39
+ background-color: #E2C38D;
40
+ color: #4532C3;
41
+ float: left;
42
+ font-size: 1.2em;
43
+ margin: 1.7em 0.7em 1.7em 1.7em; padding: 2.0em 4.6em;
44
+ max-width: 500px
45
+ }
46
+
47
+ section h1 {
48
+ background-color: #D5A95D;
49
+ /*color: #C34532;*/
50
+ margin: 0.4em 0em 1.2em 0em;
51
+ padding: 1em 1.5em;
52
+ }
53
+
54
+ section p {
55
+
56
+ background-color: #ee3;
57
+ background-color: transparent;
58
+ margin: 0.4em 0.4em; padding: 0.6em 1.5em;
59
+ }
60
+ section a {
61
+ background-color: transparent;
62
+ color: #8E32C3;
63
+ text-decoration: none;
64
+ }
65
+ section a:link {
66
+ background-color: transparent;
67
+ color: #911;
68
+ }
69
+
70
+ section a:hover {
71
+ background-color: transparent;
72
+ color: #C33267;
73
+ }
74
+
75
+ section a:active {
76
+ background-color: #ddd;
77
+ color: #C33267;
78
+ }
79
+
80
+
81
+
82
+ article aside {
83
+ background-color: transparent;
84
+ color: #c48f33;
85
+ float: right;
86
+ margin-right: 1em;
87
+ }
88
+
89
+ aside ul {
90
+ background-color: transparent;
91
+ list-style-type: none;
92
+ margin: 0.4em 0.7em;
93
+ padding: 0.6em 0.9em;
94
+ }
95
+
96
+ aside ul li {
97
+ background-color: #e33;
98
+ background-color: transparent;
99
+ font-family: helvetica, arial;
100
+ font-size: 2.6em;
101
+ font-weight: 900;
102
+
103
+ margin: 0.4em;
104
+ padding: 0.9em;
105
+ }
106
+
107
+ aside ul li a{
108
+ background-color: transparent;
109
+ color: #eee;
110
+ text-decoration: none;
111
+ }
112
+
113
+ aside ul li a:hover {
114
+ background-color: rgba(100, 100, 100, 0.5);
115
+ color: #eee;
116
+ text-decoration: none;
117
+ }
data/lib/liveblog.rb CHANGED
@@ -9,11 +9,12 @@ require 'martile'
9
9
 
10
10
  class LiveBlog
11
11
 
12
- def initialize(liveblogfilepath='.', urlbase: '/liveblog', edit_url: '/')
12
+ def initialize(liveblogfilepath='.', urlbase: '/liveblog', edit_url: '/', \
13
+ css_url: '/liveblog/liveblog.css')
13
14
 
14
15
  Dir.chdir liveblogfilepath
15
16
 
16
- @urlbase, @edit_url = urlbase, edit_url
17
+ @urlbase, @edit_url, @css_url = urlbase, edit_url, css_url
17
18
  @t = Time.now
18
19
  dxfile = File.join(path(), 'index.xml')
19
20
 
@@ -41,6 +42,29 @@ class LiveBlog
41
42
  [true, "%s %s/%s/%s" % [entry, @urlbase, path(), hashtag]]
42
43
  end
43
44
 
45
+ def new_file(s=nil)
46
+
47
+ s ||= <<EOF
48
+ <?dynarex schema="sections[title, edit_url, date, css_url]/section(x)"?>
49
+ title: LiveBlog #{ordinalize(@t.day) + @t.strftime(" %B %Y")}
50
+ edit_url: #{@edit_url}
51
+ date: #{Date.today}
52
+ css_url: #{@css_url}
53
+ --#
54
+
55
+ EOF
56
+
57
+ FileUtils.mkdir_p path()
58
+
59
+ @dx = Dynarex.new
60
+ @dx.import s
61
+ @dx.default_key = 'uid'
62
+
63
+ save()
64
+
65
+ end
66
+
67
+ alias import new_file
44
68
 
45
69
  private
46
70
 
@@ -60,28 +84,7 @@ class LiveBlog
60
84
  @dx.create({x: raw_entry})
61
85
  [true, 'section added']
62
86
  end
63
-
64
- def new_file
65
-
66
- s =<<EOF
67
- <?dynarex schema="sections[title, edit_url, date]/section(x)"?>
68
- title: LiveBlog #{ordinalize(@t.day) + @t.strftime(" %B %Y")}
69
- edit_url: #{@edit_url}
70
- date: #{Date.today}
71
- --#
72
-
73
- EOF
74
-
75
-
76
- FileUtils.mkdir_p path()
77
-
78
- @dx = Dynarex.new
79
- @dx.import s
80
- @dx.default_key = 'uid'
81
-
82
- save()
83
87
 
84
- end
85
88
 
86
89
  def path
87
90
 
@@ -103,6 +106,11 @@ EOF
103
106
 
104
107
  doc = Rexle.new File.read(newfilepath)
105
108
 
109
+ summary = doc.root.element('summary')
110
+ summary.element('edit_url').text += "%s/%s/index.txt" % [@url_edit, path()]
111
+ date = summary.element('date')
112
+ date.text = Date.parse(date.text).strftime("%d-%b-%Y").upcase
113
+
106
114
  doc.root.xpath('records/section/x') do |x|
107
115
 
108
116
  s = "=%s\n%s\n=" % [x.text.lines.first[/#\w+$/], x.text]
@@ -133,6 +141,12 @@ EOF
133
141
  out = xslt.transform(Nokogiri::XML(doc.xml))
134
142
  File.write File.join(path(), 'index.html'), out
135
143
 
144
+ # save the related CSS file locally if the file doesn't already exist
145
+ if not File.exists? 'liveblog.css' then
146
+ FileUtils.cp File.join(File.dirname(__FILE__), 'liveblog.css'),\
147
+ 'liveblog.css' if not File.exists? 'liveblog.css'
148
+ end
149
+
136
150
  end
137
151
 
138
152
  def ordinalize(n)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liveblog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -79,6 +79,7 @@ executables: []
79
79
  extensions: []
80
80
  extra_rdoc_files: []
81
81
  files:
82
+ - lib/liveblog.css
82
83
  - lib/liveblog.rb
83
84
  - lib/liveblog.xsl
84
85
  homepage: https://github.com/jrobertson/liveblog
metadata.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- D7!���6��w]��η8���zEE6O��Ȇ��Г�J�?�M��S욽��)��K��ˉWd���Rb>
2
- <�
3
- ���X�O,��KUFa9�V�tXsW�-w��[��Tìn9K�x�S�+�9��o�>��������|�bg�<N|��)��xIw�t`��:�F���~l���0X�_|�MH����A��x�����>G�,�a��gn�<a�6<cwA ��x�`�z�y���&晅8�w(Pn�����J �
1
+ g#Ga��~˛�����wf�70�>�K9����z!�JX�+�昍����NX�y�_1�
2
+ m����F��6_���iW–