metanorma-iso 1.1.5 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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>