asciidoctor-gb 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.hound.yml +3 -0
  3. data/.oss-guides.rubocop.yml +1077 -0
  4. data/.rubocop.ribose.yml +65 -0
  5. data/.rubocop.tb.yml +640 -0
  6. data/.rubocop.yml +15 -0
  7. data/CODE_OF_CONDUCT.md +74 -0
  8. data/Gemfile +11 -0
  9. data/README.adoc +77 -0
  10. data/Rakefile +6 -0
  11. data/asciidoctor-gb.gemspec +52 -0
  12. data/bin/console +14 -0
  13. data/bin/setup +8 -0
  14. data/lib/asciidoctor/gb/agencies.rb +186 -0
  15. data/lib/asciidoctor/gb/converter.rb +179 -0
  16. data/lib/asciidoctor/gb/front.rb +179 -0
  17. data/lib/asciidoctor/gb/gbconvert.rb +86 -0
  18. data/lib/asciidoctor/gb/gbstandard.rng +297 -0
  19. data/lib/asciidoctor/gb/html/blank.png +0 -0
  20. data/lib/asciidoctor/gb/html/footer.png +0 -0
  21. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-db.gif +0 -0
  22. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-db.png +0 -0
  23. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-db.svg +1 -0
  24. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gb.gif +0 -0
  25. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gb.png +0 -0
  26. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gb.svg +1 -0
  27. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gjb.gif +0 -0
  28. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gjb.png +0 -0
  29. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gjb.svg +1 -0
  30. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gm.gif +0 -0
  31. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gm.png +0 -0
  32. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gm.svg +1 -0
  33. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-jjf.gif +0 -0
  34. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-jjf.png +0 -0
  35. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-jjf.svg +1 -0
  36. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-zb.gif +0 -0
  37. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-zb.png +0 -0
  38. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-zb.svg +13 -0
  39. data/lib/asciidoctor/gb/html/gb.css +642 -0
  40. data/lib/asciidoctor/gb/html/header.html +216 -0
  41. data/lib/asciidoctor/gb/html/html_gb_intro.html +45 -0
  42. data/lib/asciidoctor/gb/html/html_gb_titlepage.html +98 -0
  43. data/lib/asciidoctor/gb/html/htmlstyle.css +187 -0
  44. data/lib/asciidoctor/gb/html/logo.png +0 -0
  45. data/lib/asciidoctor/gb/html/word_gb_intro.html +3 -0
  46. data/lib/asciidoctor/gb/html/word_gb_titlepage.html +234 -0
  47. data/lib/asciidoctor/gb/html/wordstyle.css +2367 -0
  48. data/lib/asciidoctor/gb/isodoc.rng +1563 -0
  49. data/lib/asciidoctor/gb/isostandard.rng +845 -0
  50. data/lib/asciidoctor/gb/metadata.rb +186 -0
  51. data/lib/asciidoctor/gb/section_input.rb +168 -0
  52. data/lib/asciidoctor/gb/section_output.rb +38 -0
  53. data/lib/asciidoctor/gb/version.rb +5 -0
  54. data/lib/asciidoctor/gb/xref_gen.rb +25 -0
  55. data/lib/asciidoctor/gb.rb +7 -0
  56. data/lib/asciidoctor-gb.rb +4 -0
  57. metadata +411 -0
