metanorma-iso 1.1.5 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee39375384be0c9f62cc38c73fa594f7801ecd2f8b29e1f59899a72fe5675a6f
4
- data.tar.gz: 9387fa058b07994b39c75b6f278a2827a883f1734e6e56553fc464a66cebc362
3
+ metadata.gz: 8e375fde6639d425ae85af705bd4bcb587c6960baf0eec6469912d0d3a4a22de
4
+ data.tar.gz: 22bf0e8a7c33f81cf826755922c5c7280a70f31223fdb4fdbdbf6487987a862b
5
5
  SHA512:
6
- metadata.gz: fa215941951f4f41451ea5e59917eab3244c8474b60ba2e075cf04e1a3d3bb2c0a64d2165868aadaf7f754fde1d7944ce9a6b7c492e8de1be0bc69f3c21c0db3
7
- data.tar.gz: b5730599e19b0e297836a2d248e6ec94cd937f6138b6db2ef91f2b63c88253f35dbee859c4650f273740bf40f93c1030a97ca931cd5535786eb4d72e56158608
6
+ metadata.gz: 4c483551a44da35ef87cd32632d0f502996c42ed717fee27e4c48d8b33d5d99ef613035796f0c80fd7c57663c2550ceded93741f3ce88b3dab2dc3abe1f487b4
7
+ data.tar.gz: ab3019273d47c9a2717af58fe15d7176beb61ab097fdbac5c1ce7de07e2f635f5d425563a3fc423a34c5cf2f71a3b2c5a9259db1aa794b92d681995d4f33ebc2
@@ -1,15 +1,17 @@
1
- dist: trusty
2
- sudo: false
3
1
  language: ruby
2
+ cache: bundler
3
+ os:
4
+ - linux
5
+ - osx
4
6
  rvm:
5
- - 2.5
6
- - 2.4
7
- - 2.3
8
- - ruby-head
7
+ - 2.5
8
+ - 2.4
9
+ - 2.3
10
+ - ruby-head
9
11
  before_install:
10
- - gem install bundler -v 2.0.1
11
- - travis_retry sudo apt-get update
12
- - sudo bash -c "curl -L https://raw.githubusercontent.com/metanorma/plantuml-install/master/ubuntu.sh | bash"
12
+ - gem install bundler -v 2.0.1
13
+ - bundle update
14
+ - curl -L https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/travis-plantuml-install.sh | bash
13
15
  matrix:
14
16
  allow_failures:
15
17
  - rvm: ruby-head
@@ -1,10 +1,14 @@
1
+ # Auto-generated !!! Do not edit it manually
2
+ # use ci-master https://github.com/metanorma/metanorma-build-scripts
1
3
  version: '{build}'
2
4
 
5
+ cache:
6
+ - vendor/bundle
7
+
3
8
  environment:
4
9
  matrix:
5
10
  - RUBY_VERSION: 25
6
11
  - RUBY_VERSION: 24
7
- - RUBY_VERSION: 23
8
12
  - RUBY_VERSION: _trunk
9
13
 
10
14
  matrix:
@@ -17,6 +21,8 @@ install:
17
21
 
18
22
  build_script:
19
23
  - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
24
+ - set GIT_TERMINAL_PROMPT=0
25
+ - bundle config --local path vendor/bundle
20
26
  - bundle update
21
27
  - bundle install
22
28
 
@@ -27,4 +33,3 @@ before_test:
27
33
 
28
34
  test_script:
29
35
  - bundle exec rake
30
-
@@ -35,7 +35,28 @@
35
35
  </define>
36
36
  <define name="status">
37
37
  <element name="status">
38
- <ref name="LocalizedString"/>
38
+ <ref name="stage"/>
39
+ <optional>
40
+ <ref name="substage"/>
41
+ </optional>
42
+ <optional>
43
+ <ref name="iteration"/>
44
+ </optional>
45
+ </element>
46
+ </define>
47
+ <define name="stage">
48
+ <element name="stage">
49
+ <text/>
50
+ </element>
51
+ </define>
52
+ <define name="substage">
53
+ <element name="substage">
54
+ <text/>
55
+ </element>
56
+ </define>
57
+ <define name="iteration">
58
+ <element name="iteration">
59
+ <text/>
39
60
  </element>
40
61
  </define>
41
62
  <define name="language">
@@ -523,9 +544,9 @@
523
544
  <zeroOrMore>
