metanorma-mpfa 0.5.14 → 0.6.2

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: 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>