@@ -0,0 +1,179 @@
1
+ module Asciidoctor
2
+ module Gb
3
+ class Converter < ISO::Converter
4
+ def metadata_author(_node, xml)
5
+ xml.contributor do |c|
6
+ c.role **{ type: "author" }
7
+ c.organization do |a|
8
+ a.name "GB"
9
+ end
10
+ end
11
+ end
12
+
13
+ def metadata_publisher(_node, xml)
14
+ xml.contributor do |c|
15
+ c.role **{ type: "publisher" }
16
+ c.organization do |a|
17
+ a.name "GB"
18
+ end
19
+ end
20
+ end
21
+
22
+ def metadata_copyright(node, xml)
23
+ from = node.attr("copyright-year") || Date.today.year
24
+ xml.copyright do |c|
25
+ c.from from
26
+ c.owner do |owner|
27
+ owner.organization do |o|
28
+ o.name "GB"
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ def metadata_committee(node, xml)
35
+ attrs = { type: node.attr("technical-committee-type") }
36
+ xml.gbcommittee **attr_code(attrs) do |a|
37
+ a << node.attr("technical-committee")
38
+ end
39
+ end
40
+
41
+ def metadata_equivalence(node, xml)
42
+ isostd = node.attr("iso-standard") || return
43
+ type = node.attr("equivalence") || "equivalent"
44
+ m = /^(?<code>[^,]+),?(?<title>.*)$/.match isostd
45
+ title = m[:title].empty? ? "[not supplied]" : m[:title]
46
+ xml.relation **{ type: type } do |r|
47
+ r.bibitem do |b|
48
+ b.title { |t| t << title }
49
+ b.docidentifier m[:code]
50
+ end
51
+ end
52
+ end
53
+
54
+ def metadata_obsoletes(node, xml)
55
+ std = node.attr("obsoletes") || return
56
+ m = /^(?<code>[^,]+),?(?<title>.*)$/.match std
57
+ title = m[:title].empty? ? "[not supplied]" : m[:title]
58
+ xml.relation **{ type: "obsoletes" } do |r|
59
+ r.bibitem do |b|
60
+ b.title { |t| t << title }
61
+ b.docidentifier m[:code]
62
+ end
63
+ r.bpart node.attr("obsoletes-parts") if node.attr("obsoletes-parts")
64
+ end
65
+ end
66
+
67
+ def get_scope(node)
68
+ unless scope = node.attr("scope")
69
+ scope = "national"
70
+ warn "GB: no scope supplied, defaulting to National"
71
+ end
72
+ scope
73
+ end
74
+
75
+ def get_prefix(node)
76
+ scope = get_scope(node)
77
+ unless prefix = node.attr("prefix")
78
+ prefix = "GB"
79
+ scope = "national"
80
+ warn "GB: no prefix supplied, defaulting to GB"
81
+ end
82
+ [scope, prefix]
83
+ end
84
+
85
+ def get_mandate(node)
86
+ unless mandate = node.attr("mandate")
87
+ mandate = "mandatory"
88
+ warn "GB: no mandate supplied, defaulting to mandatory"
89
+ end
90
+ mandate
91
+ end
92
+
93
+ def metadata_gbtype(node, xml)
94
+ xml.gbtype do |t|
95
+ scope, prefix = get_prefix(node)
96
+ t.gbscope { |s| s << scope }
97
+ t.gbprefix { |p| p << prefix }
98
+ t.gbmandate { |m| m << get_mandate(node) }
99
+ end
100
+ end
101
+
102
+ def metadata_date(node, xml)
103
+ pubdate = node.attr("published-date")
104
+ activdate = node.attr("activated-date")
105
+ xml.date(pubdate, **{ type: "published" }) if pubdate
106
+ xml.date(activdate, **{ type: "activated" }) if activdate
107
+ end
108
+
109
+ def metadata_gblibraryids(node, xml)
110
+ ics = node.attr("library-ics")
111
+ l = node.attr("library-l")
112
+ if ics || l
113
+ xml.gblibraryids do |g|
114
+ xml.ics ics if ics
115
+ xml.l l if l
116
+ end
117
+ end
118
+ end
119
+
120
+ def metadata(node, xml)
121
+ title node, xml
122
+ metadata_id(node, xml)
123
+ metadata_date(node, xml)
124
+ metadata_author(node, xml)
125
+ metadata_publisher(node, xml)
126
+ xml.language (node.attr("language") || "zh")
127
+ xml.script (node.attr("script") || "Hans")
128
+ metadata_status(node, xml)
129
+ metadata_copyright(node, xml)
130
+ metadata_equivalence(node, xml)
131
+ metadata_obsoletes(node, xml)
132
+ metadata_committee(node, xml)
133
+ metadata_gbtype(node, xml)
134
+ metadata_gblibraryids(node, xml)
135
+ end
136
+
137
+ def title(node, xml)
138
+ ["en", "zh"].each do |lang|
139
+ xml.title do |t|
140
+ at = { language: lang, format: "plain" }
141
+ node.attr("title-intro-#{lang}") and
142
+ t.title_intro **attr_code(at) do |t1|
143
+ t1 << node.attr("title-intro-#{lang}")
144
+ end
145
+ t.title_main **attr_code(at) do |t1|
146
+ t1 << node.attr("title-main-#{lang}")
147
+ end
148
+ node.attr("title-part-#{lang}") and
149
+ t.title_part **attr_code(at) do |t1|
150
+ t1 << node.attr("title-part-#{lang}")
151
+ end
152
+ end
153
+ end
154
+ end
155
+
156
+ def title_intro_validate(root)
157
+ title_intro_en = root.at("//title-intro[@language='en']")
158
+ title_intro_zh = root.at("//title-intro[@language='zh']")
159
+ if title_intro_en.nil? && !title_intro_zh.nil?
160
+ warn "No English Title Intro!"
161
+ end
162
+ if !title_intro_en.nil? && title_intro_zh.nil?
163
+ warn "No Chinese Title Intro!"
164
+ end
165
+ end
166
+
167
+ def title_part_validate(root)
168
+ title_part_en = root.at("//title-part[@language='en']")
169
+ title_part_zh = root.at("//title-part[@language='zh']")
170
+ if title_part_en.nil? && !title_part_zh.nil?
171
+ warn "No English Title Part!"
172
+ end
173
+ if !title_part_en.nil? && title_part_zh.nil?
174
+ warn "No Chinese Title Part!"
175
+ end
176
+ end
177
+ end
178
+ end
179
+ end
@@ -0,0 +1,86 @@
1
+ require "isodoc"
2
+ require_relative "./xref_gen.rb"
3
+ require_relative "./metadata.rb"
4
+ require_relative "./agencies.rb"
5
+ require_relative "./section_output.rb"
6
+
7
+ module Asciidoctor
8
+ module Gb
9
+ # A {Converter} implementation that generates GB output, and a document
10
+ # schema encapsulation of the document for validation
11
+ class GbConvert < IsoDoc::Convert
12
+ def initialize(options)
13
+ super
14
+ end
15
+
16
+ def error_parse(node, out)
17
+ # catch elements not defined in ISO
18
+ case node.name
19
+ when "string" then string_parse(node, out)
20
+ else
21
+ super
22
+ end
23
+ end
24
+
25
+ def string_parse(node, out)
26
+ if node["script"] == "Hant"
27
+ out.span **{ class: "Hant" } do |s|
28
+ node.children.each { |c| parse(c, s) }
29
+ end
30
+ else
31
+ node.children.each { |c| parse(c, out) }
32
+ end
33
+ end
34
+
35
+ def fileloc(loc)
36
+ File.join(File.dirname(__FILE__), loc)
37
+ end
38
+
39
+ def generate_header(filename, dir)
40
+ super
41
+ system "cp #{fileloc(File.join('html', 'blank.png'))} blank.png"
42
+ end
43
+
44
+ def cleanup(docxml)
45
+ super
46
+ # intro_cleanup(docxml)
47
+ terms_cleanup(docxml)
48
+ end
49
+
50
+ def term_merge(docxml, term_class)
51
+ docxml.xpath("//p[@class = '#{term_class}']").each do |t|
52
+ t1 = t.next_element || next
53
+ if t1.name == "p" && t1["class"] == term_class
54
+ t.add_child(" ")
55
+ t.add_child(t1.remove.children)
56
+ end
57
+ end
58
+ end
59
+
60
+ def terms_cleanup(docxml)
61
+ term_merge(docxml, "Terms")
62
+ term_merge(docxml, "AltTerms")
63
+ term_merge(docxml, "DeprecatedTerms")
64
+ docxml
65
+ end
66
+
67
+ def intro_cleanup(docxml)
68
+ # insert tab for purposes of ToC lining up
69
+ docxml.xpath("//h1[@class = 'IntroTitle']").each do |h1|
70
+ if h1.content == "引言"
71
+ h1.add_child('<span style="mso-tab-count:1">&#xA0; </span>')
72
+ end
73
+ end
74
+ end
75
+
76
+ def toWord(result, filename, dir)
77
+ result = from_xhtml(word_cleanup(to_xhtml(result)))
78
+ result = populate_template(result, :word)
79
+ Html2Doc.process(result, filename: filename, stylesheet: @wordstylesheet,
80
+ header_file: "header.html", dir: dir,
81
+ asciimathdelims: [@openmathdelim, @closemathdelim],
82
+ liststyles: {ul: "l7", ol: "l10"})
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,297 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <!-- default namespace = "http://riboseinc.com/gbstandard" -->
4
+ <!--
5
+ Currently we inherit from a namespaced grammar, isostandard. Unless we inherit from isodoc,
6
+ we cannot have a new default namespace: we will end up with a grammar with two different
7
+ namespaces, one for isostandard and one for csd additions. And we do not want that.
8
+ -->
9
+ <include href="isostandard.rng">
10
+ <start>
11
+ <ref name="gb-standard"/>
12
+ </start>
13
+ <define name="language">
14
+ <element name="language">
15
+ <choice>
16
+ <value>zh</value>
17
+ <value>en</value>
18
+ </choice>
19
+ </element>
20
+ </define>
21
+ <define name="script">
22
+ <element name="script">
23
+ <choice>
24
+ <value>Hans</value>
25
+ <value>Latn</value>
26
+ </choice>
27
+ </element>
28
+ </define>
29
+ <define name="preferred">
30
+ <element name="preferred">
31
+ <ref name="ZhEnLocalizedString"/>
32
+ </element>
33
+ </define>
34
+ <define name="admitted">
35
+ <element name="admitted">
36
+ <ref name="ZhEnLocalizedString"/>
37
+ </element>
38
+ </define>
39
+ <define name="deprecates">
40
+ <element name="deprecates">
41
+ <ref name="ZhEnLocalizedString"/>
42
+ </element>
43
+ </define>
44
+ <define name="term">
45
+ <element name="term">
46
+ <optional>
47
+ <attribute name="id">
48
+ <data type="ID"/>
49
+ </attribute>
50
+ </optional>
51
+ <oneOrMore>
52
+ <ref name="preferred"/>
53
+ </oneOrMore>
54
+ <zeroOrMore>
55
+ <ref name="admitted"/>
56
+ </zeroOrMore>
57
+ <zeroOrMore>
58
+ <ref name="deprecates"/>
59
+ </zeroOrMore>
60
+ <optional>
61
+ <ref name="termdomain"/>
62
+ </optional>
63
+ <ref name="definition"/>
64
+ <zeroOrMore>
65
+ <ref name="termnote"/>
66
+ </zeroOrMore>
67
+ <zeroOrMore>
68
+ <ref name="termexample"/>
69
+ </zeroOrMore>
70
+ <zeroOrMore>
71
+ <ref name="termsource"/>
72
+ </zeroOrMore>
73
+ </element>
74
+ </define>
75
+ <define name="BibliographicItem">
76
+ <optional>
77
+ <attribute name="type">
78
+ <ref name="BibItemType"/>
79
+ </attribute>
80
+ </optional>
81
+ <choice>
82
+ <oneOrMore>
83
+ <ref name="btitle"/>
84
+ </oneOrMore>
85
+ <ref name="formattedref"/>
86
+ </choice>
87
+ <optional>
88
+ <ref name="source"/>
89
+ </optional>
90
+ <zeroOrMore>
91
+ <ref name="docidentifier"/>
92
+ </zeroOrMore>
93
+ <zeroOrMore>
94
+ <ref name="bdate"/>
95
+ </zeroOrMore>
96
+ <zeroOrMore>
97
+ <ref name="contributor"/>
98
+ </zeroOrMore>
99
+ <optional>
100
+ <ref name="edition"/>
101
+ </optional>
102
+ <zeroOrMore>
103
+ <ref name="biblionote"/>
104
+ </zeroOrMore>
105
+ <zeroOrMore>
106
+ <ref name="partof"/>
107
+ </zeroOrMore>
108
+ <zeroOrMore>
109
+ <ref name="language"/>
110
+ </zeroOrMore>
111
+ <zeroOrMore>
112
+ <ref name="script"/>
113
+ </zeroOrMore>
114
+ <optional>
115
+ <ref name="abstract"/>
116
+ </optional>
117
+ <optional>
118
+ <ref name="status"/>
119
+ </optional>
120
+ <optional>
121
+ <ref name="copyright"/>
122
+ </optional>
123
+ <zeroOrMore>
124
+ <ref name="docrelation"/>
125
+ </zeroOrMore>
126
+ <optional>
127
+ <ref name="editorialgroup"/>
128
+ </optional>
129
+ <optional>
130
+ <ref name="gbcommittee"/>
131
+ </optional>
132
+ <optional>
133
+ <ref name="gbtype"/>
134
+ </optional>
135
+ <optional>
136
+ <ref name="gblibraryids"/>
137
+ </optional>
138
+ </define>
139
+ <define name="BibData">
140
+ <optional>
141
+ <attribute name="type">
142
+ <ref name="BibItemType"/>
143
+ </attribute>
144
+ </optional>
145
+ <oneOrMore>
146
+ <ref name="btitle"/>
147
+ </oneOrMore>
148
+ <optional>
149
+ <ref name="formattedref"/>
150
+ </optional>
151
+ <optional>
152
+ <ref name="source"/>
153
+ </optional>
154
+ <zeroOrMore>
155
+ <ref name="docidentifier"/>
156
+ </zeroOrMore>
157
+ <zeroOrMore>
158
+ <ref name="bdate"/>
159
+ </zeroOrMore>
160
+ <zeroOrMore>
161
+ <ref name="contributor"/>
162
+ </zeroOrMore>
163
+ <optional>
164
+ <ref name="edition"/>
165
+ </optional>
166
+ <zeroOrMore>
167
+ <ref name="biblionote"/>
168
+ </zeroOrMore>
169
+ <zeroOrMore>
170
+ <ref name="partof"/>
171
+ </zeroOrMore>
172
+ <zeroOrMore>
173
+ <ref name="language"/>
174
+ </zeroOrMore>
175
+ <zeroOrMore>
176
+ <ref name="script"/>
177
+ </zeroOrMore>
178
+ <optional>
179
+ <ref name="abstract"/>
180
+ </optional>
181
+ <optional>
182
+ <ref name="status"/>
183
+ </optional>
184
+ <ref name="copyright"/>
185
+ <zeroOrMore>
186
+ <ref name="docrelation"/>
187
+ </zeroOrMore>
188
+ <optional>
189
+ <ref name="editorialgroup"/>
190
+ </optional>
191
+ <ref name="gbcommittee"/>
192
+ <ref name="gbtype"/>
193
+ <optional>
194
+ <ref name="gblibraryids"/>
195
+ </optional>
196
+ </define>
197
+ </include>
198
+ <!-- identical structure to iso-standard -->
199
+ <define name="gb-standard">
200
+ <element name="gb-standard">
201
+ <ref name="bibdata"/>
202
+ <optional>
203
+ <ref name="version"/>
204
+ </optional>
205
+ <ref name="foreword"/>
206
+ <optional>
207
+ <ref name="introduction"/>
208
+ </optional>
209
+ <oneOrMore>
210
+ <ref name="sections"/>
211
+ </oneOrMore>
212
+ <zeroOrMore>
213
+ <ref name="annex"/>
214
+ </zeroOrMore>
215
+ <oneOrMore>
216
+ <ref name="references"/>
217
+ </oneOrMore>
218
+ </element>
219
+ </define>
220
+ <define name="gblibraryids">
221
+ <element name="gblibraryids">
222
+ <ref name="gblibraryidics"/>
223
+ <ref name="gblibraryidl"/>
224
+ </element>
225
+ </define>
226
+ <define name="gblibraryidics">
227
+ <element name="ics">
228
+ <text/>
229
+ </element>
230
+ </define>
231
+ <define name="gblibraryidl">
232
+ <element name="l">
233
+ <text/>
234
+ </element>
235
+ </define>
236
+ <define name="gbcommittee">
237
+ <element name="gbcommittee">
238
+ <attribute name="type">
239
+ <choice>
240
+ <value>technical</value>
241
+ <value>provisional</value>
242
+ </choice>
243
+ </attribute>
244
+ <text/>
245
+ </element>
246
+ </define>
247
+ <define name="gbtype">
248
+ <element name="gbtype">
249
+ <ref name="gbscope"/>
250
+ <ref name="gbprefix"/>
251
+ <ref name="gbmandate"/>
252
+ </element>
253
+ </define>
254
+ <define name="gbscope">
255
+ <element name="gbscope">
256
+ <choice>
257
+ <value>national</value>
258
+ <value>sector</value>
259
+ <value>professional</value>
260
+ <value>local</value>
261
+ <value>enterprise</value>
262
+ </choice>
263
+ </element>
264
+ </define>
265
+ <define name="gbmandate">
266
+ <element name="gbmandate">
267
+ <choice>
268
+ <value>mandatory</value>
269
+ <value>recommended</value>
270
+ <value>guidelines</value>
271
+ </choice>
272
+ </element>
273
+ </define>
274
+ <define name="gbprefix">
275
+ <element name="gbprefix">
276
+ <text/>
277
+ </element>
278
+ </define>
279
+ <define name="ZhEnLocalizedString">
280
+ <!-- multiple languages and scripts possible: comma delimit them if so -->
281
+ <attribute name="language">
282
+ <choice>
283
+ <value>zh</value>
284
+ <value>en</value>
285
+ </choice>
286
+ </attribute>
287
+ <optional>
288
+ <attribute name="script">
289
+ <choice>
290
+ <value>Hans</value>
291
+ <value>Latn</value>
292
+ </choice>
293
+ </attribute>
294
+ </optional>
295
+ <text/>
296
+ </define>
297
+ </grammar>
Binary file
Binary file
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 133.2 66.6"><title>gb-standard-db</title><path d="M56.5,0H0V66.6H56.5A8.5,8.5,0,0,0,65,58.1V8.5A8.5,8.5,0,0,0,56.5,0ZM42.4,56.3a2.9,2.9,0,0,1-2.9,2.9H22.8V7.5H39.5a2.8,2.8,0,0,1,2.9,2.8Z"/><path d="M133.2,24.7V8.5A8.5,8.5,0,0,0,124.7,0H68.2V66.6h56.5a8.5,8.5,0,0,0,8.5-8.5V41.3a8.6,8.6,0,0,0-6.9-8.3A8.6,8.6,0,0,0,133.2,24.7ZM110.6,56.3a2.9,2.9,0,0,1-2.9,2.9H91.1v-22h16.6a2.9,2.9,0,0,1,2.9,2.8Zm0-29.6a2.9,2.9,0,0,1-2.9,2.9H91.1V7.5h16.6a2.8,2.8,0,0,1,2.9,2.8Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.1 117"><defs><style>.cls-1{fill:#fff;}.cls-1,.cls-2,.cls-3{stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.32px;}.cls-3{fill:none;}</style></defs><title>gb-standard-gb</title><path class="cls-1" d="M201.6,36.5c0,5.6-4.3,8.4-8.8,8.4H147.9L136,58.5h55.2c14,0,22.7-9.1,23.7-19.8.7-6.5-.9-14.1-6-19l-9.6,11A7.6,7.6,0,0,1,201.6,36.5Z"/><path class="cls-1" d="M133.6,102.7V14.6h61c6.4,0,11,2,14.3,5.1L218.1,9C212.5,4.1,204.4.7,192.8.7H120.1V116.3l13.6-13.6Z"/><path class="cls-1" d="M216.6,81.1c0-11.9-7.1-16-7.1-16a82,82,0,0,1-9.5,9.5,6.1,6.1,0,0,1,2.3,5c0,3.3-.7,8.9-12.3,8.9H147.9l-14.2,14.2h50.8C203.9,102.7,216.6,95.7,216.6,81.1Z"/><path class="cls-2" d="M223.1,56.7s8.3-11.6,7-23.5c-.8-7.1-3.8-17.2-12-24.2l-9.2,10.7c5.1,4.9,6.7,12.5,6,19-1,10.7-9.7,19.8-23.7,19.8H136l11.9-13.6V28.6h44.9a9.4,9.4,0,0,1,6.5,2.1l9.6-11c-3.3-3.1-7.9-5.1-14.3-5.1h-61v88.1h.1l14.2-14.2V72.8h44.9c3.5,0,5.8.7,7.2,1.8a82,82,0,0,0,9.5-9.5s7.1,4.1,7.1,16c0,14.6-12.7,21.6-32.1,21.6H133.7l-13.6,13.6h72.7c20.6,0,35-13.6,37.4-25.5S232.1,67,223.1,56.7Z"/><line class="cls-3" x1="133.6" y1="14.6" x2="120.1" y2="0.7"/><polygon class="cls-2" points="70.9 59.6 57.8 74.7 85.1 74.7 98.8 59.6 70.9 59.6"/><path class="cls-2" d="M52,15.9c-8.8,0-35,9.3-36,38-.6,16,4.3,28.2,11.3,36.3l10.8-9.8c-5.2-4.8-9.2-12.2-9.2-23.1,0-21.4,21-27.3,28.9-27.3H113L98.8,15.9Z"/><path class="cls-1" d="M49.8,101.6h49v-42L85.1,74.7V88.5H57.8a31,31,0,0,1-19.7-8.1L27.3,90.2C33.8,97.6,42.2,101.6,49.8,101.6Z"/><polygon class="cls-1" points="57.8 45.4 57.8 74.7 70.9 59.6 98.8 59.6 113 45.4 85.1 45.4 57.8 45.4"/><path class="cls-2" d="M98.8,101.6h-49c-7.6,0-16-4-22.5-11.4L17,99.5c9.3,10.1,22.7,16.8,40.8,16.8H113V45.4L98.8,59.6Z"/><path class="cls-1" d="M16,53.9c1-28.7,27.2-38,36-38H98.8L113,30V.7H57.8C34.2.7.7,22,.7,52.9.7,69.8,5.8,87.2,17,99.5l10.3-9.3C20.3,82.1,15.4,69.9,16,53.9Z"/><line class="cls-3" x1="57.8" y1="45.4" x2="70.9" y2="59.6"/><line class="cls-3" x1="85.1" y1="88.5" x2="98.8" y2="101.6"/><line class="cls-3" x1="98.8" y1="15.9" x2="113" y2="0.7"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.2 88.4"><defs><style>.cls-1{fill:#fff;}.cls-1,.cls-2,.cls-3{stroke:#000;stroke-linecap:round;stroke-linejoin:round;}.cls-3{fill:none;}</style></defs><title>gb-standard-gjb</title><path class="cls-1" d="M209.1,27.6c0,4.2-3.3,6.4-6.7,6.4H168.5l-9,10.2h41.7c10.6,0,17.2-6.9,18-14.9.5-4.9-.7-10.7-4.6-14.4l-7.2,8.3A5.9,5.9,0,0,1,209.1,27.6Z"/><path class="cls-1" d="M157.7,77.6V11h46.1a15.4,15.4,0,0,1,10.8,3.9l7-8.1C217.3,3.1,211.2.5,202.4.5H147.5V87.9l10.3-10.3Z"/><path class="cls-1" d="M220.4,61.3c0-9-5.3-12.1-5.3-12.1a70.7,70.7,0,0,1-7.2,7.2,4.5,4.5,0,0,1,1.7,3.7c0,2.5-.5,6.8-9.3,6.8H168.5L157.8,77.6h38.4C210.9,77.6,220.4,72.3,220.4,61.3Z"/><path class="cls-2" d="M225.4,42.9s6.2-8.8,5.2-17.8c-.6-5.4-2.8-13-9-18.3l-7,8.1c3.9,3.7,5.1,9.5,4.6,14.4-.8,8-7.4,14.9-18,14.9H159.5l9-10.2V21.6h33.9a7.5,7.5,0,0,1,5,1.6l7.2-8.3A15.4,15.4,0,0,0,203.8,11H157.7V77.6h.1l10.7-10.7V55h33.9a9.1,9.1,0,0,1,5.5,1.4,70.7,70.7,0,0,0,7.2-7.2s5.3,3.1,5.3,12.1c0,11-9.5,16.3-24.2,16.3H157.8L147.5,87.9h54.9c15.6,0,26.5-10.3,28.3-19.3S232.1,50.6,225.4,42.9Z"/><line class="cls-3" x1="157.7" y1="11" x2="147.5" y2="0.5"/><path class="cls-2" d="M121.4,87.9c10.3,0,20.3-12.1,20.3-24.5V.5h-21V57.6c0,3.9,0,9.3-7.3,9.3H87.7v21h33.7Z"/><path class="cls-1" d="M120.7,57.6c0,3.9,0,9.3-7.3,9.3H87.7v21L98.8,77.4h19.3c8.3,0,13.3-6,13.3-19V11L141.7.5h-21Z"/><line class="cls-3" x1="131.4" y1="11" x2="120.7" y2="0.5"/><line class="cls-3" x1="98.8" y1="77.4" x2="87.7" y2="66.9"/><polygon class="cls-2" points="51.4 45.1 41.5 56.5 62.2 56.5 72.5 45.1 51.4 45.1"/><path class="cls-2" d="M39.3,12c-6.6,0-26.5,7-27.2,28.7-.4,12.1,3.2,21.4,8.5,27.4l8.2-7.3c-3.9-3.7-7-9.3-7-17.5,0-16.2,15.9-20.6,21.9-20.6H83.3L72.6,12Z"/><path class="cls-1" d="M37.6,76.7h35V45.1L62.2,56.5V66.9H43.7a23.8,23.8,0,0,1-14.9-6.1l-8.2,7.3C25.6,73.8,31.9,76.7,37.6,76.7Z"/><polygon class="cls-1" points="41.5 34.3 41.5 56.5 51.4 45.1 72.5 45.1 83.3 34.3 62.2 34.3 41.5 34.3"/><path class="cls-2" d="M72.6,76.7h-35c-5.7,0-12-2.9-17-8.6l-7.7,7.1c7,7.7,17.1,12.7,30.8,12.7H83.3V34.3L72.6,45.1Z"/><path class="cls-1" d="M12.1,40.7C12.8,19,32.7,12,39.3,12H72.6L83.3,22.7V.5H43.7C25.9.5.5,16.6.5,40c0,12.8,3.9,25.9,12.4,35.2l7.7-7.1C15.3,62.1,11.7,52.8,12.1,40.7Z"/><line class="cls-3" x1="41.5" y1="34.3" x2="51.4" y2="45.1"/><line class="cls-3" x1="62.2" y1="66.9" x2="72.6" y2="76.7"/><line class="cls-3" x1="72.6" y1="12" x2="83.3" y2="0.5"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 187.2 95.1"><title>gb-standard-gm</title><polygon points="160 0 141.8 32.9 123.6 0 96.3 0 96.3 11.3 96.3 95.1 123.6 95.1 123.6 60.7 125 63.3 141.8 93.6 158.5 63.3 160 60.7 160 95.1 187.2 95.1 187.2 11.3 187.2 0 160 0"/><path d="M81.3,0H9.9A10,10,0,0,0,0,9.9V85.2a9.9,9.9,0,0,0,9.9,9.9h43a9.9,9.9,0,0,0,6.8-2.7v2.7H91.2V43.2H48.8v9.5H59.7V78.9A5.7,5.7,0,0,1,54,84.5H37.2a5.7,5.7,0,0,1-5.7-5.6V16.3a5.8,5.8,0,0,1,5.7-5.7H54a5.8,5.8,0,0,1,5.7,5.7V31.2H91.2V9.9A10,10,0,0,0,81.3,0Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 226.8 89.6"><defs><style>.cls-1,.cls-2,.cls-3{stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.2px;}.cls-2{fill:#fff;}.cls-3{fill:none;}</style></defs><title>gb-standard-jjf</title><polygon class="cls-1" points="84.3 12.3 75.1 23.9 144.4 23.9 144.4 0.6 133.7 12.3 84.3 12.3"/><polygon class="cls-2" points="75.1 23.9 84.3 12.3 133.7 12.3 144.4 0.6 75.1 0.6 75.1 23.9"/><path class="cls-2" d="M92,73.6c2.6,2.2,6.2,3.4,11.3,3.4,13.4,0,19.1-7.3,19.1-22.2V13.5L110.7,23.7V62s-1,4.6-5.5,4.6a7.5,7.5,0,0,1-3.9-1h0Z" transform="translate(0)"/><path class="cls-1" d="M86.8,57c0,7.1,1.2,13,5.2,16.6l9.3-8h0c-1.9-1.1-2.8-3.3-2.8-6.2V44L86.8,51.7Z" transform="translate(0)"/><path class="cls-1" d="M110.7,12.3V23.7l11.7-10.2V54.8c0,14.9-5.7,22.2-19.1,22.2-5.1,0-8.7-1.2-11.3-3.4l-7.9,6.8c5,4.5,12,7.4,20.8,7.4,19,0,29.1-14.2,29.1-25.8V12.3Z" transform="translate(0)"/><path class="cls-2" d="M86.8,57V51.7L98.5,44H75.1V59.4a28.7,28.7,0,0,0,9,21L92,73.6C88,70,86.8,64.1,86.8,57Z" transform="translate(0)"/><polyline class="cls-3" points="88.4 53.6 86.8 51.7 75.1 44"/><line class="cls-3" x1="84.3" y1="12.3" x2="75.1" y2="0.6"/><polygon class="cls-1" points="9.8 12.3 0.6 23.9 69.9 23.9 69.9 0.6 59.1 12.3 9.8 12.3"/><polygon class="cls-2" points="0.6 23.9 9.8 12.3 59.1 12.3 69.9 0.6 0.6 0.6 0.6 23.9"/><path class="cls-2" d="M17.5,73.6C20,75.8,23.7,77,28.8,77c13.4,0,19-7.3,19-22.2V13.5L36.2,23.7V62s-1.1,4.6-5.5,4.6a8.2,8.2,0,0,1-4-1h0Z" transform="translate(0)"/><path class="cls-1" d="M12.3,57c0,7.1,1.2,13,5.2,16.6l9.2-8h0c-1.8-1.1-2.8-3.3-2.8-6.2V44L12.3,51.7Z" transform="translate(0)"/><path class="cls-1" d="M36.2,12.3V23.7L47.8,13.5V54.8c0,14.9-5.6,22.2-19,22.2-5.1,0-8.8-1.2-11.3-3.4L9.6,80.4c5,4.5,12,7.4,20.7,7.4,19,0,29.2-14.2,29.2-25.8V12.3Z" transform="translate(0)"/><path class="cls-2" d="M12.3,57V51.7L23.9,44H.6V59.4a28.4,28.4,0,0,0,9,21l7.9-6.8C13.5,70,12.3,64.1,12.3,57Z" transform="translate(0)"/><polyline class="cls-3" points="13.9 53.6 12.3 51.7 0.6 44"/><line class="cls-3" x1="9.8" y1="12.3" x2="0.6" y2="0.6"/><polygon class="cls-1" points="226.2 0.6 173.4 0.6 152.4 0.6 149.1 0.6 149.1 89 173.4 89 173.4 24.9 226.2 24.9 226.2 0.6"/><rect class="cls-1" x="161.3" y="36.6" width="64.9" height="24.33"/><polygon class="cls-2" points="162.1 48.8 216.1 48.8 226.2 36.6 173.4 36.6 162.1 48.8"/><polygon class="cls-2" points="152.4 0.6 149.1 0.6 149.1 89 161.3 79.1 161.3 12.3 216.8 12.3 226.2 0.6 173.4 0.6 152.4 0.6"/><line class="cls-3" x1="161.3" y1="12.3" x2="149.1" y2="0.6"/></svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 22.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 157.1 81.9" style="enable-background:new 0 0 157.1 81.9;" xml:space="preserve">
5
+ <g>
6
+ <rect x="80.8" width="32.2" height="81.9"/>
7
+ <polygon points="74.9,46.2 42.7,81.9 74.9,81.9 "/>
8
+ <polygon points="33.6,0 0,0 0,37.8 "/>
9
+ <path d="M157.1,61.1c0-8.6-6-17.5-15.4-21c7.7-1.1,14.6-10.4,14.6-21.2c0-10.8-9.5-19-27.7-19h-11.7v81.1
10
+ c5.3,0.4,11.4,0.8,17.7,0.8C153,81.9,157.1,69.8,157.1,61.1z"/>
11
+ <polygon points="75.6,0 40.6,0 0,81.9 35,81.9 "/>
12
+ </g>
13
+ </svg>