metanorma-mpfa 0.5.14 → 0.6.2

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: 8d0d6cfb8a8b522fe0c3746dc20f952b0427e795346d5e531112139140d735ca
4
- data.tar.gz: 4eeed080d3d4171e1809bfb1a2d9e83aa02241704d5232b4a65f68e65443cd55
3
+ metadata.gz: c45cbf2fa62763eb3dce64c4f55743c6ca4cddf98ad1829a15e09e75fc478479
4
+ data.tar.gz: 5e67fada8197ff15c52ba159d07a697f5b498261c5db01a30c878d815b17aab5
5
5
  SHA512:
6
- metadata.gz: a3646378e03da89b45dbcdd41f3e9dd413b26fac8220c7c490924bf1f8192bff24f9687024efd1b0244bf684f7f629d274c7c469f0fe9280e7d1807c7aae8701
7
- data.tar.gz: 152d926ee2b8d56efff2d39265fbcf46bc80c82179d78c66dc2c8f52299a59d1841436d554e2328d701f39d09178f27f8e8066a8803620302e8f851d7bb5bc26
6
+ metadata.gz: 9894bd264e9d1b54b191753ae7772167c17ba0ca57fdef5fbc9b51a124cfead643c8f6e1052398709f520f9efbdb2baee87b9a5c85bf4133f3a3851d9fb39ed0
7
+ data.tar.gz: 9d90cdf416e91ea8f846203596bcac218ab1dfdac629f928a4f65960dc3615a6b948724f42663d682a09b294c2e2f910f3babe4f77abe28595eb3d143b8ca0e9
@@ -30,7 +30,9 @@ jobs:
30
30
  os: 'macos-latest'
31
31
  experimental: true
32
32
  steps:
33
- - uses: actions/checkout@master
33
+ - uses: actions/checkout@v2
34
+ with:
35
+ submodules: true
34
36
 
35
37
  - uses: ruby/setup-ruby@v1
36
38
  with:
@@ -38,14 +40,3 @@ jobs:
38
40
  bundler-cache: true
39
41
 
40
42
  - run: bundle exec rake
41
-
42
- tests-passed:
43
- needs: rake
44
- runs-on: ubuntu-latest
45
- steps:
46
- - uses: peter-evans/repository-dispatch@v1
47
- with:
48
- token: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
49
- repository: ${{ github.repository }}
50
- event-type: notify
51
- client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
data/.gitignore CHANGED
@@ -1 +1,3 @@
1
1
  .DS_Store
2
+
3
+ .rubocop-https--*
data/.rubocop.yml CHANGED
@@ -1,7 +1,12 @@
1
1
  # This project follows the Ribose OSS style guide.
2
2
  # https://github.com/riboseinc/oss-guides
3
3
  # All project-specific additions and overrides should be specified in this file.
4
-
5
4
  inherit_from:
6
5
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
7
6
 
7
+ # local repo-specific modifications
8
+
9
+ AllCops:
10
+ DisplayCopNames: false
11
+ StyleGuideCopsOnly: false
12
+ TargetRubyVersion: 2.4
data/bin/manifest CHANGED
@@ -29,12 +29,13 @@ supported_gem_paths.each do |backend|
29
29
  end
30
30
  puts
31
31
 
32
- def uuid()
32
+ def uuid
33
33
  UUIDTools::UUID.random_create
34
34
  end
35
35
 
36
36
  def extract_documents(m)
37
- return [] unless m and m["sections"]
37
+ return [] unless m && m["sections"]
38
+
38
39
  ret = []
39
40
  m["sections"].each do |s|
40
41
  ret << s if s["file"]
@@ -45,22 +46,24 @@ end
45
46
 
46
47
  def hyperlink(link)
47
48
  return unless link
