Almirah 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,10 +24,7 @@ class DocParser
24
24
  if s.lstrip != ''
25
25
  if res = /^(\#{1,})\s(.*)/.match(s) # Heading
26
26
 
27
- if temp_md_table
28
- doc.items.append temp_md_table
29
- temp_md_table = nil
30
- end
27
+ temp_md_table = process_temp_table(doc, temp_md_table)
31
28
  if temp_md_list
32
29
  doc.items.append temp_md_list
33
30
  temp_md_list = nil
@@ -58,10 +55,7 @@ class DocParser
58
55
 
59
56
  elsif res = /^\[(\S*)\]\s+(.*)/.match(s) # Controlled Paragraph
60
57
 
61
- if temp_md_table
62
- doc.items.append temp_md_table
63
- temp_md_table = nil
64
- end
58
+ temp_md_table = process_temp_table(doc, temp_md_table)
65
59
  if temp_md_list
66
60
  doc.items.append temp_md_list
67
61
  temp_md_list = nil
@@ -137,10 +131,7 @@ class DocParser
137
131
 
138
132
  elsif res = /^!\[(.*)\]\((.*)\)/.match(s) # Image
139
133
 
140
- if temp_md_table
141
- doc.items.append temp_md_table
142
- temp_md_table = nil
143
- end
134
+ temp_md_table = process_temp_table(doc, temp_md_table)
144
135
  if temp_md_list
145
136
  doc.items.append temp_md_list
146
137
  temp_md_list = nil
@@ -157,10 +148,7 @@ class DocParser
157
148
 
158
149
  elsif res = /^(\*\s+)(.*)/.match(s) # check if unordered list start
159
150
 
160
- if temp_md_table
161
- doc.items.append temp_md_table
162
- temp_md_table = nil
163
- end
151
+ temp_md_table = process_temp_table(doc, temp_md_table)
164
152
 
165
153
  row = res[2]
166
154
 
@@ -174,10 +162,7 @@ class DocParser
174
162
 
175
163
  elsif res = /^\d[.]\s(.*)/.match(s) # check if ordered list start
176
164
 
177
- if temp_md_table
178
- doc.items.append temp_md_table
179
- temp_md_table = nil
180
- end
165
+ temp_md_table = process_temp_table(doc, temp_md_table)
181
166
 
182
167
  row = res[1]
183
168
 
@@ -199,39 +184,50 @@ class DocParser
199
184
  if res = /^[|](-{3,})[|]/.match(s) # check if it is a separator first
200
185
 
201
186
  if temp_md_table
202
- # separator is found after heading - just skip it
187
+ # separator is found after heading
188
+ temp_md_table.is_separator_detected = true
203
189
  else
204
190
  # separator out of table scope consider it just as a regular paragraph
205
- item = Paragraph.new(s)
206
- item.parent_doc = doc
207
- item.parent_heading = doc.headings[-1]
191
+ item = Paragraph.new(doc, s)
208
192
  doc.items.append(item)
209
193
  end
210
194
 
211
- elsif res = /^[|](.*[|])/.match(s) # check if it looks as a table
195
+ elsif res = /^[|](.*[|])/.match(s) # check if it looks as a table row
212
196
 
213
197
  row = res[1]
214
198
 
215
199
  if temp_md_table
216
- # check if it is a controlled table
217
- unless temp_md_table.addRow(row)
218
- temp_md_table = ControlledTable.new(temp_md_table, doc)
219
- temp_md_table.parent_doc = doc
200
+ if temp_md_table.is_separator_detected # if there is a separator
201
+ # check if parent doc is a Protocol
202
+ if doc.instance_of? Protocol
203
+ # check if it is a controlled table
204
+ tmp = /(.*)\s+>\[(\S*)\]/.match(row)
205
+ if tmp && (temp_md_table.instance_of? MarkdownTable)
206
+ # this is not a regular Markdown table
207
+ # so the table type shall be changed and this row shall be passed one more time
208
+ temp_md_table = ControlledTable.new(doc, temp_md_table)
209
+ end
210
+ end
220
211
  temp_md_table.addRow(row)
212
+ else
213
+ # replece table heading with regular paragraph
214
+ item = Paragraph.new(doc, temp_md_table.heading_row)
215
+ doc.items.append(item)
216
+ # and current row
217
+ item = Paragraph.new(doc, s)
218
+ doc.items.append(item)
219
+ temp_md_table = nil
221
220
  end
222
221
  else
223
222
  # start table from heading
224
- temp_md_table = MarkdownTable.new(row)
225
- temp_md_table.parent_doc = doc
223
+ temp_md_table = MarkdownTable.new(doc, s)
226
224
  end
227
225
  end
228
226
 
229
227
  elsif res = /^>(.*)/.match(s) # check if blockquote
230
228
 
231
- if temp_md_table
232
- doc.items.append temp_md_table
233
- temp_md_table = nil
234
- end
229
+ temp_md_table = process_temp_table(doc, temp_md_table)
230
+
235
231
  if temp_md_list
236
232
  doc.items.append temp_md_list
237
233
  temp_md_list = nil
@@ -244,10 +240,7 @@ class DocParser
244
240
 
245
241
  elsif res = /^```(\w*)/.match(s) # check if code block
246
242
 
247
- if temp_md_table
248
- doc.items.append temp_md_table
249
- temp_md_table = nil
250
- end
243
+ temp_md_table = process_temp_table(doc, temp_md_table)
251
244
  if temp_md_list
252
245
  doc.items.append temp_md_list
253
246
  temp_md_list = nil
@@ -268,10 +261,7 @@ class DocParser
268
261
 
269
262
  elsif res = /^TODO:(.*)/.match(s) # check if TODO block
270
263
 
271
- if temp_md_table
272
- doc.items.append temp_md_table
273
- temp_md_table = nil
274
- end
264
+ temp_md_table = process_temp_table(doc, temp_md_table)
275
265
  if temp_md_list
276
266
  doc.items.append temp_md_list
277
267
  temp_md_list = nil
@@ -286,10 +276,7 @@ class DocParser
286
276
  doc.todo_blocks.append(item)
287
277
 
288
278
  else # Reqular Paragraph
289
- if temp_md_table
290
- doc.items.append temp_md_table
291
- temp_md_table = nil
292
- end
279
+ temp_md_table = process_temp_table(doc, temp_md_table)
293
280
  if temp_md_list
294
281
  if MarkdownList.unordered_list_item?(s) || MarkdownList.ordered_list_item?(s)
295
282
  temp_md_list.addRow(s)
@@ -302,9 +289,7 @@ class DocParser
302
289
  if temp_code_block
303
290
  temp_code_block.code_lines.append(s)
304
291
  else
305
- item = Paragraph.new(s)
306
- item.parent_doc = doc
307
- item.parent_heading = doc.headings[-1]
292
+ item = Paragraph.new(doc, s)
308
293
  doc.items.append(item)
309
294
  end
310
295
  end
@@ -314,10 +299,7 @@ class DocParser
314
299
  end
315
300
  end
316
301
  # Finalize non-closed elements
317
- if temp_md_table
318
- doc.items.append temp_md_table
319
- temp_md_table = nil
320
- end
302
+ temp_md_table = process_temp_table(doc, temp_md_table)
321
303
  if temp_md_list
322
304
  doc.items.append temp_md_list
323
305
  temp_md_list = nil
@@ -331,4 +313,18 @@ class DocParser
331
313
  item.parent_doc = doc
332
314
  doc.items.append(item)
333
315
  end
316
+
317
+ def self.process_temp_table(doc, temp_md_table) # rubocop:disable Metrics/MethodLength
318
+ if temp_md_table
319
+ if temp_md_table.is_separator_detected
320
+ doc.items.append temp_md_table
321
+ else # no separator
322
+ # replece table heading with regular paragraph
323
+ item = Paragraph.new(doc, temp_md_table.heading_row)
324
+ doc.items.append(item)
325
+ end
326
+ temp_md_table = nil
327
+ end
328
+ temp_md_table
329
+ end
334
330
  end
@@ -26,15 +26,15 @@ class Index < BaseDocument
26
26
  s = "<h2>Specifications</h2>\n"
27
27
  s += "<table class=\"controlled\">\n"
28
28
  s += "\t<thead>\n"
29
- s += "\t\t<th>Title</th>\n"
30
- s += "\t\t<th>Items</th>\n"
31
- s += "\t\t<th>Items<br>w/ Uplinks</th>\n"
32
- s += "\t\t<th>Items<br>w/ Downlinks</th>\n"
33
- s += "\t\t<th>Covered<br>by Tests</th>\n"
34
- s += "\t\t<th>Duplicated<br>ids</th>\n"
35
- s += "\t\t<th>Wrong<br>links</th>\n"
36
- s += "\t\t<th>TODOs</th>\n"
37
- s += "\t\t<th>Last Used<br>id</th>\n"
29
+ s += "\t\t<th title=\"Document title\">Title</th>\n"
30
+ s += "\t\t<th title=\"Number of Controlled Paragraphs\">Items</th>\n"
31
+ s += "\t\t<th title=\"Number of Controlled Paragraphs with up-links\">Items<br>w/ Up-links</th>\n"
32
+ s += "\t\t<th title=\"Number of references from other documents\">Items<br>w/ Down-links</th>\n"
33
+ s += "\t\t<th title=\"Number of Controlled Paragraphs mentioned in Test Cases\">Covered <br>by Tests</th>\n"
34
+ s += "\t\t<th title=\"Number of Controlled Paragraphs that have the same ID\">Duplicated<br>IDs</th>\n"
35
+ s += "\t\t<th title=\"Number of Controlled Paragraphs that link to non-existing items\">Wrong<br>links</th>\n"
36
+ s += "\t\t<th title=\"Number of 'TODO:' blocks in document\">TODOs</th>\n"
37
+ s += "\t\t<th title=\"The last Controlled Paragraph sequence number (ID) used in the document\">Last Used<br>ID</th>\n"
38
38
  s += "</thead>\n"
39
39
  html_rows.append s
40
40
 
@@ -51,11 +51,11 @@ class Index < BaseDocument
51
51
  if doc.duplicated_ids_number >0
52
52
  s += "\t\t<td class=\"item_id\" style='width: 7%; background-color: #fcc;'>"
53
53
  s += "<div id=\"DL_#{doc.id}\" style=\"display: block;\">"
54
- s += "<a href=\"#\" onclick=\"downlink_OnClick(this.parentElement); return false;\" class=\"external\">#{doc.duplicated_ids_number.to_s}</a>"
54
+ s += "<a href=\"#\" onclick=\"downlink_OnClick(this.parentElement); return false;\" class=\"external\" title=\"Number of Controlled Paragraphs that have the same ID\">#{doc.duplicated_ids_number.to_s}</a>"
55
55
  s += "</div>"
56
56
  s += "<div id=\"DLS_#{doc.id}\" style=\"display: none;\">"
57
57
  doc.duplicates_list.each do |lnk|
58
- s += "\t\t\t<a href=\"./specifications/#{doc.id}/#{doc.id}.html##{lnk.id}\" class=\"external\">#{lnk.id}</a>\n<br>"
58
+ s += "\t\t\t<a href=\"./specifications/#{doc.id}/#{doc.id}.html##{lnk.id}\" class=\"external\" title=\"Controlled Paragraph with duplicated ID\">#{lnk.id}</a>\n<br>"
59
59
  end
60
60
  s += "</div>"
61
61
  s += "</td>\n"
@@ -66,11 +66,11 @@ class Index < BaseDocument
66
66
  if doc.wrong_links_hash.length >0
67
67
  s += "\t\t<td class=\"item_id\" style='width: 7%; background-color: #fcc;'>"
68
68
  s += "<div id=\"DL_#{doc.id}wl\" style=\"display: block;\">"
69
- s += "<a href=\"#\" onclick=\"downlink_OnClick(this.parentElement); return false;\" class=\"external\">#{doc.wrong_links_hash.length.to_s}</a>"
69
+ s += "<a href=\"#\" onclick=\"downlink_OnClick(this.parentElement); return false;\" class=\"external\" title=\"Number of Controlled Paragraphs that link to non-existing items\">#{doc.wrong_links_hash.length.to_s}</a>"
70
70
  s += "</div>"
71
71
  s += "<div id=\"DLS_#{doc.id}wl\" style=\"display: none;\">"
72
72
  doc.wrong_links_hash.each do |wrong_lnk, item|
73
- s += "\t\t\t<a href=\"./specifications/#{doc.id}/#{doc.id}.html##{item.id}\" class=\"external\">#{wrong_lnk}</a>\n<br>"
73
+ s += "\t\t\t<a href=\"./specifications/#{doc.id}/#{doc.id}.html##{item.id}\" class=\"external\" title=\"Controlled Paragraphs that link to non-existing items\">#{wrong_lnk}</a>\n<br>"
74
74
  end
75
75
  s += "</div>"
76
76
  s += "</td>\n"
@@ -94,10 +94,10 @@ class Index < BaseDocument
94
94
  s = "<h2>Traceability Matrices</h2>\n"
95
95
  s += "<table class=\"controlled\">\n"
96
96
  s += "\t<thead>\n"
97
- s += "\t\t<th>Title</th>\n"
98
- s += "\t\t<th>Coverage</th>\n"
99
- s += "\t\t<th>Top Document</th>\n"
100
- s += "\t\t<th>Bottom Document</th>\n"
97
+ s += "\t\t<th title=\"Traceability Matrix Title\">Title</th>\n"
98
+ s += "\t\t<th title=\"The ratio of Controlled Paragraphs mentioned in other documents and not-mentioned ones\">Coverage</th>\n"
99
+ s += "\t\t<th title=\"Document, that contains Cotroled Paragraphs to be referenced in Bottom document(s)\">Top Document</th>\n"
100
+ s += "\t\t<th title=\"Document(s), that contains references to Controlled Paragraphs from the Top Document\">Bottom Document</th>\n"
101
101
  s += "</thead>\n"
102
102
  html_rows.append s
103
103
 
@@ -1,104 +1,67 @@
1
- require_relative "persistent_document"
1
+ # frozen_string_literal: true
2
2
 
3
- class Specification < PersistentDocument
4
-
5
- attr_accessor :dictionary
6
- attr_accessor :todo_blocks
7
- attr_accessor :wrong_links_hash
8
-
9
- attr_accessor :items_with_uplinks_number
10
- attr_accessor :items_with_downlinks_number
11
- attr_accessor :items_with_coverage_number
12
- attr_accessor :duplicated_ids_number
13
- attr_accessor :duplicates_list
14
- attr_accessor :last_used_id
15
- attr_accessor :last_used_id_number
16
- attr_accessor :color
17
-
18
- def initialize(fele_path)
19
- super
20
- @dictionary = Hash.new
21
- @duplicates_list = Array.new
22
- @todo_blocks = Array.new
23
- @wrong_links_hash = Hash.new
24
-
25
- @items_with_uplinks_number = 0
26
- @items_with_downlinks_number = 0
27
- @items_with_coverage_number = 0
28
- @duplicated_ids_number = 0
29
- @last_used_id = ""
30
- @last_used_id_number = 0
31
-
32
- @color = 'bbb'
3
+ require_relative 'persistent_document'
33
4
 
34
- @id = File.basename(fele_path, File.extname(fele_path)).downcase
5
+ class Specification < PersistentDocument
6
+ attr_accessor :dictionary, :todo_blocks, :wrong_links_hash, :items_with_uplinks_number, :items_with_downlinks_number,
7
+ :items_with_coverage_number, :duplicated_ids_number, :duplicates_list, :last_used_id,
8
+ :last_used_id_number, :color
9
+
10
+ def initialize(fele_path)
11
+ super
12
+ @dictionary = {}
13
+ @duplicates_list = []
14
+ @todo_blocks = []
15
+ @wrong_links_hash = {}
16
+
17
+ @items_with_uplinks_number = 0
18
+ @items_with_downlinks_number = 0
19
+ @items_with_coverage_number = 0
20
+ @duplicated_ids_number = 0
21
+ @last_used_id = ''
22
+ @last_used_id_number = 0
23
+
24
+ @color = 'bbb'
25
+
26
+ @id = File.basename(fele_path, File.extname(fele_path)).downcase
27
+ end
28
+
29
+ def to_console
30
+ puts ''
31
+ puts "\e[33mSpecification: #{@title}\e[0m"
32
+ puts '-' * 53
33
+ puts '| Number of Controlled Items | %10d |' % @controlled_items.length
34
+ puts format('| Number of Items w/ Up-links | %10d |', @items_with_uplinks_number)
35
+ puts format('| Number of Items w/ Down-links | %10d |', @items_with_downlinks_number)
36
+
37
+ # coverage
38
+ if @controlled_items.length.positive? && (@controlled_items.length == @items_with_coverage_number)
39
+ puts format("| Number of Items w/ Test Coverage |\e[1m\e[32m %10d \e[0m|", @items_with_coverage_number)
40
+ else
41
+ puts format('| Number of Items w/ Test Coverage | %10d |', @items_with_coverage_number)
35
42
  end
36
43
 
37
- def to_console
38
- puts ""
39
- puts "\e[33m" + "Specification: " + @title + "\e[0m"
40
- puts "-" * 53
41
- puts "| Number of Controlled Items | %10d |" % @controlled_items.length
42
- puts "| Number of Items w/ Up-links | %10d |" % @items_with_uplinks_number
43
- puts "| Number of Items w/ Down-links | %10d |" % @items_with_downlinks_number
44
-
45
- # coverage
46
- if (@controlled_items.length > 0) && (@controlled_items.length == @items_with_coverage_number)
47
- puts "| Number of Items w/ Test Coverage |\e[1m\e[32m %10d \e[0m|" % @items_with_coverage_number
48
- else
49
- puts "| Number of Items w/ Test Coverage | %10d |" % @items_with_coverage_number
50
- end
51
-
52
- # duplicates
53
- if @duplicated_ids_number >0
54
- puts "| Duplicated Item Ids found |\e[1m\e[31m %10d \e[0m|" % @duplicated_ids_number
55
- else
56
- puts "| Duplicated Item Ids found | %10d |" % @duplicated_ids_number
57
- end
58
-
59
- puts "| Last used Item Id |\e[1m\e[37m %10s \e[0m|" % @last_used_id
60
- puts "-" * 53
44
+ # duplicates
45
+ if @duplicated_ids_number.positive?
46
+ puts format("| Duplicated Item Ids found |\e[1m\e[31m %10d \e[0m|", @duplicated_ids_number)
47
+ else
48
+ puts format('| Duplicated Item Ids found | %10d |', @duplicated_ids_number)
61
49
  end
62
50
 
63
- def to_html(nav_pane, output_file_path)
51
+ puts format("| Last used Item Id |\e[1m\e[37m %10s \e[0m|", @last_used_id)
52
+ puts '-' * 53
53
+ end
64
54
 
65
- html_rows = Array.new
55
+ def to_html(nav_pane, output_file_path)
56
+ html_rows = []
66
57
 
67
- html_rows.append('')
68
-
69
- @items.each do |item|
70
- a = item.to_html
71
- #a = adjust_internal_links(a, nav_pane.specifications)
72
- html_rows.append a
73
- end
74
-
75
- self.save_html_to_file(html_rows, nav_pane, output_file_path)
76
-
77
- end
58
+ html_rows.append('')
78
59
 
79
- def adjust_internal_links(line, specifications)
80
- # check if there are internal links to md files and replace them
81
- if tmp = /<a\shref="(.*)"\sclass="external">.*<\/a>/.match(line)
82
- if res = /(\w*)[.]md/.match(tmp[1])
83
- id = res[1].downcase
84
- res = /(\w*)[.]md(#.*)/.match(tmp[1])
85
-
86
- specifications.each do |spec|
87
- if spec.id.downcase == id
88
- if res && res.length > 2
89
- anchor = res[2]
90
- line.sub!(/<a\shref="(.*)"\sclass="external">/,
91
- "<a href=\".\\..\\#{id}\\#{id}.html#{anchor}\" class=\"external\">")
92
- else
93
- line.sub!(/<a\shref="(.*)"\sclass="external">/,
94
- "<a href=\".\\..\\#{id}\\#{id}.html\" class=\"external\">")
95
- end
96
- break
97
- end
98
- end
99
- end
100
- end
101
- return line
60
+ @items.each do |item|
61
+ a = item.to_html
62
+ html_rows.append a
102
63
  end
103
64
 
104
- end
65
+ save_html_to_file(html_rows, nav_pane, output_file_path)
66
+ end
67
+ end
@@ -12,7 +12,7 @@ class DocSection
12
12
 
13
13
  def to_html
14
14
  s = ''
15
- s += "\t<li><span class=\"fa-li\"><i class=\"fa fa-sticky-note-o\"> </i></span>"
15
+ s += "\t<li><span class=\"fa-li\"><i class=\"fa fa-square-o\"> </i></span>"
16
16
  s += "<a href=\"\#" + @heading.anchor_id.to_s + "\">" + @heading.get_section_info + "</a>\n"
17
17
  if @sections.length >0
18
18
  s += "\t\t<ul class=\"fa-ul\">\n"
@@ -23,7 +23,9 @@ class SpecificationsDb
23
23
  }
24
24
  @data.append e
25
25
  elsif i.instance_of? MarkdownList
26
- e = add_markdown_list_item_to_db( @data, i, i)
26
+ e = add_markdown_list_item_to_db( @data, i, i)
27
+ elsif i.instance_of? MarkdownTable
28
+ add_markdown_table_item_to_db( @data, i, i)
27
29
  end
28
30
  end
29
31
  end
@@ -56,6 +58,21 @@ class SpecificationsDb
56
58
  return e
57
59
  end
58
60
 
61
+ def add_markdown_table_item_to_db(data, item_for_reference, item_to_process)
62
+ e = nil
63
+ table_text = ""
64
+ item_to_process.rows.each do |row|
65
+ table_text += "| " + row.join(" | ") + " |"
66
+ end
67
+ e = { "document" => item_for_reference.parent_doc.title, \
68
+ "doc_color" => item_for_reference.parent_doc.color, \
69
+ "text" => table_text, \
70
+ "heading_url" => item_for_reference.parent_heading.get_url(), \
71
+ "heading_text" => item_for_reference.parent_heading.get_section_info()
72
+ }
73
+ data << e
74
+ end
75
+
59
76
  def save(path)
60
77
  json = JSON.generate(@data)
61
78
 
@@ -223,13 +223,16 @@ img{
223
223
  font-family: "Trebuchet MS", Verdana, sans-serif;
224
224
  }
225
225
  #top_nav a:hover {
226
- background-color: black;
227
- color: white;
226
+ background-color: #169;
227
+ color: #eee;
228
228
  }
229
229
  #top_nav a.active {
230
230
  background-color: #169;
231
231
  color: white;
232
232
  }
233
+ #top_nav a:focus {
234
+ text-decoration: underline;
235
+ }
233
236
  #searchInput{
234
237
  float: left;
235
238
  margin: 4px 6px;
@@ -9,7 +9,9 @@
9
9
  </head>
10
10
  <body>
11
11
  <div id="top_nav">
12
- <a href="javascript:void(0)" onclick="navigate_to_home()"><span><i class="fa fa-home" aria-hidden="true"></i></span>&nbsp;Home</a>
12
+ <a id="home_menu_item" href="javascript:void(0)" onclick="navigate_to_home()"><span><i class="fa fa-home" aria-hidden="true"></i></span>&nbsp;Home</a>
13
+ <a id="index_menu_item" href="javascript:void(0)" onclick="navigate_to_home()" style="display: none;"><span><i class="fa fa-chevron-left" aria-hidden="true"></i></span>&nbsp;Index</a>
14
+ <a id="document_tree_menu_item" href="javascript:void(0)" onclick="openNav()" style="display: none;"><span><i class="fa fa-bars" aria-hidden="true"></i></span>&nbsp;Document Tree</a>
13
15
  <input type="text" id="searchInput" placeholder="Search.." style="display: none;">
14
16
  <a class="split">{{DOCUMENT_TITLE}}</a>
15
17
  </div>
@@ -1,5 +1,9 @@
1
1
  function openNav() {
2
- document.getElementById("nav_pane").style.visibility = "visible";
2
+ if (document.getElementById("nav_pane").style.visibility == "visible"){
3
+ document.getElementById("nav_pane").style.visibility = "hidden";
4
+ }else{
5
+ document.getElementById("nav_pane").style.visibility = "visible";
6
+ }
3
7
  }
4
8
 
5
9
  function closeNav() {
@@ -15,8 +19,21 @@ function openNav() {
15
19
  elem.style.width = "640px";
16
20
  }
17
21
  }
18
- if ((document.title == "Document Index") && (document.URL.includes('http'))){
19
- document.getElementById("searchInput").style.display = "block";
22
+ if (document.title == "Document Index"){
23
+ document.getElementById('document_tree_menu_item').style.display = "none";
24
+ document.getElementById('home_menu_item').style.display = "block";
25
+ document.getElementById('index_menu_item').style.display = "none";
26
+ if (document.URL.includes('http')){
27
+ document.getElementById("searchInput").style.display = "block";
28
+ }
29
+ }else{
30
+ document.getElementById('home_menu_item').style.display = "none";
31
+ document.getElementById('index_menu_item').style.display = "block";
32
+ if (document.title.includes("Traceability Matrix:")){
33
+ document.getElementById('document_tree_menu_item').style.display = "none";
34
+ } else {
35
+ document.getElementById('document_tree_menu_item').style.display = "block";
36
+ }
20
37
  }
21
38
  // Scroll a bit to make navigated anchor visible
22
39
  //setTimeout(function() {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Almirah
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleksandr Ivanov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-20 00:00:00.000000000 Z
11
+ date: 2024-06-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: The software part of the Almirah framework
14
14
  email: oleksandr.ivanov.development@gmail.com