sisu 7.0.0 → 7.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/sisu/version.yml +3 -3
- data/lib/sisu/ao.rb +10 -10
- data/lib/sisu/{ao_references.rb → ao_appendices.rb} +245 -123
- data/lib/sisu/ao_doc_str.rb +50 -27
- data/lib/sisu/dp.rb +7 -3
- data/lib/sisu/html_format.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec1967070776c6a1ed4417c8ce4873bfcfe5721e
|
4
|
+
data.tar.gz: be2dcbe200bdad9a10d6177f2226bb81d9c622af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8a3d8f61a14b83d02c2cf7c45dfd9631f0c50a167c746462a2ba401e961810bca5d6a1e19d2f42b7973f88cae114ee68e2f6a2d78f4af41a15840ccbc826482
|
7
|
+
data.tar.gz: d24d3987935d8b6f0d4cf26576c21abaf8d94e0ff94a572888eeac200e9cd80478669c65637543ec20583a81537c2e0174ec2a019cb8316dade4151bf1120a65
|
data/data/sisu/version.yml
CHANGED
data/lib/sisu/ao.rb
CHANGED
@@ -64,7 +64,7 @@ module SiSU_AO
|
|
64
64
|
require_relative 'ao_syntax' # ao_syntax.rb
|
65
65
|
include SiSU_AO_Syntax
|
66
66
|
require_relative 'ao_doc_str' # ao_doc_str.rb
|
67
|
-
require_relative '
|
67
|
+
require_relative 'ao_appendices' # ao_appendices.rb
|
68
68
|
require_relative 'ao_idx' # ao_idx.rb
|
69
69
|
require_relative 'ao_numbering' # ao_numbering.rb
|
70
70
|
require_relative 'ao_hash_digest' # ao_hash_digest.rb
|
@@ -534,38 +534,38 @@ module SiSU_AO
|
|
534
534
|
reset
|
535
535
|
data_txt=@data
|
536
536
|
data_txt=
|
537
|
-
SiSU_AO_Insertions::Insertions.new(@md,data_txt).
|
537
|
+
SiSU_AO_Insertions::Insertions.new(@md,data_txt). # ao_expand_insertions.rb
|
538
538
|
expand_insertions?
|
539
539
|
data_txt=
|
540
|
-
SiSU_AO_MiscArrangeText::SI.new(@md,data_txt).
|
540
|
+
SiSU_AO_MiscArrangeText::SI.new(@md,data_txt). # ao_misc_arrange.rb
|
541
541
|
prepare_text
|
542
542
|
data_obj,
|
543
543
|
metadata,
|
544
544
|
bibliography=
|
545
|
-
SiSU_AO_DocumentStructureExtract::Build.new(@md,data_txt).
|
545
|
+
SiSU_AO_DocumentStructureExtract::Build.new(@md,data_txt). # ao_doc_str.rb
|
546
546
|
identify_parts
|
547
547
|
data_obj=
|
548
|
-
SiSU_AO_Syntax::Markup.new(@md,data_obj,bibliography).songsheet
|
548
|
+
SiSU_AO_Syntax::Markup.new(@md,data_obj,bibliography).songsheet # ao_syntax.rb
|
549
549
|
data_obj,
|
550
550
|
endnote_array=
|
551
|
-
SiSU_AO_CharacterCheck::Check.new(data_obj).
|
551
|
+
SiSU_AO_CharacterCheck::Check.new(data_obj). # ao_character_check.rb
|
552
552
|
character_check_and_oldstyle_endnote_array
|
553
553
|
data_obj=
|
554
|
-
SiSU_AO_Images::Images.new(@md,data_obj).images
|
554
|
+
SiSU_AO_Images::Images.new(@md,data_obj).images # ao_images.rb
|
555
555
|
data_obj,
|
556
556
|
tags_map,
|
557
557
|
ocn_html_seg_map=
|
558
|
-
SiSU_AO_Numbering::Numbering.new(@md,data_obj,@fnx,@process).
|
558
|
+
SiSU_AO_Numbering::Numbering.new(@md,data_obj,@fnx,@process). # ao_numbering.rb
|
559
559
|
numbering_song
|
560
560
|
data_obj,
|
561
561
|
book_index_rel,
|
562
562
|
book_index_rel_html_seg,
|
563
563
|
html_idx,
|
564
564
|
xhtml_idx=
|
565
|
-
SiSU_AO_BookIndex::BookIndex.new(@md,data_obj,@env).
|
565
|
+
SiSU_AO_BookIndex::BookIndex.new(@md,data_obj,@env). # ao_idx.rb
|
566
566
|
indexing_song if @md.book_idx
|
567
567
|
data_obj=
|
568
|
-
SiSU_AO_Endnotes::Endnotes.new(@md,data_obj,endnote_array).
|
568
|
+
SiSU_AO_Endnotes::Endnotes.new(@md,data_obj,endnote_array). # ao_endnotes.rb
|
569
569
|
endnotes
|
570
570
|
outputdata=data_obj
|
571
571
|
if (@md.opt.act[:ao][:set]==:on \
|
@@ -51,154 +51,284 @@
|
|
51
51
|
|
52
52
|
** Git
|
53
53
|
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
|
54
|
-
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/
|
54
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/ao_appendices.rb;hb=HEAD>
|
55
55
|
|
56
56
|
=end
|
57
|
-
module
|
57
|
+
module SiSU_AO_Appendices
|
58
|
+
class Glossary
|
59
|
+
def initialize(md,data)
|
60
|
+
@md,@data=md,data
|
61
|
+
end
|
62
|
+
def glossary_extraction
|
63
|
+
glossary=[]
|
64
|
+
glossaryflag=false
|
65
|
+
code_flag=false
|
66
|
+
flag_code_curly=:not_code_curly
|
67
|
+
flag_code_tics=:not_code_tics
|
68
|
+
@data=@data.select do |t_o|
|
69
|
+
if t_o =~/^code\{/
|
70
|
+
flag_code_curly=:code_curly
|
71
|
+
elsif t_o =~/^\}code/
|
72
|
+
flag_code_curly=:not_code_curly
|
73
|
+
elsif t_o =~/^``` code/
|
74
|
+
flag_code_tics=:code_tics
|
75
|
+
elsif flag_code_tics ==:code_tics \
|
76
|
+
and t_o =~/^```/
|
77
|
+
flag_code_tics=:not_code_tics
|
78
|
+
end
|
79
|
+
code_flag=if flag_code_curly==:code_curly \
|
80
|
+
or flag_code_tics==:code_tics
|
81
|
+
true
|
82
|
+
else false
|
83
|
+
end
|
84
|
+
unless code_flag
|
85
|
+
if @md.flag_glossary
|
86
|
+
if t_o =~/^1~!glossary/
|
87
|
+
glossaryflag = true
|
88
|
+
next
|
89
|
+
elsif t_o =~/^:?[B-D]~/
|
90
|
+
next
|
91
|
+
elsif t_o =~/^:?[B-D1]~/
|
92
|
+
glossaryflag = false
|
93
|
+
t_o
|
94
|
+
elsif glossaryflag
|
95
|
+
if t_o !~/\A%+ /
|
96
|
+
glossary << t_o
|
97
|
+
next
|
98
|
+
else
|
99
|
+
t_o
|
100
|
+
end
|
101
|
+
else t_o
|
102
|
+
end
|
103
|
+
else t_o
|
104
|
+
end
|
105
|
+
else t_o
|
106
|
+
end
|
107
|
+
end.compact
|
108
|
+
[@data,glossary]
|
109
|
+
end
|
110
|
+
end
|
58
111
|
class Bibliography
|
59
112
|
def initialize(md,data)
|
60
113
|
@md,@data=md,data
|
61
114
|
end
|
62
|
-
def
|
115
|
+
def sort_bibliography_array_by_deemed_author_year_title(bib)
|
63
116
|
if bib
|
64
117
|
bib.compact.sort_by do |c|
|
65
|
-
[c[:
|
118
|
+
[c[:deemed_author],c[:ymd],c[:title]]
|
66
119
|
end
|
67
120
|
end
|
68
121
|
end
|
69
122
|
def citation_in_prepared_bibliography(cite)
|
70
123
|
@cite=cite
|
71
|
-
def
|
124
|
+
def generic
|
72
125
|
{
|
73
|
-
is: :article,
|
126
|
+
is: nil, # :book, :article, :magazine, :newspaper, :blog, :other
|
74
127
|
author_raw: nil,
|
75
128
|
author: nil,
|
76
129
|
author_arr: nil,
|
77
|
-
|
78
|
-
language: nil,
|
79
|
-
journal: nil,
|
80
|
-
volume: nil,
|
130
|
+
editor_raw: nil,
|
81
131
|
editor: nil,
|
82
|
-
|
83
|
-
where: nil,
|
84
|
-
url: nil,
|
85
|
-
note: nil,
|
86
|
-
short_name: nil,
|
87
|
-
id: nil,
|
88
|
-
}
|
89
|
-
end
|
90
|
-
def book
|
91
|
-
{
|
92
|
-
is: :book,
|
93
|
-
author_raw: nil,
|
94
|
-
author: nil,
|
95
|
-
author_arr: nil,
|
96
|
-
#editor: nil,
|
132
|
+
editor_arr: nil,
|
97
133
|
title: nil,
|
98
134
|
subtitle: nil,
|
99
135
|
fulltitle: nil,
|
100
136
|
language: nil,
|
101
|
-
|
137
|
+
trans: nil,
|
138
|
+
src: nil,
|
139
|
+
journal: nil,
|
140
|
+
in: nil,
|
141
|
+
volume: nil,
|
102
142
|
edition: nil,
|
103
143
|
year: nil,
|
104
|
-
|
144
|
+
place: nil,
|
145
|
+
publisher: nil,
|
105
146
|
url: nil,
|
147
|
+
pages: nil,
|
106
148
|
note: nil,
|
149
|
+
#format: nil, #consider list of fields arranged with markup
|
107
150
|
short_name: nil,
|
108
151
|
id: nil,
|
109
152
|
}
|
110
153
|
end
|
111
154
|
def citation_metadata
|
112
|
-
type
|
113
|
-
:article
|
114
|
-
elsif @cite =~/^au: \S+/m
|
115
|
-
:book
|
116
|
-
end
|
155
|
+
type=:generic
|
117
156
|
if type
|
157
|
+
citation=generic
|
118
158
|
citeblock=@cite.split("\n")
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
159
|
+
citeblock.select do |meta|
|
160
|
+
case meta
|
161
|
+
when /^((?:au|author):\s+)\S+/ #req
|
162
|
+
citation[:author_raw]=/^#{$1}(.+)/.match(meta)[1]
|
163
|
+
when /^((?:ti|title):\s+)\S+/ #req
|
164
|
+
citation[:title]=/^#{$1}(.+)/.match(meta)[1]
|
165
|
+
when /^((?:st|subtitle):\s+)\S+/
|
166
|
+
citation[:subtitle]=/^#{$1}(.+)/.match(meta)[1]
|
167
|
+
when /^((?:lng|language):\s+)\S+/
|
168
|
+
citation[:language]=/^#{$1}(.+)/.match(meta)[1]
|
169
|
+
when /^((?:edr?|editor):\s+)\S+/
|
170
|
+
citation[:editor_raw]=/^#{$1}(.+)/.match(meta)[1]
|
171
|
+
when /^((?:tr|trans(:?lator)?):\s+)\S+/
|
172
|
+
citation[:editor_raw]=/^#{$1}(.+)/.match(meta)[1]
|
173
|
+
when /^((?:pb|publisher):\s+)\S+/
|
174
|
+
citation[:publisher]=/^#{$1}(.+)/.match(meta)[1]
|
175
|
+
when /^((?:edn|edition):\s+)\S+/
|
176
|
+
citation[:edition]=/^#{$1}(.+)/.match(meta)[1]
|
177
|
+
when /^((?:yr|year):\s+)\S+/ #req?
|
178
|
+
citation[:year]=/^#{$1}(.+)/.match(meta)[1]
|
179
|
+
when /^((?:pl|publisher_state):\s+)\S+/
|
180
|
+
citation[:place]=/^#{$1}(.+)/.match(meta)[1]
|
181
|
+
when /^((?:jo|journal):\s+)\S+/ #req?
|
182
|
+
citation[:journal]=/^#{$1}(.+)/.match(meta)[1]
|
183
|
+
when /^((?:vol?|volume):\s+)\S+/
|
184
|
+
citation[:volume]=/^#{$1}(.+)/.match(meta)[1]
|
185
|
+
when /^((?:in):\s+)\S+/
|
186
|
+
citation[:in]=/^#{$1}(.+)/.match(meta)[1]
|
187
|
+
when /^((?:src):\s+)\S+/
|
188
|
+
citation[:src]=/^#{$1}(.+)/.match(meta)[1]
|
189
|
+
when /^((?:pg|pages?):\s+)\S+/
|
190
|
+
citation[:pages]=/^#{$1}(.+)/.match(meta)[1]
|
191
|
+
when /^(url:\s+)\S+/
|
192
|
+
citation[:url]=/^#{$1}(.+)/.match(meta)[1]
|
193
|
+
when /^(note:\s+)\S+/
|
194
|
+
citation[:note]=/^#{$1}(.+)/.match(meta)[1]
|
195
|
+
when /^((?:sn|shortname):\s+)\S+/ # substitution: (/#{id}/,"#{sn}")
|
196
|
+
citation[:short_name]=/^#{$1}(.+)/.match(meta)[1]
|
197
|
+
when /^(id:\s+)\S+/ # substitution: (/#{id}/,"#{sn}")
|
198
|
+
citation[:id]=/^#{$1}(.+)/.match(meta)[1]
|
148
199
|
end
|
149
200
|
end
|
150
|
-
if
|
151
|
-
citation=
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
when /^((?:ti|title):\s+)\S+/ #req
|
157
|
-
citation[:title]=/^#{$1}(.+)/.match(meta)[1]
|
158
|
-
when /^((?:st|subtitle):\s+)\S+/
|
159
|
-
citation[:subtitle]=/^#{$1}(.+)/.match(meta)[1]
|
160
|
-
when /^((?:lng|language):\s+)\S+/
|
161
|
-
citation[:language]=/^#{$1}(.+)/.match(meta)[1]
|
162
|
-
when /^((?:pb|publisher):\s+)\S+/
|
163
|
-
citation[:publisher]=/^#{$1}(.+)/.match(meta)[1]
|
164
|
-
when /^((?:edn|edition):\s+)\S+/
|
165
|
-
citation[:edition]=/^#{$1}(.+)/.match(meta)[1]
|
166
|
-
when /^((?:yr|year):\s+)\S+/ #req?
|
167
|
-
citation[:year]=/^#{$1}(.+)/.match(meta)[1]
|
168
|
-
when /^((?:pst|publisher_state):\s+)\S+/
|
169
|
-
citation[:where]=/^#{$1}(.+)/.match(meta)[1]
|
170
|
-
when /^(url:\s+)\S+/
|
171
|
-
citation[:url]=/^#{$1}(.+)/.match(meta)[1]
|
172
|
-
when /^(note:\s+)\S+/
|
173
|
-
citation[:note]=/^#{$1}(.+)/.match(meta)[1]
|
174
|
-
when /^((?:sn|shortname):\s+)\S+/
|
175
|
-
citation[:short_name]=/^#{$1}(.+)/.match(meta)[1]
|
176
|
-
when /^(id:\s+)\S+/
|
177
|
-
citation[:id]=/^#{$1}(.+)/.match(meta)[1]
|
178
|
-
end
|
179
|
-
end
|
201
|
+
if citation[:subtitle]
|
202
|
+
citation[:fulltitle] = citation[:title] \
|
203
|
+
+ ' - ' \
|
204
|
+
+ citation[:subtitle]
|
205
|
+
else
|
206
|
+
citation[:fulltitle] = citation[:title]
|
180
207
|
end
|
181
|
-
if citation[:
|
182
|
-
|
183
|
-
|
184
|
-
+
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
208
|
+
if citation[:author_raw]
|
209
|
+
citation[:author_arr]=citation[:author_raw].split(/;\s*/)
|
210
|
+
citation[:author]=citation[:author_arr].map do |author|
|
211
|
+
author.gsub(/(.+?),\s+(.+)/,'\2 \1').strip
|
212
|
+
end.join(', ').strip
|
213
|
+
end
|
214
|
+
if citation[:editor_raw]
|
215
|
+
citation[:editor_arr]=citation[:editor_raw].split(/;\s*/)
|
216
|
+
citation[:editor]=citation[:editor_arr].map do |editor|
|
217
|
+
editor.gsub(/(.+?),\s+(.+)/,'\2 \1').strip
|
218
|
+
end.join(', ').strip
|
219
|
+
end
|
220
|
+
citation[:ymd]=if not citation[:year] =~/^[0-9]{4}/
|
221
|
+
'9999'
|
222
|
+
else citation[:year]
|
223
|
+
end
|
224
|
+
citation[:deemed_author]=if not citation[:author_raw] \
|
225
|
+
and citation[:editor_raw]
|
226
|
+
citation[:editor_arr][0]
|
227
|
+
elsif citation[:author_raw]
|
228
|
+
citation[:author_arr][0]
|
229
|
+
else
|
230
|
+
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).
|
231
|
+
warn('Citation needs an author or editor, title: "' \
|
232
|
+
+ citation[:title] + '"')
|
233
|
+
'000'
|
189
234
|
end
|
190
|
-
citation[:author_arr]=citation[:author_raw].split(/;\s*/)
|
191
|
-
citation[:author]=citation[:author_arr].map do |author|
|
192
|
-
author.gsub(/(.+?),\s+(.+)/,'\2 \1').strip
|
193
|
-
end.join(', ').strip
|
194
235
|
unless citation[:short_name]
|
195
|
-
citation[:short_name]=%{#{
|
236
|
+
citation[:short_name]=%{#{citation[:author]}, "#{citation[:title]}" (#{citation[:date]})}
|
196
237
|
end
|
197
238
|
end
|
198
239
|
citation
|
199
240
|
end
|
200
241
|
self
|
201
242
|
end
|
243
|
+
def biblio_format
|
244
|
+
def generic(c)
|
245
|
+
cite=%{#{c[:author]}. /{"#{c[:fulltitle]}".}/}
|
246
|
+
cite=(c[:journal]) \
|
247
|
+
? cite + %{ #{c[:journal]},}
|
248
|
+
: cite
|
249
|
+
cite=(c[:source]) \
|
250
|
+
? cite + %{ #{c[:source]},}
|
251
|
+
: cite
|
252
|
+
cite=(c[:in]) \
|
253
|
+
? cite + %{ in #{c[:in]},}
|
254
|
+
: cite
|
255
|
+
cite=(c[:volume]) \
|
256
|
+
? cite + %{ #{c[:volume]},}
|
257
|
+
: cite
|
258
|
+
cite=(c[:trans]) \
|
259
|
+
? cite + %{ trans. #{c[:trans]},}
|
260
|
+
: cite
|
261
|
+
cite=(c[:editor]) \
|
262
|
+
? cite + %{ ed. #{c[:editor]},}
|
263
|
+
: cite
|
264
|
+
cite=(c[:place]) \
|
265
|
+
? cite + %{ #{c[:place]},}
|
266
|
+
: cite
|
267
|
+
cite=(c[:publisher]) \
|
268
|
+
? cite + %{ #{c[:publisher]},}
|
269
|
+
: cite
|
270
|
+
cite=(c[:year]) \
|
271
|
+
? cite + %{ (#{c[:year]})}
|
272
|
+
: cite
|
273
|
+
cite=(c[:pages]) \
|
274
|
+
? cite + %{ #{c[:pages]}}
|
275
|
+
: cite
|
276
|
+
cite=(c[:url]) \
|
277
|
+
? cite + %{ #{c[:url]}}
|
278
|
+
: cite
|
279
|
+
cite=(c[:note]) \
|
280
|
+
? cite + %{ #{c[:note]}}
|
281
|
+
: cite
|
282
|
+
cite
|
283
|
+
end
|
284
|
+
def generic_editor(c)
|
285
|
+
cite=%{#{c[:editor]} ed. /{"#{c[:fulltitle]}".}/}
|
286
|
+
cite=(c[:journal]) \
|
287
|
+
? cite + %{ #{c[:journal]}, }
|
288
|
+
: cite
|
289
|
+
cite=(c[:source]) \
|
290
|
+
? cite + %{ #{c[:source]}, }
|
291
|
+
: cite
|
292
|
+
cite=(c[:in]) \
|
293
|
+
? cite + %{ in #{c[:in]},}
|
294
|
+
: cite
|
295
|
+
cite=(c[:volume]) \
|
296
|
+
? cite + %{ #{c[:volume]},}
|
297
|
+
: cite
|
298
|
+
cite=(c[:trans]) \
|
299
|
+
? cite + %{ trans. #{c[:trans]},}
|
300
|
+
: cite
|
301
|
+
cite=(c[:place]) \
|
302
|
+
? cite + %{ #{c[:place]},}
|
303
|
+
: cite
|
304
|
+
cite=(c[:publisher]) \
|
305
|
+
? cite + %{ #{c[:publisher]}}
|
306
|
+
: cite
|
307
|
+
cite=(c[:year]) \
|
308
|
+
? cite + %{ (#{c[:year]})}
|
309
|
+
: cite
|
310
|
+
cite=(c[:pages]) \
|
311
|
+
? cite + %{ #{c[:pages]}}
|
312
|
+
: cite
|
313
|
+
cite=(c[:url]) \
|
314
|
+
? cite + %{ #{c[:url]}}
|
315
|
+
: cite
|
316
|
+
cite=(c[:note]) \
|
317
|
+
? cite + %{ #{c[:note]}}
|
318
|
+
: cite
|
319
|
+
cite
|
320
|
+
end
|
321
|
+
self
|
322
|
+
end
|
323
|
+
def biblio_make(cite)
|
324
|
+
if cite[:author]
|
325
|
+
biblio_format.generic(cite)
|
326
|
+
elsif cite[:editor]
|
327
|
+
biblio_format.generic_editor(cite)
|
328
|
+
else
|
329
|
+
biblio_format.generic(cite)
|
330
|
+
end
|
331
|
+
end
|
202
332
|
def biblio_extraction
|
203
333
|
bibliography=[]
|
204
334
|
biblioflag=false
|
@@ -223,7 +353,7 @@ module SiSU_AO_References
|
|
223
353
|
end
|
224
354
|
unless code_flag
|
225
355
|
if @md.flag_auto_biblio
|
226
|
-
if t_o =~/^1
|
356
|
+
if t_o =~/^1~!biblio(?:graphy)?/
|
227
357
|
biblioflag = true
|
228
358
|
t_o
|
229
359
|
elsif t_o =~/^:?[B-D1]~/
|
@@ -239,7 +369,7 @@ module SiSU_AO_References
|
|
239
369
|
else t_o
|
240
370
|
end
|
241
371
|
elsif @md.flag_biblio
|
242
|
-
if t_o =~/^1
|
372
|
+
if t_o =~/^1~!biblio(?:graphy)?/
|
243
373
|
biblioflag = true
|
244
374
|
next
|
245
375
|
elsif t_o =~/^:?[B-D]~/
|
@@ -264,30 +394,22 @@ module SiSU_AO_References
|
|
264
394
|
if @md.flag_auto_biblio \
|
265
395
|
and bibliography.length > 0
|
266
396
|
data_new=[]
|
267
|
-
|
397
|
+
bib=sort_bibliography_array_by_deemed_author_year_title(bibliography)
|
398
|
+
biblio_done=[]
|
268
399
|
@data.select do |t_o|
|
269
|
-
if t_o =~/^1
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
/{"#{c[:fulltitle]}"}/ #{c[:publisher]} (#{c[:year]})
|
276
|
-
WOK
|
277
|
-
elsif c[:is]==:article
|
278
|
-
<<-WOK
|
279
|
-
|
280
|
-
!_ #{c[:author]}
|
281
|
-
/{"#{c[:title]}"}/ #{c[:journal]} (#{c[:year]})
|
282
|
-
WOK
|
283
|
-
end
|
400
|
+
if t_o =~/^1~!biblio(?:graphy)?/
|
401
|
+
bib.each do |c|
|
402
|
+
d=c
|
403
|
+
d.store(:obj, biblio_make(c))
|
404
|
+
biblio_done << d
|
405
|
+
#biblio_done << { obj: biblio_make(c), id: c[:id] }
|
284
406
|
end
|
285
407
|
else data_new << t_o
|
286
408
|
end
|
287
409
|
end
|
288
410
|
@data=data_new
|
289
411
|
end
|
290
|
-
[@data,
|
412
|
+
[@data,biblio_done]
|
291
413
|
end
|
292
414
|
end
|
293
415
|
class Citations
|
data/lib/sisu/ao_doc_str.rb
CHANGED
@@ -1072,7 +1072,13 @@ module SiSU_AO_DocumentStructureExtract
|
|
1072
1072
|
table: 0,
|
1073
1073
|
}
|
1074
1074
|
@metadata={}
|
1075
|
-
@
|
1075
|
+
if @md.flag_auto_biblio \
|
1076
|
+
or @md.flag_biblio
|
1077
|
+
@data,bibliography=SiSU_AO_Appendices::Bibliography.new(@md,@data).biblio_extraction
|
1078
|
+
end
|
1079
|
+
if @md.flag_glossary
|
1080
|
+
@data,glossary=SiSU_AO_Appendices::Glossary.new(@md,@data).glossary_extraction
|
1081
|
+
end
|
1076
1082
|
tuned_file=extract_structure_loop(@data,tuned_file)
|
1077
1083
|
if @md.flag_endnotes
|
1078
1084
|
tuned_file << @pb
|
@@ -1095,6 +1101,30 @@ module SiSU_AO_DocumentStructureExtract
|
|
1095
1101
|
obj: 'Endnotes'
|
1096
1102
|
}
|
1097
1103
|
end
|
1104
|
+
if @md.flag_glossary
|
1105
|
+
tuned_file << @pb
|
1106
|
+
h={
|
1107
|
+
ln: 1,
|
1108
|
+
lc: 1,
|
1109
|
+
obj: 'Glossary',
|
1110
|
+
autonum_: false,
|
1111
|
+
}
|
1112
|
+
tuned_file << SiSU_AO_DocumentStructure::ObjectHeading.new.heading_insert(h)
|
1113
|
+
h={
|
1114
|
+
ln: 4,
|
1115
|
+
lc: 2,
|
1116
|
+
obj: 'Glossary',
|
1117
|
+
name: 'glossary',
|
1118
|
+
autonum_: false,
|
1119
|
+
}
|
1120
|
+
tuned_file << SiSU_AO_DocumentStructure::ObjectHeading.new.heading_insert(h)
|
1121
|
+
h={
|
1122
|
+
obj: 'Glossary'
|
1123
|
+
}
|
1124
|
+
if glossary.length > 0
|
1125
|
+
tuned_file=extract_structure_loop(glossary,tuned_file)
|
1126
|
+
end
|
1127
|
+
end
|
1098
1128
|
if @md.flag_auto_biblio
|
1099
1129
|
tuned_file << @pb
|
1100
1130
|
h={
|
@@ -1116,27 +1146,17 @@ module SiSU_AO_DocumentStructureExtract
|
|
1116
1146
|
obj: 'Bibliography'
|
1117
1147
|
}
|
1118
1148
|
citenumber=0
|
1119
|
-
bibliography.each do |
|
1120
|
-
citenumber +=1 if
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
elsif c[:is]==:article
|
1131
|
-
h={
|
1132
|
-
obj: %{[#{citenumber}] *{#{c[:author]}}* /{"#{c[:title]}"}/ #{c[:journal]} #{c[:volume]} (#{c[:year]}) #{c[:url]}},
|
1133
|
-
tags: [c[:id]],
|
1134
|
-
hang: 0,
|
1135
|
-
indent: 2,
|
1136
|
-
ocn_: false,
|
1137
|
-
}
|
1138
|
-
tuned_file << SiSU_AO_DocumentStructure::ObjectPara.new.paragraph(h)
|
1139
|
-
end
|
1149
|
+
bibliography.each do |cite|
|
1150
|
+
citenumber +=1 if cite.is_a?(Hash)
|
1151
|
+
h={
|
1152
|
+
obj: cite[:obj],
|
1153
|
+
#obj: %{[#{citenumber}] } + cite[:obj],
|
1154
|
+
tags: [cite[:id]],
|
1155
|
+
hang: 0,
|
1156
|
+
indent: 2,
|
1157
|
+
ocn_: false,
|
1158
|
+
}
|
1159
|
+
tuned_file << SiSU_AO_DocumentStructure::ObjectPara.new.paragraph(h)
|
1140
1160
|
end
|
1141
1161
|
elsif @md.flag_biblio
|
1142
1162
|
tuned_file << @pb
|
@@ -1158,17 +1178,19 @@ module SiSU_AO_DocumentStructureExtract
|
|
1158
1178
|
h={
|
1159
1179
|
obj: 'Bibliography'
|
1160
1180
|
}
|
1161
|
-
if bibliography.
|
1181
|
+
if not bibliography.nil? \
|
1182
|
+
and bibliography.length > 0
|
1162
1183
|
tuned_file=extract_structure_loop(bibliography,tuned_file)
|
1163
1184
|
else
|
1164
1185
|
tuned_file, citations =
|
1165
|
-
|
1186
|
+
SiSU_AO_Appendices::Citations.new(@md,tuned_file).songsheet # ao_appendices.rb
|
1166
1187
|
citenumber=0
|
1167
1188
|
citations.compact.each do |c|
|
1168
1189
|
citenumber +=1 if c.is_a?(Hash)
|
1169
1190
|
if c[:is]==:book
|
1170
1191
|
h={
|
1171
|
-
obj: %{
|
1192
|
+
obj: %{#{c[:author]}. /{#{c[:publication]}}/ (#{c[:year]})},
|
1193
|
+
#obj: %{[#{citenumber}] *{#{c[:author]}}* /{#{c[:publication]}}/ (#{c[:year]})},
|
1172
1194
|
hang: 0,
|
1173
1195
|
indent: 2,
|
1174
1196
|
ocn_: false,
|
@@ -1176,7 +1198,8 @@ module SiSU_AO_DocumentStructureExtract
|
|
1176
1198
|
tuned_file << SiSU_AO_DocumentStructure::ObjectPara.new.paragraph(h)
|
1177
1199
|
elsif c[:is]==:article
|
1178
1200
|
h={
|
1179
|
-
obj: %{
|
1201
|
+
obj: %{#{c[:author]}. /{"#{c[:title]}"}/ #{c[:publication]} editor #{c[:editor]} (#{c[:year]})},
|
1202
|
+
#obj: %{[#{citenumber}] *{#{c[:author]}}* /{"#{c[:title]}"}/ #{c[:publication]} editor #{c[:editor]} (#{c[:year]})},
|
1180
1203
|
hang: 0,
|
1181
1204
|
indent: 2,
|
1182
1205
|
ocn_: false,
|
@@ -1229,7 +1252,7 @@ module SiSU_AO_DocumentStructureExtract
|
|
1229
1252
|
obj: 'eof',
|
1230
1253
|
}
|
1231
1254
|
meta=SiSU_AO_DocumentStructure::ObjectMetadata.new.metadata(@metadata)
|
1232
|
-
[tuned_file,meta,bibliography]
|
1255
|
+
[tuned_file,meta,bibliography,glossary]
|
1233
1256
|
end
|
1234
1257
|
def table_rows_and_columns_array(table_str)
|
1235
1258
|
table=[]
|
data/lib/sisu/dp.rb
CHANGED
@@ -897,9 +897,9 @@ module SiSU_Param
|
|
897
897
|
@doc={ lv: [] }
|
898
898
|
@doc[:fns],@doc[:fnb],@doc[:scr_suffix]='','',''
|
899
899
|
@@publisher='SiSU scribe'
|
900
|
-
attr_accessor :make,:env,:path,:file,:fn,:fns,:fno,:fnb,:fnn,:fnt,:fnl,:flv,:fnz,:fnstex,:ocn,:sfx_src,:pdf,:file_type,:dir_out,:dir_tex,:dir_lout,:txt_path,:sisu,:project_details,:ruby_version,:title,:subtitle,:full_title,:html_title,:subtitle_tex,:creator,:classify,:author_home,:author,:author_title,:author_nationality,:authors,:authorship,:translator,:illustrator,:prepared_by,:digitized_by,:subject,:description,:publisher,:current_publisher,:contributor,:date,:date_created,:date_issued,:date_available,:date_valid,:date_modified,:date_translated,:date_added_to_site,:date_scheme,:date_created_scheme,:date_issued_scheme,:date_available_scheme,:date_valid_scheme,:date_modified_scheme,:type,:format,:identifier,:source,:language,:language_original,:relation,:coverage,:rights,:keywords,:comments,:abstract,:cls_loc,:cls_dewey,:cls_pg,:cls_isbn,:papersize,:papersize_array,:toc,:lv0,:lv1,:lv2,:lv3,:lv4,:lv5,:lv6,:lvs,:pagenew,:pagebreak,:pageline,:num_top,:bold_match_list,:italics_match_list,:substitution_match_list,:emphasis_set_to,:toc_lev_limit,:flag_biblio,:flag_auto_biblio,:flag_endnotes,:flag_auto_endnotes,:flag_separate_endnotes,:flag_separate_endnotes_make,:markup,:markup_instruction,:flag_tables,:vocabulary,:doc_css,:yaml,:lnk,:links,:prefix_a,:prefix_b,:suffix,:information,:contact,:icon,:image,:ad_url,:ad_png,:ad_alt,:ad_began,:flag_promo,:promo,:ad_home,:stmp,:stmpd,:sc_filename,:sc_number,:sc_date,:sc_time,:sc_info,:yamladdr,:locale,:wc_lines,:wc_words,:wc_bytes,:file_encoding,:filesize,:user,:home,:hostname,:pwd,:firstseg,:programs,:author_copymark,:i18n,:lang,:lang_code_insert,:en,:notes,:dgst,:generated,:tags,:tag_array,:concord_make,:seg_names,:seg_autoname_safe,:set_header_title,:set_heading_top,:set_heading_seg,:heading_seg_first,:heading_seg_first_flag,:base_program,:ec,:opt,:sem_tag,:book_idx,:topic_register,:topic_register_array,:original,:writing_focus,:audio,:daisy,:home_button_image,:home_button_links,:footer_links,:cover_image,:man_section
|
900
|
+
attr_accessor :make,:env,:path,:file,:fn,:fns,:fno,:fnb,:fnn,:fnt,:fnl,:flv,:fnz,:fnstex,:ocn,:sfx_src,:pdf,:file_type,:dir_out,:dir_tex,:dir_lout,:txt_path,:sisu,:project_details,:ruby_version,:title,:subtitle,:full_title,:html_title,:subtitle_tex,:creator,:classify,:author_home,:author,:author_title,:author_nationality,:authors,:authorship,:translator,:illustrator,:prepared_by,:digitized_by,:subject,:description,:publisher,:current_publisher,:contributor,:date,:date_created,:date_issued,:date_available,:date_valid,:date_modified,:date_translated,:date_added_to_site,:date_scheme,:date_created_scheme,:date_issued_scheme,:date_available_scheme,:date_valid_scheme,:date_modified_scheme,:type,:format,:identifier,:source,:language,:language_original,:relation,:coverage,:rights,:keywords,:comments,:abstract,:cls_loc,:cls_dewey,:cls_pg,:cls_isbn,:papersize,:papersize_array,:toc,:lv0,:lv1,:lv2,:lv3,:lv4,:lv5,:lv6,:lvs,:pagenew,:pagebreak,:pageline,:num_top,:bold_match_list,:italics_match_list,:substitution_match_list,:emphasis_set_to,:toc_lev_limit,:flag_biblio,:flag_auto_biblio,:flag_endnotes,:flag_auto_endnotes,:flag_glossary,:flag_separate_endnotes,:flag_separate_endnotes_make,:markup,:markup_instruction,:flag_tables,:vocabulary,:doc_css,:yaml,:lnk,:links,:prefix_a,:prefix_b,:suffix,:information,:contact,:icon,:image,:ad_url,:ad_png,:ad_alt,:ad_began,:flag_promo,:promo,:ad_home,:stmp,:stmpd,:sc_filename,:sc_number,:sc_date,:sc_time,:sc_info,:yamladdr,:locale,:wc_lines,:wc_words,:wc_bytes,:file_encoding,:filesize,:user,:home,:hostname,:pwd,:firstseg,:programs,:author_copymark,:i18n,:lang,:lang_code_insert,:en,:notes,:dgst,:generated,:tags,:tag_array,:concord_make,:seg_names,:seg_autoname_safe,:set_header_title,:set_heading_top,:set_heading_seg,:heading_seg_first,:heading_seg_first_flag,:base_program,:ec,:opt,:sem_tag,:book_idx,:topic_register,:topic_register_array,:original,:writing_focus,:audio,:daisy,:home_button_image,:home_button_links,:footer_links,:cover_image,:man_section
|
901
901
|
def initialize(fns_array,opt)
|
902
|
-
@env=@path,@file=@fn=@fns=@fno=@fnb=@fnn=@fnt=@fnl=@flv=@fnz=@fnstex=@ocn=@sfx_src=@pdf=@file_type=@dir_out=@dir_tex=@dir_lout=@txt_path=@make=@flag_biblio=@flag_auto_biblio=@flag_endnotes=@flag_auto_endnotes=@flag_separate_endnotes=@flag_separate_endnotes_make=@sisu=@project_details=@ruby_version=@title=@subtitle=@full_title=@html_title=@subtitle_tex=@creator=@classify=@author_home=@author=@author_title=@author_nationality=@translator=@illustrator=@prepared_by=@digitized_by=@subject=@description=@publisher=@current_publisher=@contributor=@date=@date_created=@date_issued=@date_available=@date_valid=@date_modified=@date_translated=@date_added_to_site=@date_scheme=@date_created_scheme=@date_issued_scheme=@date_available_scheme=@date_valid_scheme=@date_modified_scheme=@type=@format=@identifier=@source=@language=@language_original=@relation=@coverage=@rights=@keywords=@comments=@abstract=@cls_loc=@cls_dewey=@cls_pg=@cls_isbn=@papersize=@toc=@lv0=@lv1=@lv2=@lv3=@lv4=@lv5=@lv6=@pagenew=@pagebreak=@pageline=@num_top=@bold_match_list=@italics_match_list=@substitution_match_list=@emphasis_set_to=@toc_lev_limit=@flag_tables=@vocabulary=@doc_css=@yaml=@lnk=@links=@prefix_a=@prefix_b=@suffix=@information=@contact=@icon=@ad_url=@ad_png=@ad_alt=@ad_began=@promo=@ad_home=@stmp=@stmpd=@sc_filename=@sc_number=@sc_date=@sc_time=@sc_info=@yamladdr=@locale=@wc_lines=@wc_words=@wc_bytes=@file_encoding=@filesize=@firstseg=@programs=@author_copymark=@i18n=@lang=@lang_code_insert=@en=@notes=@dgst=@generated=@heading_seg_first=@base_program=@topic_register=@original=@writing_focus=@audio=@home_button_image=@home_button_links=@cover_image=@man_section=nil
|
902
|
+
@env=@path,@file=@fn=@fns=@fno=@fnb=@fnn=@fnt=@fnl=@flv=@fnz=@fnstex=@ocn=@sfx_src=@pdf=@file_type=@dir_out=@dir_tex=@dir_lout=@txt_path=@make=@flag_biblio=@flag_auto_biblio=@flag_endnotes=@flag_auto_endnotes=@flag_glossary=@flag_separate_endnotes=@flag_separate_endnotes_make=@sisu=@project_details=@ruby_version=@title=@subtitle=@full_title=@html_title=@subtitle_tex=@creator=@classify=@author_home=@author=@author_title=@author_nationality=@translator=@illustrator=@prepared_by=@digitized_by=@subject=@description=@publisher=@current_publisher=@contributor=@date=@date_created=@date_issued=@date_available=@date_valid=@date_modified=@date_translated=@date_added_to_site=@date_scheme=@date_created_scheme=@date_issued_scheme=@date_available_scheme=@date_valid_scheme=@date_modified_scheme=@type=@format=@identifier=@source=@language=@language_original=@relation=@coverage=@rights=@keywords=@comments=@abstract=@cls_loc=@cls_dewey=@cls_pg=@cls_isbn=@papersize=@toc=@lv0=@lv1=@lv2=@lv3=@lv4=@lv5=@lv6=@pagenew=@pagebreak=@pageline=@num_top=@bold_match_list=@italics_match_list=@substitution_match_list=@emphasis_set_to=@toc_lev_limit=@flag_tables=@vocabulary=@doc_css=@yaml=@lnk=@links=@prefix_a=@prefix_b=@suffix=@information=@contact=@icon=@ad_url=@ad_png=@ad_alt=@ad_began=@promo=@ad_home=@stmp=@stmpd=@sc_filename=@sc_number=@sc_date=@sc_time=@sc_info=@yamladdr=@locale=@wc_lines=@wc_words=@wc_bytes=@file_encoding=@filesize=@firstseg=@programs=@author_copymark=@i18n=@lang=@lang_code_insert=@en=@notes=@dgst=@generated=@heading_seg_first=@base_program=@topic_register=@original=@writing_focus=@audio=@home_button_image=@home_button_links=@cover_image=@man_section=nil
|
903
903
|
@data, @path, @fns, @fno, @opt=
|
904
904
|
fns_array,opt.pth,opt.fns,opt.fno,opt #@data used as data
|
905
905
|
@flag_tables,@set_header_title,@set_heading_top,@set_heading_seg,@heading_seg_first_flag,@flag_promo,@book_idx=
|
@@ -1014,6 +1014,7 @@ module SiSU_Param
|
|
1014
1014
|
@fnstex=@fns.gsub(/_/,'\_\-').gsub(/\./,'.\-')
|
1015
1015
|
@flag_endnotes,@flag_auto_endnotes,@flag_separate_endnotes=false,false,false
|
1016
1016
|
@flag_separate_endnotes_make=true
|
1017
|
+
@flag_glossary=false
|
1017
1018
|
@flag_biblio,@flag_auto_biblio=false,false
|
1018
1019
|
ver=SiSU_Env::InfoVersion.instance
|
1019
1020
|
@project_details=ver.get_version
|
@@ -1216,7 +1217,7 @@ module SiSU_Param
|
|
1216
1217
|
).txt_grey if @opt.act[:verbose][:set]==:on
|
1217
1218
|
end
|
1218
1219
|
unless @code_flag
|
1219
|
-
if para =~/^1
|
1220
|
+
if para =~/^1~!biblio(?:graphy)?/
|
1220
1221
|
@flag_auto_biblio,@flag_biblio=false,true
|
1221
1222
|
#@flag_biblio=true
|
1222
1223
|
elsif @flag_biblio ==true \
|
@@ -1224,6 +1225,9 @@ module SiSU_Param
|
|
1224
1225
|
and para =~/^(?:au|author):/m
|
1225
1226
|
@flag_auto_biblio =true
|
1226
1227
|
end
|
1228
|
+
if para =~/^1~!glossary/
|
1229
|
+
@flag_glossary=true
|
1230
|
+
end
|
1227
1231
|
end
|
1228
1232
|
if not @book_idx \
|
1229
1233
|
and para =~/^=\{(.+?)\}[\s`]*\Z/m
|
data/lib/sisu/html_format.rb
CHANGED
@@ -883,7 +883,7 @@ WOK
|
|
883
883
|
tags=''
|
884
884
|
if defined? dob.tags \
|
885
885
|
and dob.tags.length > 0 # insert tags "hypertargets"
|
886
|
-
dob.tags.each do |t|
|
886
|
+
dob.tags.compact.each do |t| # .compact hides a problem, nil should not occur fix (upstream)
|
887
887
|
t=t.gsub(/[^a-z0-9._-]/,'') #use for all html tags? consider limiting to strict? or implementing earlier
|
888
888
|
tags=(t =~/^[0-9.]+$/) \
|
889
889
|
? tags #check what can be sorted in ao
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sisu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ralph Amissah
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: documents - structuring, publishing in multiple formats & search [7.
|
14
|
-
|
13
|
+
description: documents - structuring, publishing in multiple formats & search [7.1.0]
|
14
|
+
(linux calls & without external dependencies)
|
15
15
|
email: ralph.amissah@gmail.com
|
16
16
|
executables:
|
17
17
|
- sisugem
|
@@ -53,6 +53,7 @@ files:
|
|
53
53
|
- lib/sisu.rb
|
54
54
|
- lib/sisu/air.rb
|
55
55
|
- lib/sisu/ao.rb
|
56
|
+
- lib/sisu/ao_appendices.rb
|
56
57
|
- lib/sisu/ao_character_check.rb
|
57
58
|
- lib/sisu/ao_composite.rb
|
58
59
|
- lib/sisu/ao_doc_objects.rb
|
@@ -66,7 +67,6 @@ files:
|
|
66
67
|
- lib/sisu/ao_misc_arrange.rb
|
67
68
|
- lib/sisu/ao_numbering.rb
|
68
69
|
- lib/sisu/ao_persist.rb
|
69
|
-
- lib/sisu/ao_references.rb
|
70
70
|
- lib/sisu/ao_syntax.rb
|
71
71
|
- lib/sisu/cgi.rb
|
72
72
|
- lib/sisu/cgi_pgsql.rb
|