49
+
48
50
  link.sub(/\.adoc(?=$|#)/, ".html")
49
51
  end
50
52
 
51
53
  def iterate(sections)
52
54
  return "" unless sections
55
+
53
56
  ret = ""
54
57
  Array(sections).each do |m|
55
- ret+= "<clause id='#{uuid}'>\n"
56
- title = m["title"] && m["number"] ? "#{m['number']}. #{m['title']}" : ( m["number"] || m["title"] || "&mdash;" )
58
+ ret += "<clause id='#{uuid}'>\n"
59
+ title = m["title"] && m["number"] ? "#{m['number']}. #{m['title']}" : (m["number"] || m["title"] || "&mdash;")
57
60
  file = hyperlink(m["file"])
58
61
  title = "<link target='#{file}'>#{title}</link>" if file
59
- ret+= "<title>#{title}</title>\n"
60
- ret+= "<p>#{m['description']}</p>\n" if m["description"]
61
- ret+= "<p align='right'>#{m['revdate']}</p>\n" if m["revdate"]
62
+ ret += "<title>#{title}</title>\n"
63
+ ret += "<p>#{m['description']}</p>\n" if m["description"]
64
+ ret += "<p align='right'>#{m['revdate']}</p>\n" if m["revdate"]
62
65
  ret += iterate(m["sections"])
63
- ret+= "</clause>\n"
66
+ ret += "</clause>\n"
64
67
  end
65
68
  ret
66
69
  end
@@ -69,20 +72,19 @@ options = {}
69
72
  opt_parser = OptionParser.new do |opts|
70
73
  opts.banner += " <file>"
71
74
  opts.on(
72
- '-t',
73
- '--type TYPE',
75
+ "-t",
76
+ "--type TYPE",
74
77
  "Type of standard to generate"
75
78
  ) { |v| options[:type] = v.to_sym }
76
79
 
77
- opts.on(
78
- '-r',
79
- '--require LIBRARY',
80
- 'Require LIBRARY prior to execution'
81
- ) { |v|
80
+ opts.on(
81
+ "-r",
82
+ "--require LIBRARY",
83
+ "Require LIBRARY prior to execution"
84
+ ) do |v|
82
85
  options[:require] ||= []
83
86
  options[:require] << v
84
- }
85
-
87
+ end
86
88
 
87
89
  opts.on_tail("-h", "--help", "Show this message") do
88
90
  puts opts
@@ -98,7 +100,6 @@ if options[:require]
98
100
  end
99
101
  end
100
102
 
101
-
102
103
  manifest = YAML.load_file(ARGV.pop)
103
104
 
104
105
  documents = extract_documents(manifest)
@@ -106,41 +107,41 @@ documents = extract_documents(manifest)
106
107
  # TODO real lookup of namespaces and root elements
107
108
 
108
109
  out = <<~END
109
- <#{options[:type]}-standard xmlns="http://riboseinc.com/isoxml">
110
- <bibdata type="standard">
111
- <title>#{manifest["title"]}</title>
110
+ <#{options[:type]}-standard xmlns="http://riboseinc.com/isoxml">
111
+ <bibdata type="standard">
112
+ <title>#{manifest['title']}</title>
112
113
  END
113
114
 
114
115
  # TODO leave in anchor references?
115
116
  #
116
117
  documents.each do |d|
117
118
  out += <<~END
118
- <relation type="partOf">
119
- <bibdata type="standard">
120
- <title>#{d['title']}</title>
121
- <docidentifier>#{d['number']}</docidentifier>
122
- <abstract>#{d['description']}</abstract>
123
- </bibdata>
124
- </relation>
119
+ <relation type="partOf">
120
+ <bibdata type="standard">
121
+ <title>#{d['title']}</title>
122
+ <docidentifier>#{d['number']}</docidentifier>
123
+ <abstract>#{d['description']}</abstract>
124
+ </bibdata>
125
+ </relation>
125
126
  END
126
127
  end
127
128
 
128
129
  out += <<~END
129
- </bibdata>
130
- <sections>
130
+ </bibdata>
131
+ <sections>
131
132
  END
132
133
 
133
- out+=iterate(manifest["sections"])
134
+ out += iterate(manifest["sections"])
134
135
 
135
- out+= <<~END
136
- </sections>
137
- <#{options[:type]}-standard>
136
+ out += <<~END
137
+ </sections>
138
+ <#{options[:type]}-standard>
138
139
  END
139
- outfilename = options[:filename].sub(/\.[^.]+$/, ".xml")
140
- File.open(outfilename, "w") { |f| f.write out }
141
-
142
- processor = registry.find_processor(options[:type].to_sym)
143
- ext = :html
144
- file_extension = "html" || processor.output_formats[ext]
145
- outfilename = options[:filename].sub(/\.[^.]+$/, ".#{file_extension}")
146
- processor.output(out, outfilename, ext, {suppressheadingnumbers: true})
140
+ outfilename = options[:filename].sub(/\.[^.]+$/, ".xml")
141
+ File.open(outfilename, "w") { |f| f.write out }
142
+
143
+ processor = registry.find_processor(options[:type].to_sym)
144
+ ext = :html
145
+ file_extension = "html" || processor.output_formats[ext]
146
+ outfilename = options[:filename].sub(/\.[^.]+$/, ".#{file_extension}")
147
+ processor.output(out, outfilename, ext, { suppressheadingnumbers: true })
@@ -124,7 +124,7 @@
124
124
  <value>application/tei+xml</value>
125
125
  <value>text/x-asciidoc</value>
126
126
  <value>text/markdown</value>
127
- <value>application/x-isodoc+xml</value>
127
+ <value>application/x-metanorma+xml</value>
128
128
  <text/>
129
129
  </choice>
130
130
  </attribute>
@@ -452,6 +452,7 @@
452
452
  <attribute name="type">
453
453
  <choice>
454
454
  <value>isni</value>
455
+ <value>orcid</value>
455
456
  <value>uri</value>
456
457
  </choice>
457
458
  </attribute>
@@ -461,10 +462,7 @@
461
462
  <define name="org-identifier">
462
463
  <element name="identifier">
463
464
  <attribute name="type">
464
- <choice>
465
- <value>orcid</value>
466
- <value>uri</value>
467
- </choice>
465
+ <data type="string" datatypeLibrary=""/>
468
466
  </attribute>
469
467
  <text/>
470
468
  </element>
@@ -1106,7 +1104,7 @@
1106
1104
  <value>complementOf</value>
1107
1105
  <value>obsoletes</value>
1108
1106
  <value>obsoletedBy</value>
1109
- <value>cited</value>
1107
+ <value>cites</value>
1110
1108
  <value>isCitedIn</value>
1111
1109
  </choice>
1112
1110
  </define>
@@ -86,6 +86,35 @@
86
86
  <text/>
87
87
  </element>
88
88
  </define>
89
+ <define name="erefType">
90
+ <optional>
91
+ <attribute name="normative">
92
+ <data type="boolean"/>
93
+ </attribute>
94
+ </optional>
95
+ <attribute name="citeas"/>
96
+ <attribute name="type">
97
+ <ref name="ReferenceFormat"/>
98
+ </attribute>
99
+ <optional>
100
+ <attribute name="alt"/>
101
+ </optional>
102
+ <optional>
103
+ <attribute name="case">
104
+ <choice>
105
+ <value>capital</value>
106
+ <value>lowercase</value>
107
+ </choice>
108
+ </attribute>
109
+ </optional>
110
+ <optional>
111
+ <attribute name="droploc">
112
+ <data type="boolean"/>
113
+ </attribute>
114
+ </optional>
115
+ <ref name="CitationType"/>
116
+ <text/>
117
+ </define>
89
118
  <define name="ul">
90
119
  <element name="ul">
91
120
  <attribute name="id">
@@ -102,7 +131,7 @@
102
131
  </attribute>
103
132
  </optional>
104
133
  <oneOrMore>
105
- <ref name="li"/>
134
+ <ref name="ul_li"/>
106
135
  </oneOrMore>
107
136
  <zeroOrMore>
108
137
  <ref name="note"/>
@@ -775,6 +804,90 @@
775
804
  <ref name="paragraph"/>
776
805
  </element>
777
806
  </define>
807
+ <define name="em">
808
+ <element name="em">
809
+ <zeroOrMore>
810
+ <choice>
811
+ <ref name="PureTextElement"/>
812
+ <ref name="stem"/>
813
+ <ref name="index"/>
814
+ </choice>
815
+ </zeroOrMore>
816
+ </element>
817
+ </define>
818
+ <define name="strong">
819
+ <element name="strong">
820
+ <zeroOrMore>
821
+ <choice>
822
+ <ref name="PureTextElement"/>
823
+ <ref name="stem"/>
824
+ <ref name="index"/>
825
+ </choice>
826
+ </zeroOrMore>
827
+ </element>
828
+ </define>
829
+ <define name="tt">
830
+ <element name="tt">
831
+ <zeroOrMore>
832
+ <choice>
833
+ <ref name="PureTextElement"/>
834
+ <ref name="index"/>
835
+ </choice>
836
+ </zeroOrMore>
837
+ </element>
838
+ </define>
839
+ <define name="keyword">
840
+ <element name="keyword">
841
+ <zeroOrMore>
842
+ <choice>
843
+ <ref name="PureTextElement"/>
844
+ <ref name="index"/>
845
+ </choice>
846
+ </zeroOrMore>
847
+ </element>
848
+ </define>
849
+ <define name="strike">
850
+ <element name="strike">
851
+ <zeroOrMore>
852
+ <choice>
853
+ <ref name="PureTextElement"/>
854
+ <ref name="index"/>
855
+ </choice>
856
+ </zeroOrMore>
857
+ </element>
858
+ </define>
859
+ <define name="underline">
860
+ <element name="underline">
861
+ <zeroOrMore>
862
+ <choice>
863
+ <ref name="PureTextElement"/>
864
+ <ref name="index"/>
865
+ </choice>
866
+ </zeroOrMore>
867
+ </element>
868
+ </define>
869
+ <define name="smallcap">
870
+ <element name="smallcap">
871
+ <zeroOrMore>
872
+ <choice>
873
+ <ref name="PureTextElement"/>
874
+ <ref name="index"/>
875
+ </choice>
876
+ </zeroOrMore>
877
+ </element>
878
+ </define>
879
+ <define name="pagebreak">
880
+ <element name="pagebreak">
881
+ <optional>
882
+ <attribute name="orientation">
883
+ <choice>
884
+ <value>landscape</value>
885
+ <value>portrait</value>
886
+ </choice>
887
+ </attribute>
888
+ </optional>
889
+ </element>
890
+ </define>
778
891
  </include>
779
892
  <!-- end overrides -->
780
893
  <define name="colgroup">
@@ -793,7 +906,35 @@
793
906
  <value>internal</value>
794
907
  </define>
795
908
  <define name="TextElement" combine="choice">
796
- <ref name="concept"/>
909
+ <choice>
910
+ <ref name="concept"/>
911
+ <ref name="add"/>
912
+ <ref name="del"/>
913
+ </choice>
914
+ </define>
915
+ <define name="add">
916
+ <element name="add">
917
+ <choice>
918
+ <ref name="PureTextElement"/>
919
+ <ref name="eref"/>
920
+ <ref name="stem"/>
921
+ <ref name="keyword"/>
922
+ <ref name="xref"/>
923
+ <ref name="hyperlink"/>
924
+ </choice>
925
+ </element>
926
+ </define>
927
+ <define name="del">
928
+ <element name="del">
929
+ <choice>
930
+ <ref name="PureTextElement"/>
931
+ <ref name="eref"/>
932
+ <ref name="stem"/>
933
+ <ref name="keyword"/>
934
+ <ref name="xref"/>
935
+ <ref name="hyperlink"/>
936
+ </choice>
937
+ </element>
797
938
  </define>
798
939
  <define name="concept">
799
940
  <element name="concept">
@@ -814,8 +955,170 @@
814
955
  <ref name="permission"/>
815
956
  <ref name="imagemap"/>
816
957
  <ref name="svgmap"/>
958
+ <ref name="inputform"/>
959
+ </choice>
960
+ </define>
961
+ <define name="inputform">
962
+ <element name="form">
963
+ <attribute name="id">
964
+ <data type="ID"/>
965
+ </attribute>
966
+ <attribute name="name"/>
967
+ <attribute name="action"/>
968
+ <zeroOrMore>
969
+ <choice>
970
+ <ref name="TextElement"/>
971
+ <ref name="FormInput"/>
972
+ </choice>
973
+ </zeroOrMore>
974
+ </element>
975
+ </define>
976
+ <define name="FormInput">
977
+ <choice>
978
+ <ref name="input"/>
979
+ <ref name="formlabel"/>
980
+ <ref name="select"/>
981
+ <ref name="textarea"/>
982
+ </choice>
983
+ </define>
984
+ <define name="InputType">
985
+ <choice>
986
+ <value>button</value>
987
+ <value>checkbox</value>
988
+ <value>date</value>
989
+ <value>file</value>
990
+ <value>password</value>
991
+ <value>radio</value>
992
+ <value>submit</value>
993
+ <value>text</value>
817
994
  </choice>
818
995
  </define>
996
+ <define name="input">
997
+ <element name="input">
998
+ <attribute name="type">
999
+ <ref name="InputType"/>
1000
+ </attribute>
1001
+ <optional>
1002
+ <attribute name="checked">
1003
+ <data type="boolean"/>
1004
+ </attribute>
1005
+ </optional>
1006
+ <optional>
1007
+ <attribute name="disabled">
1008
+ <data type="boolean"/>
1009
+ </attribute>
1010
+ </optional>
1011
+ <optional>
1012
+ <attribute name="readonly">
1013
+ <data type="boolean"/>
1014
+ </attribute>
1015
+ </optional>
1016
+ <optional>
1017
+ <attribute name="maxlength">
1018
+ <data type="int"/>
1019
+ </attribute>
1020
+ </optional>
1021
+ <optional>
1022
+ <attribute name="minlength">
1023
+ <data type="int"/>
1024
+ </attribute>
1025
+ </optional>
1026
+ <optional>
1027
+ <attribute name="name"/>
1028
+ </optional>
1029
+ <optional>
1030
+ <attribute name="value"/>
1031
+ </optional>
1032
+ <optional>
1033
+ <attribute name="id">
1034
+ <data type="ID"/>
1035
+ </attribute>
1036
+ </optional>
1037
+ </element>
1038
+ </define>
1039
+ <define name="formlabel">
1040
+ <element name="label">
1041
+ <attribute name="for">
1042
+ <data type="IDREF"/>
1043
+ </attribute>
1044
+ <zeroOrMore>
1045
+ <ref name="PureTextElement"/>
1046
+ </zeroOrMore>
1047
+ </element>
1048
+ </define>
1049
+ <define name="select">
1050
+ <element name="select">
1051
+ <optional>
1052
+ <attribute name="name"/>
1053
+ </optional>
1054
+ <optional>
1055
+ <attribute name="value"/>
1056
+ </optional>
1057
+ <optional>
1058
+ <attribute name="id">
1059
+ <data type="ID"/>
1060
+ </attribute>
1061
+ </optional>
1062
+ <optional>
1063
+ <attribute name="disabled">
1064
+ <data type="boolean"/>
1065
+ </attribute>
1066
+ </optional>
1067
+ <optional>
1068
+ <attribute name="multiple">
1069
+ <data type="boolean"/>
1070
+ </attribute>
1071
+ </optional>
1072
+ <optional>
1073
+ <attribute name="size">
1074
+ <data type="int"/>
1075
+ </attribute>
1076
+ </optional>
1077
+ <oneOrMore>
1078
+ <ref name="option"/>
1079
+ </oneOrMore>
1080
+ </element>
1081
+ </define>
1082
+ <define name="option">
1083
+ <element name="option">
1084
+ <optional>
1085
+ <attribute name="disabled">
1086
+ <data type="boolean"/>
1087
+ </attribute>
1088
+ </optional>
1089
+ <optional>
1090
+ <attribute name="value"/>
1091
+ </optional>
1092
+ <zeroOrMore>
1093
+ <ref name="PureTextElement"/>
1094
+ </zeroOrMore>
1095
+ </element>
1096
+ </define>
1097
+ <define name="textarea">
1098
+ <element name="textarea">
1099
+ <optional>
1100
+ <attribute name="name"/>
1101
+ </optional>
1102
+ <optional>
1103
+ <attribute name="value"/>
1104
+ </optional>
1105
+ <optional>
1106
+ <attribute name="id">
1107
+ <data type="ID"/>
1108
+ </attribute>
1109
+ </optional>
1110
+ <optional>
1111
+ <attribute name="rows">
1112
+ <data type="int"/>
1113
+ </attribute>
1114
+ </optional>
1115
+ <optional>
1116
+ <attribute name="cols">
1117
+ <data type="int"/>
1118
+ </attribute>
1119
+ </optional>
1120
+ </element>
1121
+ </define>
819
1122
  <define name="bibliography">
820
1123
  <element name="bibliography">
821
1124
  <oneOrMore>
@@ -1716,4 +2019,26 @@
1716
2019
  </zeroOrMore>
1717
2020
  </element>
1718
2021
  </define>
2022
+ <define name="ul_li">
2023
+ <element name="li">
2024
+ <optional>
2025
+ <attribute name="id">
2026
+ <data type="ID"/>
2027
+ </attribute>
2028
+ </optional>
2029
+ <optional>
2030
+ <attribute name="uncheckedcheckbox">
2031
+ <data type="boolean"/>
2032
+ </attribute>
2033
+ </optional>
2034
+ <optional>
2035
+ <attribute name="checkedcheckbox">
2036
+ <data type="boolean"/>
2037
+ </attribute>
2038
+ </optional>
2039
+ <oneOrMore>
2040
+ <ref name="BasicBlock"/>
2041
+ </oneOrMore>
2042
+ </element>
2043
+ </define>
1719
2044
  </grammar>