sisu 7.0.0
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.
- checksums.yaml +7 -0
- data/bin/sisu +367 -0
- data/bin/sisugem +367 -0
- data/data/sisu/image/arrow_next_red.png +0 -0
- data/data/sisu/image/arrow_prev_red.png +0 -0
- data/data/sisu/image/arrow_up_red.png +0 -0
- data/data/sisu/image/b_bluebell.png +0 -0
- data/data/sisu/image/b_doc.png +0 -0
- data/data/sisu/image/b_epub.png +0 -0
- data/data/sisu/image/b_home.png +0 -0
- data/data/sisu/image/b_info.png +0 -0
- data/data/sisu/image/b_odf.png +0 -0
- data/data/sisu/image/b_pdf.png +0 -0
- data/data/sisu/image/b_search.png +0 -0
- data/data/sisu/image/b_toc.png +0 -0
- data/data/sisu/image/bullet_08.png +0 -0
- data/data/sisu/image/bullet_09.png +0 -0
- data/data/sisu/image/bullet_10.png +0 -0
- data/data/sisu/image/bullet_11.png +0 -0
- data/data/sisu/image/bullet_12.png +0 -0
- data/data/sisu/image/bullet_doc.png +0 -0
- data/data/sisu/image/bullet_red.png +0 -0
- data/data/sisu/image/dot_clear.png +0 -0
- data/data/sisu/image/dot_white.png +0 -0
- data/data/sisu/image/gplv3.png +0 -0
- data/data/sisu/image/gplv3_free_software.png +0 -0
- data/data/sisu/image/next.png +0 -0
- data/data/sisu/image/previous.png +0 -0
- data/data/sisu/image/rb7.ico +0 -0
- data/data/sisu/image/sisu.png +0 -0
- data/data/sisu/image/toctoc.png +0 -0
- data/data/sisu/version.yml +5 -0
- data/lib/sisu.rb +94 -0
- data/lib/sisu/air.rb +80 -0
- data/lib/sisu/ao.rb +590 -0
- data/lib/sisu/ao_character_check.rb +102 -0
- data/lib/sisu/ao_composite.rb +286 -0
- data/lib/sisu/ao_doc_objects.rb +565 -0
- data/lib/sisu/ao_doc_str.rb +2269 -0
- data/lib/sisu/ao_endnotes.rb +136 -0
- data/lib/sisu/ao_expand_insertions.rb +514 -0
- data/lib/sisu/ao_hash_digest.rb +174 -0
- data/lib/sisu/ao_idx.rb +422 -0
- data/lib/sisu/ao_images.rb +187 -0
- data/lib/sisu/ao_metadata.rb +86 -0
- data/lib/sisu/ao_misc_arrange.rb +207 -0
- data/lib/sisu/ao_numbering.rb +720 -0
- data/lib/sisu/ao_persist.rb +194 -0
- data/lib/sisu/ao_references.rb +502 -0
- data/lib/sisu/ao_syntax.rb +640 -0
- data/lib/sisu/cgi.rb +84 -0
- data/lib/sisu/cgi_pgsql.rb +270 -0
- data/lib/sisu/cgi_sql_common.rb +986 -0
- data/lib/sisu/cgi_sqlite.rb +244 -0
- data/lib/sisu/conf.rb +287 -0
- data/lib/sisu/constants.rb +388 -0
- data/lib/sisu/css.rb +3484 -0
- data/lib/sisu/db_columns.rb +1997 -0
- data/lib/sisu/db_create.rb +689 -0
- data/lib/sisu/db_dbi.rb +90 -0
- data/lib/sisu/db_drop.rb +207 -0
- data/lib/sisu/db_import.rb +877 -0
- data/lib/sisu/db_indexes.rb +146 -0
- data/lib/sisu/db_load_tuple.rb +323 -0
- data/lib/sisu/db_remove.rb +182 -0
- data/lib/sisu/db_select.rb +230 -0
- data/lib/sisu/db_sqltxt.rb +173 -0
- data/lib/sisu/db_tests.rb +114 -0
- data/lib/sisu/dbi.rb +166 -0
- data/lib/sisu/dbi_discrete.rb +206 -0
- data/lib/sisu/digests.rb +306 -0
- data/lib/sisu/dp.rb +1606 -0
- data/lib/sisu/dp_identify_markup.rb +161 -0
- data/lib/sisu/dp_make.rb +668 -0
- data/lib/sisu/embedded.rb +149 -0
- data/lib/sisu/errors.rb +84 -0
- data/lib/sisu/generic_parts.rb +131 -0
- data/lib/sisu/git.rb +277 -0
- data/lib/sisu/html.rb +775 -0
- data/lib/sisu/html_concordance.rb +391 -0
- data/lib/sisu/html_format.rb +1348 -0
- data/lib/sisu/html_harvest.rb +109 -0
- data/lib/sisu/html_harvest_author_format.rb +111 -0
- data/lib/sisu/html_harvest_authors.rb +466 -0
- data/lib/sisu/html_harvest_topics.rb +893 -0
- data/lib/sisu/html_lite_shared.rb +324 -0
- data/lib/sisu/html_manifest.rb +1032 -0
- data/lib/sisu/html_minitoc.rb +230 -0
- data/lib/sisu/html_parts.rb +437 -0
- data/lib/sisu/html_persist.rb +237 -0
- data/lib/sisu/html_promo.rb +440 -0
- data/lib/sisu/html_scroll.rb +235 -0
- data/lib/sisu/html_segments.rb +716 -0
- data/lib/sisu/html_shared.rb +62 -0
- data/lib/sisu/html_table.rb +64 -0
- data/lib/sisu/html_tune.rb +301 -0
- data/lib/sisu/hub.rb +277 -0
- data/lib/sisu/hub_actions.rb +1122 -0
- data/lib/sisu/hub_loop_markup_files.rb +170 -0
- data/lib/sisu/hub_options.rb +1695 -0
- data/lib/sisu/i18n.rb +702 -0
- data/lib/sisu/manpage.rb +377 -0
- data/lib/sisu/manpage_format.rb +85 -0
- data/lib/sisu/object_munge.rb +307 -0
- data/lib/sisu/prog_text_translation.rb +1702 -0
- data/lib/sisu/qrcode.rb +754 -0
- data/lib/sisu/relaxng.rb +1153 -0
- data/lib/sisu/remote.rb +246 -0
- data/lib/sisu/rexml.rb +148 -0
- data/lib/sisu/se.rb +158 -0
- data/lib/sisu/se_cleanoutput.rb +145 -0
- data/lib/sisu/se_clear.rb +105 -0
- data/lib/sisu/se_createsite.rb +273 -0
- data/lib/sisu/se_css.rb +221 -0
- data/lib/sisu/se_date.rb +92 -0
- data/lib/sisu/se_db.rb +214 -0
- data/lib/sisu/se_envcall.rb +326 -0
- data/lib/sisu/se_file_op.rb +2758 -0
- data/lib/sisu/se_filemap.rb +247 -0
- data/lib/sisu/se_get_init.rb +238 -0
- data/lib/sisu/se_hub_particulars.rb +234 -0
- data/lib/sisu/se_info_env.rb +2179 -0
- data/lib/sisu/se_info_port.rb +70 -0
- data/lib/sisu/se_info_system.rb +202 -0
- data/lib/sisu/se_load.rb +108 -0
- data/lib/sisu/se_processing.rb +659 -0
- data/lib/sisu/se_programs.rb +394 -0
- data/lib/sisu/se_remotes.rb +553 -0
- data/lib/sisu/se_standardise_lang.rb +176 -0
- data/lib/sisu/se_version.rb +174 -0
- data/lib/sisu/shared_images.rb +137 -0
- data/lib/sisu/shared_markup_alt.rb +336 -0
- data/lib/sisu/shared_metadata.rb +1361 -0
- data/lib/sisu/shared_sem.rb +156 -0
- data/lib/sisu/sisu_thor_lib.rb +407 -0
- data/lib/sisu/sitemaps.rb +224 -0
- data/lib/sisu/src_kdissert_share.rb +102 -0
- data/lib/sisu/src_po4a_share.rb +309 -0
- data/lib/sisu/src_po4a_shelf.rb +1217 -0
- data/lib/sisu/src_po4a_shelf_set.rb +297 -0
- data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
- data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
- data/lib/sisu/src_po4a_sstm.rb +135 -0
- data/lib/sisu/src_shared.rb +347 -0
- data/lib/sisu/src_sisupod_make.rb +171 -0
- data/lib/sisu/src_sisupod_sstm.rb +109 -0
- data/lib/sisu/sst_convert_markup.rb +323 -0
- data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
- data/lib/sisu/sst_from_xml.rb +178 -0
- data/lib/sisu/sst_identify_markup.rb +482 -0
- data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
- data/lib/sisu/termsheet.rb +163 -0
- data/lib/sisu/texinfo.rb +430 -0
- data/lib/sisu/texinfo_format.rb +541 -0
- data/lib/sisu/texpdf.rb +1162 -0
- data/lib/sisu/texpdf_format.rb +1689 -0
- data/lib/sisu/texpdf_parts.rb +235 -0
- data/lib/sisu/txt_asciidoc.rb +354 -0
- data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
- data/lib/sisu/txt_markdown.rb +389 -0
- data/lib/sisu/txt_markdown_decorate.rb +207 -0
- data/lib/sisu/txt_orgmode.rb +376 -0
- data/lib/sisu/txt_orgmode_decorate.rb +186 -0
- data/lib/sisu/txt_output.rb +86 -0
- data/lib/sisu/txt_plain.rb +410 -0
- data/lib/sisu/txt_plain_decorate.rb +189 -0
- data/lib/sisu/txt_read.rb +109 -0
- data/lib/sisu/txt_rst.rb +371 -0
- data/lib/sisu/txt_rst_decorate.rb +186 -0
- data/lib/sisu/txt_shared.rb +241 -0
- data/lib/sisu/txt_textile.rb +367 -0
- data/lib/sisu/txt_textile_decorate.rb +186 -0
- data/lib/sisu/update.rb +141 -0
- data/lib/sisu/urls.rb +696 -0
- data/lib/sisu/utils.rb +232 -0
- data/lib/sisu/utils_composite.rb +115 -0
- data/lib/sisu/utils_response.rb +114 -0
- data/lib/sisu/utils_screen_text_color.rb +472 -0
- data/lib/sisu/utils_spell.rb +99 -0
- data/lib/sisu/webrick.rb +191 -0
- data/lib/sisu/wikispeak.rb +375 -0
- data/lib/sisu/xhtml.rb +472 -0
- data/lib/sisu/xhtml_epub2.rb +890 -0
- data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
- data/lib/sisu/xhtml_epub2_format.rb +2272 -0
- data/lib/sisu/xhtml_epub2_persist.rb +278 -0
- data/lib/sisu/xhtml_epub2_segments.rb +599 -0
- data/lib/sisu/xhtml_epub2_tune.rb +330 -0
- data/lib/sisu/xhtml_parts.rb +183 -0
- data/lib/sisu/xhtml_shared.rb +62 -0
- data/lib/sisu/xhtml_table.rb +97 -0
- data/lib/sisu/xml_docbook5.rb +376 -0
- data/lib/sisu/xml_dom.rb +624 -0
- data/lib/sisu/xml_fictionbook2.rb +389 -0
- data/lib/sisu/xml_format.rb +865 -0
- data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
- data/lib/sisu/xml_odf_odt.rb +887 -0
- data/lib/sisu/xml_odf_odt_format.rb +674 -0
- data/lib/sisu/xml_parts.rb +191 -0
- data/lib/sisu/xml_persist.rb +126 -0
- data/lib/sisu/xml_sax.rb +521 -0
- data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
- data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
- data/lib/sisu/xml_shared.rb +665 -0
- data/lib/sisu/xml_tables.rb +261 -0
- data/lib/sisu/zap.rb +90 -0
- metadata +251 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** document abstraction
|
|
8
|
+
|
|
9
|
+
** Author: Ralph Amissah
|
|
10
|
+
<ralph@amissah.com>
|
|
11
|
+
<ralph.amissah@gmail.com>
|
|
12
|
+
|
|
13
|
+
** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
|
14
|
+
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
|
|
15
|
+
All Rights Reserved.
|
|
16
|
+
|
|
17
|
+
** License: GPL 3 or later:
|
|
18
|
+
|
|
19
|
+
SiSU, a framework for document structuring, publishing and search
|
|
20
|
+
|
|
21
|
+
Copyright (C) Ralph Amissah
|
|
22
|
+
|
|
23
|
+
This program is free software: you can redistribute it and/or modify it
|
|
24
|
+
under the terms of the GNU General Public License as published by the Free
|
|
25
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
|
26
|
+
any later version.
|
|
27
|
+
|
|
28
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
29
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
30
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
31
|
+
more details.
|
|
32
|
+
|
|
33
|
+
You should have received a copy of the GNU General Public License along with
|
|
34
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
35
|
+
|
|
36
|
+
If you have Internet connection, the latest version of the GPL should be
|
|
37
|
+
available at these locations:
|
|
38
|
+
<http://www.fsf.org/licensing/licenses/gpl.html>
|
|
39
|
+
<http://www.gnu.org/licenses/gpl.html>
|
|
40
|
+
|
|
41
|
+
<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
|
|
42
|
+
|
|
43
|
+
** SiSU uses:
|
|
44
|
+
* Standard SiSU markup syntax,
|
|
45
|
+
* Standard SiSU meta-markup syntax, and the
|
|
46
|
+
* Standard SiSU object citation numbering and system
|
|
47
|
+
|
|
48
|
+
** Hompages:
|
|
49
|
+
<http://www.jus.uio.no/sisu>
|
|
50
|
+
<http://www.sisudoc.org>
|
|
51
|
+
|
|
52
|
+
** Git
|
|
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/ao_persist.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_AO_Persist
|
|
58
|
+
class Persist
|
|
59
|
+
@@persistance=nil
|
|
60
|
+
attr_accessor :fns, :ao_arr, :idx_arr_sst, :idx_arr_tex, :idx_arr_html, :idx_arr_xhtml, :map_arr_nametags, :map_arr_ocn_htmlseg
|
|
61
|
+
def initialize(args=nil)
|
|
62
|
+
@@persistance=args=(args ? args : (@@persistance || persist_init_hash_values))
|
|
63
|
+
@fns=args[:fns]
|
|
64
|
+
@ao_arr=args[:ao_arr]
|
|
65
|
+
@idx_arr_sst=args[:idx_arr_sst]
|
|
66
|
+
@idx_arr_tex=args[:idx_arr_tex]
|
|
67
|
+
@idx_arr_html=args[:idx_arr_html]
|
|
68
|
+
@idx_arr_xhtml=args[:idx_arr_xhtml]
|
|
69
|
+
@map_arr_nametags=args[:map_arr_nametags]
|
|
70
|
+
@map_arr_ocn_htmlseg=args[:map_arr_ocn_htmlseg]
|
|
71
|
+
end
|
|
72
|
+
def fns
|
|
73
|
+
@fns
|
|
74
|
+
end
|
|
75
|
+
def ao_arr
|
|
76
|
+
@ao_arr
|
|
77
|
+
end
|
|
78
|
+
def idx_arr_sst
|
|
79
|
+
@idx_arr_sst
|
|
80
|
+
end
|
|
81
|
+
def idx_arr_tex
|
|
82
|
+
@idx_arr_tex
|
|
83
|
+
end
|
|
84
|
+
def idx_arr_html
|
|
85
|
+
@idx_arr_html
|
|
86
|
+
end
|
|
87
|
+
def idx_arr_xhtml
|
|
88
|
+
@idx_arr_xhtml
|
|
89
|
+
end
|
|
90
|
+
def map_arr_nametags
|
|
91
|
+
@map_arr_nametags
|
|
92
|
+
end
|
|
93
|
+
def map_arr_ocn_htmlseg
|
|
94
|
+
@map_arr_ocn_htmlseg
|
|
95
|
+
end
|
|
96
|
+
def persist_init_hash_values
|
|
97
|
+
{
|
|
98
|
+
fns: nil,
|
|
99
|
+
ao_arr: [],
|
|
100
|
+
idx_arr_sst: [],
|
|
101
|
+
idx_arr_tex: [],
|
|
102
|
+
idx_arr_html: [],
|
|
103
|
+
idx_arr_xhtml: [],
|
|
104
|
+
map_arr_nametags: [],
|
|
105
|
+
map_arr_ocn_htmlseg: [],
|
|
106
|
+
}
|
|
107
|
+
end
|
|
108
|
+
def persist_init
|
|
109
|
+
@@persistance=nil
|
|
110
|
+
Persist.new(persist_init_hash_values)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
class PersistDocStructExt
|
|
114
|
+
@@persist=nil
|
|
115
|
+
attr_accessor :ocn, :lng, :lng_is, :code, :lngsyn, :poem, :block, :box, :group, :alt, :quote, :table, :table_to
|
|
116
|
+
def initialize(args=nil)
|
|
117
|
+
@@persist=args=(args ? args : (@@persist || persist_init_hash_values))
|
|
118
|
+
@ocn=args[:ocn]
|
|
119
|
+
@lng=args[:lng]
|
|
120
|
+
@lng_is=args[:lng_is]
|
|
121
|
+
@code=args[:code]
|
|
122
|
+
@lngsyn=args[:lngsyn]
|
|
123
|
+
@poem=args[:poem]
|
|
124
|
+
@block=args[:block]
|
|
125
|
+
@box=args[:box]
|
|
126
|
+
@group=args[:group]
|
|
127
|
+
@alt=args[:alt]
|
|
128
|
+
@quote=args[:quote]
|
|
129
|
+
@table=args[:table]
|
|
130
|
+
@table_to=args[:table_to]
|
|
131
|
+
end
|
|
132
|
+
def ocn
|
|
133
|
+
@ocn
|
|
134
|
+
end
|
|
135
|
+
def lng
|
|
136
|
+
@lng
|
|
137
|
+
end
|
|
138
|
+
def lng_is
|
|
139
|
+
@lng_is
|
|
140
|
+
end
|
|
141
|
+
def code
|
|
142
|
+
@code
|
|
143
|
+
end
|
|
144
|
+
def lngsyn
|
|
145
|
+
@lngsyn
|
|
146
|
+
end
|
|
147
|
+
def poem
|
|
148
|
+
@poem
|
|
149
|
+
end
|
|
150
|
+
def block
|
|
151
|
+
@block
|
|
152
|
+
end
|
|
153
|
+
def box
|
|
154
|
+
@box
|
|
155
|
+
end
|
|
156
|
+
def group
|
|
157
|
+
@group
|
|
158
|
+
end
|
|
159
|
+
def alt
|
|
160
|
+
@alt
|
|
161
|
+
end
|
|
162
|
+
def quote
|
|
163
|
+
@quote
|
|
164
|
+
end
|
|
165
|
+
def table
|
|
166
|
+
@table
|
|
167
|
+
end
|
|
168
|
+
def table_to
|
|
169
|
+
@table_to
|
|
170
|
+
end
|
|
171
|
+
def persist_init_hash_values
|
|
172
|
+
{
|
|
173
|
+
ocn: :on,
|
|
174
|
+
lng: :off,
|
|
175
|
+
lng_is: :doc_default,
|
|
176
|
+
code: :off,
|
|
177
|
+
lngsyn: :txt,
|
|
178
|
+
poem: :off,
|
|
179
|
+
block: :off,
|
|
180
|
+
box: :off,
|
|
181
|
+
group: :off,
|
|
182
|
+
alt: :off,
|
|
183
|
+
quote: :off,
|
|
184
|
+
table: :off,
|
|
185
|
+
table_to: :off,
|
|
186
|
+
}
|
|
187
|
+
end
|
|
188
|
+
def persist_init
|
|
189
|
+
@@persist=nil
|
|
190
|
+
PersistDocStructExt.new(persist_init_hash_values)
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
__END__
|
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** system environment, resource control and configuration details
|
|
8
|
+
|
|
9
|
+
** Author: Ralph Amissah
|
|
10
|
+
<ralph@amissah.com>
|
|
11
|
+
<ralph.amissah@gmail.com>
|
|
12
|
+
|
|
13
|
+
** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
|
14
|
+
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
|
|
15
|
+
All Rights Reserved.
|
|
16
|
+
|
|
17
|
+
** License: GPL 3 or later:
|
|
18
|
+
|
|
19
|
+
SiSU, a framework for document structuring, publishing and search
|
|
20
|
+
|
|
21
|
+
Copyright (C) Ralph Amissah
|
|
22
|
+
|
|
23
|
+
This program is free software: you can redistribute it and/or modify it
|
|
24
|
+
under the terms of the GNU General Public License as published by the Free
|
|
25
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
|
26
|
+
any later version.
|
|
27
|
+
|
|
28
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
29
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
30
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
31
|
+
more details.
|
|
32
|
+
|
|
33
|
+
You should have received a copy of the GNU General Public License along with
|
|
34
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
35
|
+
|
|
36
|
+
If you have Internet connection, the latest version of the GPL should be
|
|
37
|
+
available at these locations:
|
|
38
|
+
<http://www.fsf.org/licensing/licenses/gpl.html>
|
|
39
|
+
<http://www.gnu.org/licenses/gpl.html>
|
|
40
|
+
|
|
41
|
+
<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
|
|
42
|
+
|
|
43
|
+
** SiSU uses:
|
|
44
|
+
* Standard SiSU markup syntax,
|
|
45
|
+
* Standard SiSU meta-markup syntax, and the
|
|
46
|
+
* Standard SiSU object citation numbering and system
|
|
47
|
+
|
|
48
|
+
** Hompages:
|
|
49
|
+
<http://www.jus.uio.no/sisu>
|
|
50
|
+
<http://www.sisudoc.org>
|
|
51
|
+
|
|
52
|
+
** Git
|
|
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/ao_references.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_AO_References
|
|
58
|
+
class Bibliography
|
|
59
|
+
def initialize(md,data)
|
|
60
|
+
@md,@data=md,data
|
|
61
|
+
end
|
|
62
|
+
def sort_bibliography_array_by_author_year_title(bib)
|
|
63
|
+
if bib
|
|
64
|
+
bib.compact.sort_by do |c|
|
|
65
|
+
[c[:author_arr][0],c[:year],c[:title]]
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
def citation_in_prepared_bibliography(cite)
|
|
70
|
+
@cite=cite
|
|
71
|
+
def article
|
|
72
|
+
{
|
|
73
|
+
is: :article,
|
|
74
|
+
author_raw: nil,
|
|
75
|
+
author: nil,
|
|
76
|
+
author_arr: nil,
|
|
77
|
+
title: nil,
|
|
78
|
+
language: nil,
|
|
79
|
+
journal: nil,
|
|
80
|
+
volume: nil,
|
|
81
|
+
editor: nil,
|
|
82
|
+
year: nil,
|
|
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,
|
|
97
|
+
title: nil,
|
|
98
|
+
subtitle: nil,
|
|
99
|
+
fulltitle: nil,
|
|
100
|
+
language: nil,
|
|
101
|
+
publisher: nil,
|
|
102
|
+
edition: nil,
|
|
103
|
+
year: nil,
|
|
104
|
+
where: nil,
|
|
105
|
+
url: nil,
|
|
106
|
+
note: nil,
|
|
107
|
+
short_name: nil,
|
|
108
|
+
id: nil,
|
|
109
|
+
}
|
|
110
|
+
end
|
|
111
|
+
def citation_metadata
|
|
112
|
+
type=if @cite =~/^jo: \S+/m
|
|
113
|
+
:article
|
|
114
|
+
elsif @cite =~/^au: \S+/m
|
|
115
|
+
:book
|
|
116
|
+
end
|
|
117
|
+
if type
|
|
118
|
+
citeblock=@cite.split("\n")
|
|
119
|
+
if type == :article
|
|
120
|
+
citation=article
|
|
121
|
+
citeblock.select do |meta|
|
|
122
|
+
case meta
|
|
123
|
+
when /^((?:au|author):\s+)\S+/ #req
|
|
124
|
+
citation[:author_raw]=/^#{$1}(.+)/.match(meta)[1]
|
|
125
|
+
when /^((?:ti|title):\s+)\S+/ #req
|
|
126
|
+
citation[:title]=/^#{$1}(.+)/.match(meta)[1]
|
|
127
|
+
when /^((?:lng|language):\s+)\S+/
|
|
128
|
+
citation[:language]=/^#{$1}(.+)/.match(meta)[1]
|
|
129
|
+
when /^((?:jo|journal):\s+)\S+/ #req?
|
|
130
|
+
citation[:journal]=/^#{$1}(.+)/.match(meta)[1]
|
|
131
|
+
when /^((?:vo|volume):\s+)\S+/
|
|
132
|
+
citation[:volume]=/^#{$1}(.+)/.match(meta)[1]
|
|
133
|
+
when /^((?:edr|editor):\s+)\S+/
|
|
134
|
+
citation[:editor]=/^#{$1}(.+)/.match(meta)[1]
|
|
135
|
+
when /^((?:yr|year):\s+)\S+/ #req?
|
|
136
|
+
citation[:year]=/^#{$1}(.+)/.match(meta)[1]
|
|
137
|
+
when /^((?:pst|publisher_state):\s+)\S+/
|
|
138
|
+
citation[:where]=/^#{$1}(.+)/.match(meta)[1]
|
|
139
|
+
when /^(url:\s+)\S+/
|
|
140
|
+
citation[:url]=/^#{$1}(.+)/.match(meta)[1]
|
|
141
|
+
when /^(note:\s+)\S+/
|
|
142
|
+
citation[:note]=/^#{$1}(.+)/.match(meta)[1]
|
|
143
|
+
when /^((?:sn|shortname):\s+)\S+/
|
|
144
|
+
citation[:short_name]=/^#{$1}(.+)/.match(meta)[1]
|
|
145
|
+
when /^(id:\s+)\S+/
|
|
146
|
+
citation[:id]=/^#{$1}(.+)/.match(meta)[1]
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
if type == :book
|
|
151
|
+
citation=book
|
|
152
|
+
citeblock.select do |meta|
|
|
153
|
+
case meta
|
|
154
|
+
when /^((?:au|author):\s+)\S+/ #req
|
|
155
|
+
citation[:author_raw]=/^#{$1}(.+)/.match(meta)[1]
|
|
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
|
|
180
|
+
end
|
|
181
|
+
if citation[:is]==:book
|
|
182
|
+
if citation[:subtitle]
|
|
183
|
+
citation[:fulltitle] = citation[:title] \
|
|
184
|
+
+ ' - ' \
|
|
185
|
+
+ citation[:subtitle]
|
|
186
|
+
else
|
|
187
|
+
citation[:fulltitle] = citation[:title]
|
|
188
|
+
end
|
|
189
|
+
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
|
+
unless citation[:short_name]
|
|
195
|
+
citation[:short_name]=%{#{c[:author]}, "#{c[:short_name]}" (#{c[:date]})}
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
citation
|
|
199
|
+
end
|
|
200
|
+
self
|
|
201
|
+
end
|
|
202
|
+
def biblio_extraction
|
|
203
|
+
bibliography=[]
|
|
204
|
+
biblioflag=false
|
|
205
|
+
code_flag=false
|
|
206
|
+
flag_code_curly=:not_code_curly
|
|
207
|
+
flag_code_tics=:not_code_tics
|
|
208
|
+
@data=@data.select do |t_o|
|
|
209
|
+
if t_o =~/^code\{/
|
|
210
|
+
flag_code_curly=:code_curly
|
|
211
|
+
elsif t_o =~/^\}code/
|
|
212
|
+
flag_code_curly=:not_code_curly
|
|
213
|
+
elsif t_o =~/^``` code/
|
|
214
|
+
flag_code_tics=:code_tics
|
|
215
|
+
elsif flag_code_tics ==:code_tics \
|
|
216
|
+
and t_o =~/^```/
|
|
217
|
+
flag_code_tics=:not_code_tics
|
|
218
|
+
end
|
|
219
|
+
code_flag=if flag_code_curly==:code_curly \
|
|
220
|
+
or flag_code_tics==:code_tics
|
|
221
|
+
true
|
|
222
|
+
else false
|
|
223
|
+
end
|
|
224
|
+
unless code_flag
|
|
225
|
+
if @md.flag_auto_biblio
|
|
226
|
+
if t_o =~/^1~biblio(?:graphy)?/
|
|
227
|
+
biblioflag = true
|
|
228
|
+
t_o
|
|
229
|
+
elsif t_o =~/^:?[B-D1]~/
|
|
230
|
+
biblioflag = false
|
|
231
|
+
t_o
|
|
232
|
+
elsif biblioflag
|
|
233
|
+
if t_o !~/\A%+ /
|
|
234
|
+
bibliography << citation_in_prepared_bibliography(t_o).citation_metadata
|
|
235
|
+
next
|
|
236
|
+
else
|
|
237
|
+
t_o
|
|
238
|
+
end
|
|
239
|
+
else t_o
|
|
240
|
+
end
|
|
241
|
+
elsif @md.flag_biblio
|
|
242
|
+
if t_o =~/^1~biblio(?:graphy)?/
|
|
243
|
+
biblioflag = true
|
|
244
|
+
next
|
|
245
|
+
elsif t_o =~/^:?[B-D]~/
|
|
246
|
+
next
|
|
247
|
+
elsif t_o =~/^:?[B-D1]~/
|
|
248
|
+
biblioflag = false
|
|
249
|
+
t_o
|
|
250
|
+
elsif biblioflag
|
|
251
|
+
if t_o !~/\A%+ /
|
|
252
|
+
bibliography << t_o
|
|
253
|
+
next
|
|
254
|
+
else
|
|
255
|
+
t_o
|
|
256
|
+
end
|
|
257
|
+
else t_o
|
|
258
|
+
end
|
|
259
|
+
else t_o
|
|
260
|
+
end
|
|
261
|
+
else t_o
|
|
262
|
+
end
|
|
263
|
+
end.compact
|
|
264
|
+
if @md.flag_auto_biblio \
|
|
265
|
+
and bibliography.length > 0
|
|
266
|
+
data_new=[]
|
|
267
|
+
bibliography=sort_bibliography_array_by_author_year_title(bibliography)
|
|
268
|
+
@data.select do |t_o|
|
|
269
|
+
if t_o =~/^1~biblio(?:graphy)?/
|
|
270
|
+
bibliography.each do |c|
|
|
271
|
+
if c[:is]==:book
|
|
272
|
+
<<-WOK
|
|
273
|
+
|
|
274
|
+
!_ #{c[:author]}
|
|
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
|
|
284
|
+
end
|
|
285
|
+
else data_new << t_o
|
|
286
|
+
end
|
|
287
|
+
end
|
|
288
|
+
@data=data_new
|
|
289
|
+
end
|
|
290
|
+
[@data,bibliography]
|
|
291
|
+
end
|
|
292
|
+
end
|
|
293
|
+
class Citations
|
|
294
|
+
def initialize(md='',data='')
|
|
295
|
+
@md,@data=md,data
|
|
296
|
+
#@biblio=[]
|
|
297
|
+
end
|
|
298
|
+
def songsheet
|
|
299
|
+
tuned_file,citations=citations_scan(@data)
|
|
300
|
+
[tuned_file,citations]
|
|
301
|
+
end
|
|
302
|
+
def sort_bibliography_array_by_author_year(bib)
|
|
303
|
+
bib.sort_by do |c|
|
|
304
|
+
[c[:author_raw],c[:year]]
|
|
305
|
+
#[c[:author_arr][0],c[:year],c[:title]]
|
|
306
|
+
end
|
|
307
|
+
end
|
|
308
|
+
def citations_regex
|
|
309
|
+
def pages_pattern
|
|
310
|
+
%r{(?:[,.:]?\s+(?:p{1,2}\.?\s+)?(?:\d+--?\d+)[,.]?\s+)?}
|
|
311
|
+
end
|
|
312
|
+
def editor_pattern
|
|
313
|
+
%r{(?<editor>(?:editor|edited by)\s+.+?)}
|
|
314
|
+
end
|
|
315
|
+
def year_pattern
|
|
316
|
+
%r{[(\[]?(?<year>\d{4})[\])]?[.,]?}
|
|
317
|
+
end
|
|
318
|
+
def authors_year_title_publication_editor_pages
|
|
319
|
+
/(?<authors>.+?)\s+#{year_pattern}\s+"(?<title>.+?)"\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})\s+#{editor_pattern}#{pages_pattern}/m # note ed. is usually edition rather than editor
|
|
320
|
+
end
|
|
321
|
+
def authors_title_publication_year_editor_pages
|
|
322
|
+
/(?<authors>.+?)\s+"(?<title>.+?)"\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})\s+#{year_pattern}\s+#{editor_pattern}#{pages_pattern}/m # note ed. is usually edition rather than editor
|
|
323
|
+
end
|
|
324
|
+
def authors_title_publication_editor_year_pages ###
|
|
325
|
+
/(?<authors>.+?)\s+"(?<title>.+?)"\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})\s+ed.\s+#{editor_pattern}#{year_pattern}#{pages_pattern}/m
|
|
326
|
+
# note ed. is usually edition rather than editor
|
|
327
|
+
end
|
|
328
|
+
def authors_title_publication_editor_pages_year ###
|
|
329
|
+
/(?<authors>.+?)\s+"(?<title>.+?)"\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})\s+#{editor_pattern}#{pages_pattern}#{year_pattern}/m # note ed. is usually edition rather than editor
|
|
330
|
+
end
|
|
331
|
+
def authors_year_title_publication_pages
|
|
332
|
+
/(?<authors>.+?)\s+#{year_pattern}\s+"(?<title>.+?)"\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})[,.;]?#{pages_pattern}/m
|
|
333
|
+
end
|
|
334
|
+
def authors_title_publication_year_pages
|
|
335
|
+
/(?<authors>.+?)\s+"(?<title>.+?)"\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})\s+#{year_pattern}\s+#{pages_pattern}/m
|
|
336
|
+
end
|
|
337
|
+
def authors_title_publication_pages_year ###
|
|
338
|
+
/(?<authors>.+?)\s+"(?<title>.+?)"\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})#{pages_pattern}#{year_pattern}/m
|
|
339
|
+
end
|
|
340
|
+
def authors_year_publication_pages
|
|
341
|
+
/(?<authors>.+?)\s+#{year_pattern}\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})#{pages_pattern}/m
|
|
342
|
+
end
|
|
343
|
+
def authors_publication_year_pages
|
|
344
|
+
/(?<authors>.+?)\s+(?:#{Mx[:fa_italics_o]}|#{Mx[:srcrgx_italics_o]})(?<publication>.+?)(?:#{Mx[:fa_italics_c]}|#{Mx[:srcrgx_italics_c]})[,.;]?\s+(?<publisher>.+?)?#{year_pattern}#{pages_pattern}[.;]?/m
|
|
345
|
+
end
|
|
346
|
+
self
|
|
347
|
+
end
|
|
348
|
+
def authors?(citations)
|
|
349
|
+
citations.each.map do |b|
|
|
350
|
+
if b =~ /^.+\s+::.+?:$/
|
|
351
|
+
c=/^(?<citation>.+?)\s+::(?<shortref>.+?):$/.match(b)
|
|
352
|
+
{
|
|
353
|
+
citation: c[:citation],
|
|
354
|
+
shortref: c[:shortref],
|
|
355
|
+
c[:shortref].to_s => c[:citation]
|
|
356
|
+
}
|
|
357
|
+
else { citation: b }
|
|
358
|
+
end
|
|
359
|
+
end
|
|
360
|
+
end
|
|
361
|
+
def long_and_short_ref?(citations) #could be useful, keep ... ectract shortref
|
|
362
|
+
citations.each.map do |b|
|
|
363
|
+
if b =~ /^.+\s+::.+?:$/
|
|
364
|
+
c=/^(?<citation>.+?)\s+::(?<shortref>.+?):$/.match(b)
|
|
365
|
+
{
|
|
366
|
+
citation: c[:citation],
|
|
367
|
+
shortref: c[:shortref],
|
|
368
|
+
c[:shortref].to_s => c[:citation]
|
|
369
|
+
}
|
|
370
|
+
else { citation: b }
|
|
371
|
+
end
|
|
372
|
+
end
|
|
373
|
+
end
|
|
374
|
+
def citation_detail(citations) #could be useful, keep ... extract shortref
|
|
375
|
+
bibahash=[]
|
|
376
|
+
number=0
|
|
377
|
+
missed=0
|
|
378
|
+
citations.select do |b|
|
|
379
|
+
z=if b =~citations_regex.authors_year_title_publication_editor_pages
|
|
380
|
+
c=citations_regex.authors_year_title_publication_editor_pages.match(b)
|
|
381
|
+
{
|
|
382
|
+
is: :article,
|
|
383
|
+
author_raw: c[:authors],
|
|
384
|
+
year: c[:year],
|
|
385
|
+
title: c[:title],
|
|
386
|
+
publication: c[:publication],
|
|
387
|
+
editor: c[:editor],
|
|
388
|
+
}
|
|
389
|
+
elsif b =~citations_regex.authors_title_publication_year_editor_pages
|
|
390
|
+
c=citations_regex.authors_title_publication_year_editor_pages.match(b)
|
|
391
|
+
{
|
|
392
|
+
is: :article,
|
|
393
|
+
author_raw: c[:authors],
|
|
394
|
+
year: c[:year],
|
|
395
|
+
title: c[:title],
|
|
396
|
+
publication: c[:publication],
|
|
397
|
+
editor: c[:editor],
|
|
398
|
+
}
|
|
399
|
+
elsif b =~citations_regex.authors_title_publication_editor_year_pages
|
|
400
|
+
c=citations_regex.authors_title_publication_editor_year_pages.match(b)
|
|
401
|
+
{
|
|
402
|
+
is: :article,
|
|
403
|
+
author_raw: c[:authors],
|
|
404
|
+
year: c[:year],
|
|
405
|
+
title: c[:title],
|
|
406
|
+
publication: c[:publication],
|
|
407
|
+
editor: c[:editor],
|
|
408
|
+
}
|
|
409
|
+
elsif b =~citations_regex.authors_title_publication_editor_pages_year
|
|
410
|
+
c=citations_regex.authors_title_publication_editor_pages_year.match(b)
|
|
411
|
+
{
|
|
412
|
+
is: :article,
|
|
413
|
+
author_raw: c[:authors],
|
|
414
|
+
year: c[:year],
|
|
415
|
+
title: c[:title],
|
|
416
|
+
publication: c[:publication],
|
|
417
|
+
editor: c[:editor],
|
|
418
|
+
}
|
|
419
|
+
elsif b =~citations_regex.authors_year_title_publication_pages
|
|
420
|
+
c=citations_regex.authors_year_title_publication_pages.match(b)
|
|
421
|
+
{
|
|
422
|
+
is: :article,
|
|
423
|
+
author_raw: c[:authors],
|
|
424
|
+
year: c[:year],
|
|
425
|
+
title: c[:title],
|
|
426
|
+
publication: c[:publication],
|
|
427
|
+
}
|
|
428
|
+
elsif b =~citations_regex.authors_title_publication_year_pages
|
|
429
|
+
c=citations_regex.authors_title_publication_year_pages.match(b)
|
|
430
|
+
{
|
|
431
|
+
is: :article,
|
|
432
|
+
author_raw: c[:authors],
|
|
433
|
+
year: c[:year],
|
|
434
|
+
title: c[:title],
|
|
435
|
+
publication: c[:publication],
|
|
436
|
+
}
|
|
437
|
+
elsif b =~citations_regex.authors_year_publication_pages
|
|
438
|
+
c=citations_regex.authors_year_publication_pages.match(b)
|
|
439
|
+
{
|
|
440
|
+
is: :book,
|
|
441
|
+
author_raw: c[:authors],
|
|
442
|
+
year: c[:year],
|
|
443
|
+
publication: c[:publication],
|
|
444
|
+
}
|
|
445
|
+
elsif b =~citations_regex.authors_publication_year_pages
|
|
446
|
+
c=citations_regex.authors_publication_year_pages.match(b)
|
|
447
|
+
{
|
|
448
|
+
is: :book,
|
|
449
|
+
author_raw: c[:authors],
|
|
450
|
+
year: c[:year],
|
|
451
|
+
publication: c[:publication],
|
|
452
|
+
}
|
|
453
|
+
else b
|
|
454
|
+
end
|
|
455
|
+
if not z.is_a?(NilClass) \
|
|
456
|
+
and z.is_a?(Hash) \
|
|
457
|
+
and z[:author_raw].length > 0
|
|
458
|
+
z[:author_arr]=z[:author_raw].split(/;\s*/)
|
|
459
|
+
z[:author]=z[:author_arr].map do |author|
|
|
460
|
+
author.gsub(/(.+?),\s+(.+)/,'\2 \1').strip
|
|
461
|
+
end.join(', ').strip
|
|
462
|
+
if @md.opt.act[:verbose_plus][:set]==:on \
|
|
463
|
+
|| @md.opt.act[:maintenance][:set]==:on
|
|
464
|
+
number +=1 if z.is_a?(Hash)
|
|
465
|
+
missed +=1 if z.is_a?(String)
|
|
466
|
+
(z.is_a?(Hash)) \
|
|
467
|
+
? (p '[' + number.to_s + '] ' + z.to_s)
|
|
468
|
+
: (p '<' + missed.to_s + '> ' + z.to_s)
|
|
469
|
+
end
|
|
470
|
+
end
|
|
471
|
+
bibahash << z if z.is_a?(Hash)
|
|
472
|
+
end
|
|
473
|
+
bibahash=sort_bibliography_array_by_author_year(bibahash.compact)
|
|
474
|
+
bibahash
|
|
475
|
+
end
|
|
476
|
+
def citations_scan(data)
|
|
477
|
+
citations=[]
|
|
478
|
+
#short_ref=[]
|
|
479
|
+
tuned_file = data.compact.select do |dob|
|
|
480
|
+
if dob.is !=:meta \
|
|
481
|
+
&& dob.is !=:comment \
|
|
482
|
+
&& dob.is !=:code \
|
|
483
|
+
&& dob.is !=:table
|
|
484
|
+
if dob.obj =~/\.:.+?:\./
|
|
485
|
+
citations << dob.obj.scan(/\.:\s*(.+?)\s*:\./m)
|
|
486
|
+
#short_ref << dob.obj.scan(/\.:\s+(.+?)\s+::([^:]+)::\./m) #look at later
|
|
487
|
+
##short_ref << dob.obj.scan(/\.:\s+(.+?)\s+::(.+?)::\./m) #look at later
|
|
488
|
+
#short_ref << dob.obj.scan(/\.:\s*(.+?)\s*(::(.+?):)?:\./m) #look at later
|
|
489
|
+
citations=citations.flatten.compact
|
|
490
|
+
dob.obj=dob.obj. #remove citations delimiter & helpers from text
|
|
491
|
+
gsub(/\.:|:\./,'')
|
|
492
|
+
end
|
|
493
|
+
end
|
|
494
|
+
dob if dob.is_a?(Object)
|
|
495
|
+
end
|
|
496
|
+
#bib=long_and_short_ref?(citations) #could be useful, keep ... extract shortref
|
|
497
|
+
citations=citation_detail(citations)
|
|
498
|
+
[tuned_file,citations]
|
|
499
|
+
end
|
|
500
|
+
end
|
|
501
|
+
end
|
|
502
|
+
__END__
|