524
545
  <ref name="script"/>
525
546
  </zeroOrMore>
526
- <optional>
547
+ <zeroOrMore>
527
548
  <ref name="abstract"/>
528
- </optional>
549
+ </zeroOrMore>
529
550
  <optional>
530
551
  <ref name="status"/>
531
552
  </optional>
@@ -636,22 +657,27 @@
636
657
  <ref name="ISO8601Date"/>
637
658
  </optional>
638
659
  </define>
660
+ <define name="BibliographicDateType">
661
+ <choice>
662
+ <value>published</value>
663
+ <value>accessed</value>
664
+ <value>created</value>
665
+ <value>implemented</value>
666
+ <value>obsoleted</value>
667
+ <value>confirmed</value>
668
+ <value>updated</value>
669
+ <value>issued</value>
670
+ <value>transmitted</value>
671
+ <value>copied</value>
672
+ <value>unchanged</value>
673
+ <value>circulated</value>
674
+ </choice>
675
+ </define>
639
676
  <define name="bdate">
640
677
  <element name="date">
641
678
  <attribute name="type">
642
679
  <choice>
643
- <value>published</value>
644
- <value>accessed</value>
645
- <value>created</value>
646
- <value>implemented</value>
647
- <value>obsoleted</value>
648
- <value>confirmed</value>
649
- <value>updated</value>
650
- <value>issued</value>
651
- <value>transmitted</value>
652
- <value>copied</value>
653
- <value>unchanged</value>
654
- <value>circulated</value>
680
+ <ref name="BibliographicDateType"/>
655
681
  <text/>
656
682
  </choice>
657
683
  </attribute>
@@ -805,6 +831,9 @@
805
831
  </define>
806
832
  <define name="biblionote">
807
833
  <element name="note">
834
+ <optional>
835
+ <attribute name="type"/>
836
+ </optional>
808
837
  <ref name="FormattedString"/>
809
838
  </element>
810
839
  </define>
@@ -54,8 +54,7 @@ module Asciidoctor
54
54
  prefix = get_id_prefix(xmldoc)
55
55
  id = xmldoc.at("//bibdata/docidentifier[@type = 'iso']") or return
56
56
  id.content = id_prefix(prefix, id)
57
- id = xmldoc.at("//bibdata/docidentifier[@type = 'iso-structured']/"\
58
- "project-number") or return
57
+ id = xmldoc.at("//bibdata/ext/structuredidentifier/project-number") or return
59
58
  id.content = id_prefix(prefix, id)
60
59
  end
61
60
  end
@@ -23,7 +23,17 @@ module Asciidoctor
23
23
  dn = add_id_parts(node.attr("docnumber"), part, subpart)
24
24
  dn = id_stage_prefix(dn, node)
25
25
  xml.docidentifier dn, **attr_code(type: "iso")
26
- xml.docidentifier **attr_code(type: "iso-structured") do |i|
26
+ end
27
+
28
+ def metadata_ext(node, xml)
29
+ super
30
+ structured_id(node, xml)
31
+ end
32
+
33
+ def structured_id(node, xml)
34
+ return unless node.attr("docnumber")
35
+ part, subpart = node&.attr("partnumber")&.split(/-/)
36
+ xml.structuredidentifier do |i|
27
37
  i.project_number node.attr("docnumber"),
28
38
  **attr_code(part: part, subpart: subpart)
29
39
  end
@@ -36,9 +46,11 @@ module Asciidoctor
36
46
  end
37
47
 
38
48
  def id_stage_prefix(dn, node)
39
- if node.attr("docstage") && node.attr("docstage").to_i < 60
49
+ stage = get_stage(node)
50
+ substage = get_substage(node)
51
+ if stage && (stage.to_i < 60 || stage.to_i == 60 && substage.to_i < 60)
40
52
  abbr = IsoDoc::Iso::Metadata.new("en", "Latn", {}).
