relaton 3.0.7 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/bin/relaton +20 -0
  3. data/lib/relaton/bib/model/docidentifier.rb +17 -2
  4. data/lib/relaton/bibcollection.rb +146 -0
  5. data/lib/relaton/bibdata.rb +92 -0
  6. data/lib/relaton/bipm/data_outcomes_parser.rb +6 -1
  7. data/lib/relaton/cli/base_convertor.rb +134 -0
  8. data/lib/relaton/cli/command.rb +390 -0
  9. data/lib/relaton/cli/data_fetcher.rb +20 -0
  10. data/lib/relaton/cli/frontend/dist/404.html +18 -0
  11. data/lib/relaton/cli/frontend/dist/app.iife.js +1 -0
  12. data/lib/relaton/cli/frontend/dist/style.css +3 -0
  13. data/lib/relaton/cli/frontend/index.html +14 -0
  14. data/lib/relaton/cli/frontend/package-lock.json +2945 -0
  15. data/lib/relaton/cli/frontend/package.json +29 -0
  16. data/lib/relaton/cli/frontend/public/404.html +18 -0
  17. data/lib/relaton/cli/frontend/src/App.test.ts +501 -0
  18. data/lib/relaton/cli/frontend/src/App.vue +506 -0
  19. data/lib/relaton/cli/frontend/src/app.ts +90 -0
  20. data/lib/relaton/cli/frontend/src/components/DocumentDetail.test.ts +142 -0
  21. data/lib/relaton/cli/frontend/src/components/DocumentDetail.vue +228 -0
  22. data/lib/relaton/cli/frontend/src/components/DocumentRow.vue +88 -0
  23. data/lib/relaton/cli/frontend/src/components/Icon.test.ts +44 -0
  24. data/lib/relaton/cli/frontend/src/components/Icon.vue +55 -0
  25. data/lib/relaton/cli/frontend/src/components/Pagination.vue +26 -0
  26. data/lib/relaton/cli/frontend/src/dev/main.ts +100 -0
  27. data/lib/relaton/cli/frontend/src/dev/sample-data.json +71 -0
  28. data/lib/relaton/cli/frontend/src/lib/filter.test.ts +88 -0
  29. data/lib/relaton/cli/frontend/src/lib/filter.ts +95 -0
  30. data/lib/relaton/cli/frontend/src/lib/hydrate.test.ts +102 -0
  31. data/lib/relaton/cli/frontend/src/lib/hydrate.ts +55 -0
  32. data/lib/relaton/cli/frontend/src/lib/shards.test.ts +319 -0
  33. data/lib/relaton/cli/frontend/src/lib/shards.ts +183 -0
  34. data/lib/relaton/cli/frontend/src/lib/types.ts +148 -0
  35. data/lib/relaton/cli/frontend/src/lib/url.test.ts +151 -0
  36. data/lib/relaton/cli/frontend/src/lib/url.ts +111 -0
  37. data/lib/relaton/cli/frontend/src/shims-vue.d.ts +5 -0
  38. data/lib/relaton/cli/frontend/src/styles/index.css +27 -0
  39. data/lib/relaton/cli/frontend/src/test/fetch.ts +58 -0
  40. data/lib/relaton/cli/frontend/tsconfig.json +20 -0
  41. data/lib/relaton/cli/frontend/vite.config.ts +42 -0
  42. data/lib/relaton/cli/frontend/vitest.config.ts +11 -0
  43. data/lib/relaton/cli/frontend_assets.rb +58 -0
  44. data/lib/relaton/cli/full_text_search.rb +98 -0
  45. data/lib/relaton/cli/i18n.yaml +1 -0
  46. data/lib/relaton/cli/index_item_normalizer.rb +380 -0
  47. data/lib/relaton/cli/index_site_generator.rb +1015 -0
  48. data/lib/relaton/cli/relaton_file.rb +290 -0
  49. data/lib/relaton/cli/subcommand_collection.rb +263 -0
  50. data/lib/relaton/cli/subcommand_db.rb +81 -0
  51. data/lib/relaton/cli/templates/_document.liquid +111 -0
  52. data/lib/relaton/cli/templates/_index.liquid +61 -0
  53. data/lib/relaton/cli/templates/index/page.liquid +20 -0
  54. data/lib/relaton/cli/templates/index-style.css +1017 -0
  55. data/lib/relaton/cli/util.rb +8 -0
  56. data/lib/relaton/cli/version.rb +11 -0
  57. data/lib/relaton/cli/xml_convertor.rb +47 -0
  58. data/lib/relaton/cli/xml_to_html_renderer.rb +117 -0
  59. data/lib/relaton/cli/yaml_convertor.rb +102 -0
  60. data/lib/relaton/cli.rb +113 -0
  61. data/lib/relaton/doi/CLAUDE.md +1 -1
  62. data/lib/relaton/element_finder.rb +29 -0
  63. data/lib/relaton/gb/CLAUDE.md +1 -1
  64. data/lib/relaton/ietf/CLAUDE.md +1 -1
  65. data/lib/relaton/iho/CLAUDE.md +3 -3
  66. data/lib/relaton/iho/bibliography.rb +41 -27
  67. data/lib/relaton/iho/processor.rb +3 -2
  68. data/lib/relaton/nist/CLAUDE.md +11 -1
  69. data/lib/relaton/nist/README.adoc +7 -1
  70. data/lib/relaton/nist/hit_collection.rb +25 -1
  71. data/lib/relaton/nist/mods_parser.rb +32 -8
  72. data/lib/relaton/nist/pubs_export.rb +69 -11
  73. data/lib/relaton/ogc/CLAUDE.md +1 -1
  74. data/lib/relaton/omg/CLAUDE.md +1 -1
  75. data/lib/relaton/plateau/CLAUDE.md +1 -1
  76. data/lib/relaton/render/general.rb +319 -0
  77. data/lib/relaton/render/iso690/csl_import.rb +129 -0
  78. data/lib/relaton/render/iso690/element.rb +153 -0
  79. data/lib/relaton/render/iso690/elements/access.rb +44 -0
  80. data/lib/relaton/render/iso690/elements/authorizer.rb +45 -0
  81. data/lib/relaton/render/iso690/elements/citeid.rb +39 -0
  82. data/lib/relaton/render/iso690/elements/component_part.rb +97 -0
  83. data/lib/relaton/render/iso690/elements/creator.rb +267 -0
  84. data/lib/relaton/render/iso690/elements/edition.rb +97 -0
  85. data/lib/relaton/render/iso690/elements/extent.rb +71 -0
  86. data/lib/relaton/render/iso690/elements/identifier.rb +46 -0
  87. data/lib/relaton/render/iso690/elements/location.rb +73 -0
  88. data/lib/relaton/render/iso690/elements/medium.rb +32 -0
  89. data/lib/relaton/render/iso690/elements/numeration.rb +26 -0
  90. data/lib/relaton/render/iso690/elements/production.rb +111 -0
  91. data/lib/relaton/render/iso690/elements/pub_date.rb +63 -0
  92. data/lib/relaton/render/iso690/elements/series.rb +66 -0
  93. data/lib/relaton/render/iso690/elements/size.rb +45 -0
  94. data/lib/relaton/render/iso690/elements/status.rb +30 -0
  95. data/lib/relaton/render/iso690/elements/stddoc.rb +40 -0
  96. data/lib/relaton/render/iso690/elements/title.rb +56 -0
  97. data/lib/relaton/render/iso690/elements/updated.rb +38 -0
  98. data/lib/relaton/render/iso690/elements.rb +67 -0
  99. data/lib/relaton/render/iso690/fields.rb +142 -0
  100. data/lib/relaton/render/iso690/i18n/en.yml +48 -0
  101. data/lib/relaton/render/iso690/i18n/fr.yml +14 -0
  102. data/lib/relaton/render/iso690/i18n/ja.yml +38 -0
  103. data/lib/relaton/render/iso690/i18n.rb +83 -0
  104. data/lib/relaton/render/iso690/identifier_kinds.rb +29 -0
  105. data/lib/relaton/render/iso690/index_renderer.rb +57 -0
  106. data/lib/relaton/render/iso690/kinds.rb +53 -0
  107. data/lib/relaton/render/iso690/renderer.rb +150 -0
  108. data/lib/relaton/render/iso690/rules/bipm.rb +186 -0
  109. data/lib/relaton/render/iso690/rules/jis.rb +103 -0
  110. data/lib/relaton/render/iso690/rules/nist.rb +384 -0
  111. data/lib/relaton/render/iso690/rules.rb +227 -0
  112. data/lib/relaton/render/iso690/style/locale.rb +59 -0
  113. data/lib/relaton/render/iso690/style/name_form.rb +87 -0
  114. data/lib/relaton/render/iso690/style/scheme.rb +33 -0
  115. data/lib/relaton/render/iso690/style/sort_rule.rb +25 -0
  116. data/lib/relaton/render/iso690/style/template_map.rb +40 -0
  117. data/lib/relaton/render/iso690/style/type_template.rb +45 -0
  118. data/lib/relaton/render/iso690/style.rb +227 -0
  119. data/lib/relaton/render/iso690/styles/apa.yml +45 -0
  120. data/lib/relaton/render/iso690/styles/author-date.yml +31 -0
  121. data/lib/relaton/render/iso690/styles/chicago.yml +49 -0
  122. data/lib/relaton/render/iso690/styles/ieee-sa.yml +45 -0
  123. data/lib/relaton/render/iso690/styles/jis-en.yml +68 -0
  124. data/lib/relaton/render/iso690/styles/jis-ja.yml +67 -0
  125. data/lib/relaton/render/iso690/styles/lncs.yml +54 -0
  126. data/lib/relaton/render/iso690/styles/mla.yml +56 -0
  127. data/lib/relaton/render/iso690/template.rb +248 -0
  128. data/lib/relaton/render/iso690.rb +28 -0
  129. data/lib/relaton/render/version.rb +5 -0
  130. data/lib/relaton/un/CLAUDE.md +1 -1
  131. data/lib/relaton/version.rb +1 -1
  132. data/lib/relaton-cli.rb +17 -0
  133. data/lib/relaton-render.rb +13 -0
  134. metadata +192 -21