41
- stage_abbrev(node.attr("docstage"), node.attr("iteration"),
53
+ stage_abbrev(stage, substage, node.attr("iteration"),
42
54
  node.attr("draft"))
43
55
  dn = "/#{abbr} #{dn}" # prefixes added in cleanup
44
56
  else
@@ -93,10 +105,19 @@ module Asciidoctor
93
105
  end
94
106
  end
95
107
 
108
+ def get_stage(node)
109
+ stage = node.attr("status") || node.attr("docstage") || "60"
110
+ end
111
+
112
+ def get_substage(node)
113
+ stage = get_stage(node)
114
+ node.attr("docsubstage") || ( stage == "60" ? "60" : "00" )
115
+ end
116
+
96
117
  def metadata_status(node, xml)
97
118
  xml.status do |s|
98
- s.stage (node.attr("docstage") || "60")
99
- s.substage (node.attr("docsubstage") || "60")
119
+ s.stage get_stage(node)
120
+ s.substage get_substage(node)
100
121
  node.attr("iteration") && (s.iteration node.attr("iteration"))
101
122
  end
102
123
  end
@@ -112,32 +133,42 @@ module Asciidoctor
112
133
 
113
134
  def title_intro(node, t, lang, at)
114
135
  return unless node.attr("title-intro-#{lang}")
115
- t.title_intro(**attr_code(at)) do |t1|
136
+ t.title(**attr_code(at.merge(type: "title-intro"))) do |t1|
116
137
  t1 << asciidoc_sub(node.attr("title-intro-#{lang}"))
117
138
  end
118
139
  end
119
140
 
120
141
  def title_main(node, t, lang, at)
121
- t.title_main **attr_code(at) do |t1|
142
+ t.title **attr_code(at.merge(type: "title-main")) do |t1|
122
143
  t1 << asciidoc_sub(node.attr("title-main-#{lang}"))
123
144
  end
124
145
  end
125
146
 
126
147
  def title_part(node, t, lang, at)
127
148
  return unless node.attr("title-part-#{lang}")
128
- t.title_part(**attr_code(at)) do |t1|
149
+ t.title(**attr_code(at.merge(type: "title-part"))) do |t1|
129
150
  t1 << asciidoc_sub(node.attr("title-part-#{lang}"))
130
151
  end
131
152
  end
132
153
 
154
+ def title_full(node, t, lang, at)
155
+ title = node.attr("title-main-#{lang}")
156
+ intro = node.attr("title-intro-#{lang}")
157
+ part = node.attr("title-part-#{lang}")
158
+ title = "#{intro} -- #{title}" if intro
159
+ title = "#{title} -- #{part}" if part
160
+ t.title **attr_code(at.merge(type: "main")) do |t1|
161
+ t1 << asciidoc_sub(title)
162
+ end
163
+ end
164
+
133
165
  def title(node, xml)
134
166
  ["en", "fr"].each do |lang|
135
- xml.title do |t|
136
- at = { language: lang, format: "text/plain" }
137
- title_intro(node, t, lang, at)
138
- title_main(node, t, lang, at)
139
- title_part(node, t, lang, at)
140
- end
167
+ at = { language: lang, format: "text/plain" }
168
+ title_full(node, xml, lang, at)
169
+ title_intro(node, xml, lang, at)
170
+ title_main(node, xml, lang, at)
171
+ title_part(node, xml, lang, at)
141
172
  end
142
173
  end
143
174
  end
@@ -19,27 +19,16 @@
19
19
  -->
20
20
  <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
21
21
  <include href="reqt.rng"/>
22
- <include href="biblio.rng">
23
- <define name="status">
24
- <element name="status">
25
- <choice>
26
- <value>proposal</value>
27
- <value>working_draft</value>
28
- <value>committee_draft</value>
29
- <value>draft_standard</value>
30
- <value>final_draft</value>
31
- <value>published</value>
32
- <value>withdrawn</value>
33
- </choice>
34
- </element>
35
- </define>
36
- </include>
22
+ <include href="biblio.rng"/>
37
23
  <start>
38
24
  <ref name="standard-document"/>
39
25
  </start>
40
26
  <define name="standard-document">
41
27
  <element name="standard-document">
42
28
  <ref name="bibdata"/>
29
+ <optional>
30
+ <ref name="boilerplate"/>
31
+ </optional>
43
32
  <optional>
44
33
  <ref name="preface"/>
45
34
  </optional>
@@ -64,6 +53,42 @@
64
53
  </oneOrMore>
65
54
  </element>
66
55
  </define>
56
+ <define name="boilerplate">
57
+ <element name="boilerplate">
58
+ <optional>
59
+ <ref name="copyright-statement"/>
60
+ </optional>
61
+ <optional>
62
+ <ref name="license-statement"/>
63
+ </optional>
64
+ <optional>
65
+ <ref name="legal-statement"/>
66
+ </optional>
67
+ <optional>
68
+ <ref name="feedback-statement"/>
69
+ </optional>
70
+ </element>
71
+ </define>
72
+ <define name="copyright-statement">
73
+ <element name="copyright-statement">
74
+ <ref name="Content-Section"/>
75
+ </element>
76
+ </define>
77
+ <define name="license-statement">
78
+ <element name="license-statement">
79
+ <ref name="Content-Section"/>
80
+ </element>
81
+ </define>
82
+ <define name="legal-statement">
83
+ <element name="legal-statement">
84
+ <ref name="Content-Section"/>
85
+ </element>
86
+ </define>
87
+ <define name="feedback-statement">
88
+ <element name="feedback-statement">
89
+ <ref name="Content-Section"/>
90
+ </element>
91
+ </define>
67
92
  <define name="sections">
68
93
  <element name="sections">
69
94
  <oneOrMore>
@@ -446,6 +471,11 @@
446
471
  <attribute name="id">
447
472
  <data type="ID"/>
448
473
  </attribute>
474
+ <optional>
475
+ <attribute name="unnumbered">
476
+ <data type="boolean"/>
477
+ </attribute>
478
+ </optional>
449
479
  <ref name="stem"/>
450
480
  <optional>
451
481
  <ref name="dl"/>
@@ -494,6 +524,11 @@
494
524
  <attribute name="id">
495
525
  <data type="ID"/>
496
526
  </attribute>
527
+ <optional>
528
+ <attribute name="unnumbered">
529
+ <data type="boolean"/>
530
+ </attribute>
531
+ </optional>
497
532
  <optional>
498
533
  <attribute name="lang"/>
499
534
  </optional>
@@ -533,6 +568,14 @@
533
568
  <attribute name="id">
534
569
  <data type="ID"/>
535
570
  </attribute>
571
+ <optional>
572
+ <attribute name="unnumbered">
573
+ <data type="boolean"/>
574
+ </attribute>
575
+ </optional>
576
+ <optional>
577
+ <attribute name="alt"/>
578
+ </optional>
536
579
  <optional>
537
580
  <ref name="tname"/>
538
581
  </optional>
@@ -647,6 +690,11 @@
647
690
  <attribute name="id">
648
691
  <data type="ID"/>
649
692
  </attribute>
693
+ <optional>
694
+ <attribute name="unnumbered">
695
+ <data type="boolean"/>
696
+ </attribute>
697
+ </optional>
650
698
  <oneOrMore>
651
699
  <choice>
652
700
  <ref name="formula"/>
@@ -690,6 +738,11 @@
690
738
  <attribute name="id">
691
739
  <data type="ID"/>
692
740
  </attribute>
741
+ <optional>
742
+ <attribute name="unnumbered">
743
+ <data type="boolean"/>
744
+ </attribute>
745
+ </optional>
693
746
  <optional>
694
747
  <ref name="source"/>
695
748
  </optional>
@@ -735,6 +788,20 @@
735
788
  <ref name="bookmark"/>
736
789
  </choice>
737
790
  </define>
791
+ <define name="PureTextElement">
792
+ <choice>
793
+ <text/>
794
+ <ref name="em"/>
795
+ <ref name="strong"/>
796
+ <ref name="sub"/>
797
+ <ref name="sup"/>
798
+ <ref name="tt"/>
799
+ <ref name="keyword"/>
800
+ <ref name="strike"/>
801
+ <ref name="smallcap"/>
802
+ <ref name="br"/>
803
+ </choice>
804
+ </define>
738
805
  <define name="source">
739
806
  <element name="source">
740
807
  <ref name="TypedUri"/>
@@ -742,42 +809,58 @@
742
809
  </define>
743
810
  <define name="em">
744
811
  <element name="em">
745
- <text/>
812
+ <zeroOrMore>
813
+ <ref name="PureTextElement"/>
814
+ </zeroOrMore>
746
815
  </element>
747
816
  </define>
748
817
  <define name="strong">
749
818
  <element name="strong">
750
- <text/>
819
+ <zeroOrMore>
820
+ <ref name="PureTextElement"/>
821
+ </zeroOrMore>
751
822
  </element>
752
823
  </define>
753
824
  <define name="tt">
754
825
  <element name="tt">
755
- <text/>
826
+ <zeroOrMore>
827
+ <ref name="PureTextElement"/>
828
+ </zeroOrMore>
756
829
  </element>
757
830
  </define>
758
831
  <define name="keyword">
759
832
  <element name="keyword">
760
- <text/>
833
+ <zeroOrMore>
834
+ <ref name="PureTextElement"/>
835
+ </zeroOrMore>
761
836
  </element>
762
837
  </define>
763
838
  <define name="sub">
764
839
  <element name="sub">
765
- <text/>
840
+ <zeroOrMore>
841
+ <ref name="PureTextElement"/>
842
+ </zeroOrMore>
766
843
  </element>
767
844
  </define>
768
845
  <define name="sup">
769
846
  <element name="sup">
770
- <text/>
847
+ <zeroOrMore>
848
+ <ref name="PureTextElement"/>
849
+ </zeroOrMore>
771
850
  </element>
772
851
  </define>
773
852
  <define name="strike">
774
853
  <element name="strike">
775
- <text/>
854
+ <zeroOrMore>
855
+ <ref name="PureTextElement"/>
856
+ </zeroOrMore>
776
857
  </element>
777
858
  </define>
778
859
  <define name="smallcap">
779
860
  <element name="smallcap">
780
- <text/>
861
+ <zeroOrMore>
862
+ <ref name="PureTextElement"/>
863
+ </zeroOrMore>
781
864
  </element>
782
865
  </define>
783
866
  <define name="br">
@@ -838,6 +921,9 @@
838
921
  <attribute name="type">
839
922
  <ref name="ReferenceFormat"/>
840
923
  </attribute>
924
+ <optional>
925
+ <attribute name="alt"/>
926
+ </optional>
841
927
  <text/>
842
928
  </element>
843
929
  </define>
@@ -1019,57 +1105,28 @@
1019
1105
  </zeroOrMore>
1020
1106
  </element>
1021
1107
  </define>
1022
- <define name="BibData">
1023
- <optional>
1024
- <attribute name="type">
1025
- <ref name="BibItemType"/>
1026
- </attribute>
1027
- </optional>
1028
- <oneOrMore>
1029
- <ref name="btitle"/>
1030
- </oneOrMore>
1031
- <optional>
1032
- <ref name="formattedref"/>
1033
- </optional>
1034
- <zeroOrMore>
1035
- <ref name="bsource"/>
1036
- </zeroOrMore>
1037
- <zeroOrMore>
1038
- <ref name="docidentifier"/>
1039
- </zeroOrMore>
1040
- <optional>
1041
- <ref name="docnumber"/>
1042
- </optional>
1043
- <zeroOrMore>
1044
- <ref name="bdate"/>
1045
- </zeroOrMore>
1046
- <zeroOrMore>
1047
- <ref name="contributor"/>
1048
- </zeroOrMore>
1049
- <optional>
1050
- <ref name="edition"/>
1051
- </optional>
1052
- <optional>
1053
- <ref name="version"/>
1054
- </optional>
1055
- <zeroOrMore>
1056
- <ref name="biblionote"/>
1057
- </zeroOrMore>
1058
- <zeroOrMore>
1059
- <ref name="language"/>
1060
- </zeroOrMore>
1061
- <zeroOrMore>
1062
- <ref name="script"/>
1063
- </zeroOrMore>
1108
+ <define name="ext">
1109
+ <element name="ext">
1110
+ <ref name="BibDataExtensionType"/>
1111
+ </element>
1112
+ </define>
1113
+ <define name="BibDataExtensionType">
1064
1114
  <optional>
1065
- <ref name="abstract"/>
1115
+ <ref name="doctype"/>
1066
1116
  </optional>
1117
+ </define>
1118
+ <define name="doctype">
1119
+ <element name="doctype">
1120
+ <ref name="DocumentType"/>
1121
+ </element>
1122
+ </define>
1123
+ <define name="DocumentType">
1124
+ <value>document</value>
1125
+ </define>
1126
+ <define name="BibData">
1127
+ <ref name="BibliographicItem"/>
1067
1128
  <optional>
1068
- <ref name="status"/>
1129
+ <ref name="ext"/>
1069
1130
  </optional>
1070
- <ref name="copyright"/>
1071
- <zeroOrMore>
1072
- <ref name="docrelation"/>
1073
- </zeroOrMore>
1074
1131
  </define>
1075
1132
  </grammar>