@@ -0,0 +1,111 @@
1
+ {%- if document.items.size > 0 -%}
2
+ <div class="doc-section">
3
+ {%- else -%}
4
+ <div class="document">
5
+ {%- endif -%}
6
+
7
+ {%- if document.html != blank and document.html != nil -%}
8
+ {%- assign default_link = document.html -%}
9
+ {%- elsif document.pdf != blank and document.pdf != nil -%}
10
+ {%- assign default_link = document.pdf -%}
11
+ {%- elsif document.doc != blank and document.doc != nil -%}
12
+ {%- assign default_link = document.doc -%}
13
+ {%- elsif document.xml != blank and document.xml != nil -%}
14
+ {%- assign default_link = document.xml -%}
15
+ {%- else -%}
16
+ {%- assign default_link = nil -%}
17
+ {%- endif -%}
18
+
19
+ <div class="doc-line">
20
+ <div class="doc-identifier">
21
+ <h{{ depth }}>
22
+ {% if default_link %}
23
+ <a href="{{ default_link }}">{{ document.docidentifier.content }}</a>
24
+ {% else %}
25
+ {{ document.docidentifier.content }}
26
+ {% endif %}
27
+ </h{{ depth }}>
28
+ </div>
29
+
30
+ <div class="doc-type-wrap">
31
+ <div class="doc-type {{ document.ext.doctype.content | downcase | split: " " | join: "-" }}">
32
+ {{ document.ext.doctype.content }}
33
+ </div>
34
+ </div>
35
+
36
+ {% if document.edition.content %}
37
+ <div class="doc-identifier">
38
+ Edition: {{ document.edition.content }}
39
+ </div>
40
+ {% endif %}
41
+ </div>
42
+
43
+ <div class="doc-title">
44
+ <h{{ depth | plus: 1 }}>
45
+ {% if default_link %}
46
+ <a href="{{ default_link }}">{{ document.title }}</a>
47
+ {% else %}
48
+ {{ document.title }}
49
+ {% endif %}
50
+ </h{{ depth | plus: 1 }}>
51
+ </div>
52
+
53
+ {% if document.status %}
54
+ <div class="doc-info {{ document.status.stage.content | downcase }}">
55
+ <div class="doc-stage {{ document.status.stage.content | downcase }}">
56
+ {% if document.status.substage %}
57
+ {{ document.status.stage.content }}.{{ document.status.substage.content }}
58
+ {% else %}
59
+ {{ document.status.stage.content }}
60
+ {% endif %}
61
+ </div>
62
+ <div class="doc-dates">
63
+ {% unless document.status.stage.content == "published" %}
64
+ <div class="doc-updated">
65
+ {% else %}
66
+ <div class="doc-published">
67
+ {% endunless %}
68
+ {{ document.revdate }}
69
+ </div>
70
+ </div>
71
+ </div>
72
+ {% endif %}
73
+
74
+ <div class="doc-bib">
75
+ <div class="doc-bib-relaton">
76
+ <a href="{{ document.rxl }}">Relaton XML</a>
77
+ </div>
78
+ </div>
79
+
80
+ <div class="doc-access">
81
+ {% unless document.uri == blank or document.uri == nil %}
82
+ <div class="doc-access-button-uri">
83
+ <a href="{{ document.uri }}">URI</a>
84
+ </div>
85
+ {% endunless %}
86
+ {% unless document.html == blank or document.html == nil %}
87
+ <div class="doc-access-button-html">
88
+ <a href="{{ document.html }}">HTML</a>
89
+ </div>
90
+ {% endunless %}
91
+ {% unless document.pdf == blank or document.pdf == nil %}
92
+ <div class="doc-access-button-pdf">
93
+ <a href="{{ document.pdf }}">PDF</a>
94
+ </div>
95
+ {% endunless %}
96
+ {% unless document.doc == blank or document.doc == nil %}
97
+ <div class="doc-access-button-doc">
98
+ <a href="{{ document.doc }}">Word</a>
99
+ </div>
100
+ {% endunless %}
101
+ {% unless document.xml == blank or document.xml == nil %}
102
+ <div class="doc-access-button-xml">
103
+ <a href="{{ document.xml }}">XML</a>
104
+ </div>
105
+ {% endunless %}
106
+ </div>
107
+ </div>
108
+
109
+ {%- if document.items.size > 0 -%}
110
+ {%- include 'document' for document.items -%}
111
+ {%- endif -%}
@@ -0,0 +1,61 @@
1
+ <!DOCTYPE HTML>
2
+ <html>
3
+ <head>
4
+ <title>{{ title | strip_html }}</title>
5
+ <style>
6
+ <!--
7
+ {{ css }}
8
+ -->
9
+ </style>
10
+ <meta http-equiv="Content-Type" content="text/html" charset="utf-8"/>
11
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" type="text/javascript"></script>
12
+ <script src="https://cdn.rawgit.com/jgallen23/toc/0.3.2/dist/toc.min.js" type="text/javascript"></script>
13
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i|Space+Mono:400,700|Overpass:300,300i,600,900|Ek+Mukta:200" rel="stylesheet" type="text/css"/>
14
+ <link href="https://use.fontawesome.com/releases/v5.0.8/css/solid.css" integrity="sha384-v2Tw72dyUXeU3y4aM2Y0tBJQkGfplr39mxZqlTBDUZAb9BGoC40+rdFCG0m10lXk" crossorigin="anonymous"/>
15
+ <link href="https://use.fontawesome.com/releases/v5.0.8/css/fontawesome.css" integrity="sha384-q3jl8XQu1OpdLgGFvNRnPdj5VIlCvgsDQTQB6owSOHWlAurxul7f+JpUOVdAiJ5P" crossorigin="anonymous"/>
16
+ </head>
17
+ <body>
18
+ <header>
19
+ <div id="topbar-inner">
20
+ <div id="title-bar">
21
+ <div class="doc-access">
22
+ Generated: {{ date }}
23
+ </div>
24
+ <span>{{ author }}</span>
25
+ </div>
26
+ </div>
27
+ <div class="title-section">
28
+ <div class="coverpage">
29
+ <div class="wrapper-top">
30
+ <div class="coverpage-doc-identity">
31
+ <div class="coverpage-title"><span class="title-first">{{ title }}</span></div>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </header>
37
+ <main class="main-section">
38
+ {% include 'document' for documents %}
39
+ </main>
40
+ <footer>
41
+ <div class="copyright">
42
+ <div class="doc-access">
43
+ Generated: {{ date }}
44
+ </div>
45
+ <p class="year">&copy; {{ author }}</p>
46
+ <p class="message">All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission.</p>
47
+ </div>
48
+ </footer>
49
+ <script>
50
+ $(document).ready(function() {
51
+ $('[id^=toc]').each(function () {
52
+ var currentToc = $(this);
53
+ var url = window.location.href;
54
+ currentToc.wrap("<a href='" + url + "#" + currentToc.attr("id") + "' <\/a>");
55
+ });
56
+ });
57
+ anchors.options = { placement: 'left' };
58
+ anchors.add('h1, h2, h3, h4');
59
+ </script>
60
+ </body>
61
+ </html>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>{{ title | strip_html }}</title>
7
+ {%- if description %}
8
+ <meta name="description" content="{{ description | escape }}">
9
+ {%- endif %}
10
+ <meta name="generator" content="relaton-cli index">
11
+ {%- if favicon %}
12
+ <link rel="icon" href="{{ favicon | escape }}"{% if favicon_type %} type="{{ favicon_type }}"{% endif %}>
13
+ {%- endif %}
14
+ <style>{{ css }}</style>
15
+ </head>
16
+ <body>
17
+ <div id="relaton-index-app" data-title="{{ title | escape }}" data-generated="{{ generated }}"{% if description %} data-description="{{ description | escape }}"{% endif %} data-total="{{ total }}" data-shards="{{ shards }}" data-shard-size="{{ shard_size }}" data-detail-shards="{{ detail_shards }}" data-detail-shard-size="{{ detail_shard_size }}"></div>
18
+ <script>{{ iife }}</script>
19
+ </body>
20
+ </html>