nexmo_markdown_renderer 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/code_languages.yml +9 -0
  4. data/lib/nexmo_markdown_renderer.rb +3 -0
  5. data/lib/nexmo_markdown_renderer/filters/code_snippet/renderable.rb +2 -0
  6. data/lib/nexmo_markdown_renderer/filters/i18n/frontmatter_filter.rb +1 -2
  7. data/lib/nexmo_markdown_renderer/filters/i18n/smartling/code_block_filter.rb +20 -0
  8. data/lib/nexmo_markdown_renderer/filters/i18n/smartling/escape_filter.rb +13 -0
  9. data/lib/nexmo_markdown_renderer/filters/i18n/smartling/frontmatter_filter.rb +22 -0
  10. data/lib/nexmo_markdown_renderer/filters/markdown_filter.rb +3 -1
  11. data/lib/nexmo_markdown_renderer/filters/tooltip_filter.rb +1 -1
  12. data/lib/nexmo_markdown_renderer/pipelines/smartling/download.rb +17 -0
  13. data/lib/nexmo_markdown_renderer/pipelines/smartling/preprocessor.rb +15 -0
  14. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/go.rb +23 -0
  15. data/lib/nexmo_markdown_renderer/views/code_snippets/_application_messages_dispatch.html.erb +4 -4
  16. data/lib/nexmo_markdown_renderer/views/code_snippets/_application_rtc.html.erb +4 -4
  17. data/lib/nexmo_markdown_renderer/views/code_snippets/_application_voice.html.erb +4 -4
  18. data/lib/nexmo_markdown_renderer/views/code_snippets/_configure_client.html.erb +5 -5
  19. data/lib/nexmo_markdown_renderer/views/code_snippets/_dependencies.html.erb +3 -3
  20. data/lib/nexmo_markdown_renderer/views/code_snippets/_import_dependencies.html.erb +4 -4
  21. data/lib/version.rb +1 -1
  22. metadata +8 -3
  23. data/lib/nexmo_markdown_renderer/filters/i18n/smartling_converter_filter.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e59f591809378750a638211130816a1078cbec2c59554d8c17f32614bc2a6e6
4
- data.tar.gz: c02910693d90ed94f3527142b8e240287ebb30203629419ee0aae5168c5c09bc
3
+ metadata.gz: 4c9303cbd50b27ad02c68444daff15f65f3c3150f052bbfae839ee83e208f2f3
4
+ data.tar.gz: 6598a455b0b1a5bc07e5f05b0425db82bcfd1d980f9a43e7b6455ec73e5c8258
5
5
  SHA512:
6
- metadata.gz: e099d0cccd97ef619df411cb603469295e1d76b7b2e0bf9c42bb02a18b72219b221046878e78a8718b567c6d47529f302566bad9569fcd04db0c627e69d205ea
7
- data.tar.gz: 79f005800a2711e02020a343ef60d87878023623bc632769af4e79b1f1eda00bc8d34e42576ca2565b3948cc19f6b7cacdf1a7b1a45ad7c9c9c7af1180523b6c
6
+ metadata.gz: 5c2bb7bf7351edeee752c0ee34f93c7ac2610df41ad78aa0642b7070b3f5a3675254343c52285de3f879c195a5ff78c186f2e7bcee60a712661b4b704a2d25dc
7
+ data.tar.gz: d82606e5cb6920496674fd3aba4888e5b874b5dcbdad38f35f6c24ccbe1ef24c8069acb84afb338477df6068404f9c4b283ad9fdb694652cb6d689329110cf56
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Nexmo Markdown Renderer
2
2
 
3
- [![Build Status](https://api.travis-ci.org/Nexmo/nexmo-markdown-renderer.svg?branch=master)](https://travis-ci.org/Nexmo/nexmo-markdown-renderer/)
3
+ ![Build Status](https://github.com/Nexmo/nexmo-markdown-renderer/workflows/CI/badge.svg)
4
4
  [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.txt)
5
5
 
6
6
  This gem facilitates the presentation of markdown documents in a Rails app by applying custom filters for tabs, code snippets, icons, indentation and more. It is used in the [Nexmo Developer Platform](https://developer.nexmo.com).
@@ -109,6 +109,15 @@ languages:
109
109
  icon: ios
110
110
  dependencies: []
111
111
 
112
+ go:
113
+ weight: 12
114
+ label: Go
115
+ lexer: go
116
+ icon: curl
117
+ dependencies:
118
+ - 'vonage/vonage-go-sdk'
119
+ run_command: 'go run {filename}'
120
+
112
121
  platforms:
113
122
  ios:
114
123
  languages:
@@ -24,6 +24,7 @@ require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/php'
24
24
  require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/python'
25
25
  require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/ruby'
26
26
  require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/swift'
27
+ require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/go'
27
28
 
28
29
  require_relative 'nexmo_markdown_renderer/services/doc_finder'
29
30
  require_relative 'nexmo_markdown_renderer/services/doc_finder/doc'
@@ -50,4 +51,6 @@ require_relative 'nexmo_markdown_renderer/filters/code_snippet/run'
50
51
  Dir[File.join(__dir__, 'nexmo_markdown_renderer/filters/concerns', '*.rb')].each { |file| require_relative file }
51
52
  Dir[File.join(__dir__, 'nexmo_markdown_renderer/filters', '*.rb')].each { |file| require_relative file }
52
53
  Dir[File.join(__dir__, 'nexmo_markdown_renderer/filters/i18n', '*.rb')].each { |file| require_relative file }
54
+ Dir[File.join(__dir__, 'nexmo_markdown_renderer/filters/i18n/smartling', '*.rb')].each { |file| require_relative file }
55
+ Dir[File.join(__dir__, 'nexmo_markdown_renderer/pipelines/smartling', '*.rb')].each { |file| require_relative file }
53
56
  require_relative 'nexmo_markdown_renderer/markdown_renderer'
@@ -43,6 +43,8 @@ module Nexmo
43
43
  Nexmo::Markdown::CodeSnippetRenderer::ObjectiveC
44
44
  when 'swift'
45
45
  Nexmo::Markdown::CodeSnippetRenderer::Swift
46
+ when 'go'
47
+ Nexmo::Markdown::CodeSnippetRenderer::Go
46
48
  else
47
49
  raise "Unknown language: #{normalized_language}"
48
50
  end
@@ -11,6 +11,5 @@ module Nexmo
11
11
  end
12
12
  end
13
13
  end
14
-
15
14
  end
16
- end
15
+ end
@@ -0,0 +1,20 @@
1
+ module Nexmo
2
+ module Markdown
3
+ module I18n
4
+ module Smartling
5
+ class CodeBlockFilter < Banzai::Filter
6
+ def call(input)
7
+ input.gsub(/\n\n\s{4}(.*?)\n\n/m) do
8
+ <<~CODE_BLOCK
9
+
10
+ ````
11
+ #{$1.split(/\n\s{4}/).join("\n")}
12
+ ````
13
+ CODE_BLOCK
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ module Nexmo
2
+ module Markdown
3
+ module I18n
4
+ module Smartling
5
+ class EscapeFilter < Banzai::Filter
6
+ def call(input)
7
+ input.gsub('\-', '-').gsub('\|', '|').gsub('\[', '[').gsub('\]', ']').gsub('\(', '(').gsub('\)', ')').gsub(/^>\s\n+/, "\n")
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ module Nexmo
2
+ module Markdown
3
+ module I18n
4
+ module Smartling
5
+ class FrontmatterFilter < Banzai::Filter
6
+ def call(input)
7
+ input.gsub(/\A\*\*\* \*\* \* \*\* \*\*\*\n*([^-]*)\n*-+/m) do |_frontmatter|
8
+ front = $1.gsub(/`(.*):`(.*)/) do |_config|
9
+ "#{$1}: #{$2}"
10
+ end
11
+ <<~FRONTMATTER
12
+ ---
13
+ #{front}
14
+ ---
15
+ FRONTMATTER
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -63,7 +63,9 @@ module Nexmo
63
63
  '<figure>' \
64
64
  '<img src="'\
65
65
  "#{link}"\
66
- '" alt="#{alt_text}">' \
66
+ '" alt="'\
67
+ "#{_alt_text}"\
68
+ '">' \
67
69
  '</figure>'
68
70
  end
69
71
 
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  class TooltipFilter < Banzai::Filter
4
4
  def call(input)
5
- input.gsub(/\^\[([a-zA-Z0-9\s:\-]+)\]\((.+?)\)/) do
5
+ input.gsub(/\^\[([\p{Han}a-zA-Z0-9\s:\-]+)\]\((.+?)\)/) do
6
6
  tooltip = <<~HEREDOC
7
7
  <span class="Vlt-tooltip Vlt-tooltip--top" title="#{$2}" tabindex="0">
8
8
  #{$1}&nbsp;
@@ -0,0 +1,17 @@
1
+ module Nexmo
2
+ module Markdown
3
+ module Pipelines
4
+ module Smartling
5
+ class Download < Banzai::Pipeline
6
+ def initialize(_options = {})
7
+ super(
8
+ I18n::Smartling::FrontmatterFilter,
9
+ I18n::Smartling::EscapeFilter,
10
+ I18n::Smartling::CodeBlockFilter
11
+ )
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ module Nexmo
2
+ module Markdown
3
+ module Pipelines
4
+ module Smartling
5
+ class Preprocessor < Banzai::Pipeline
6
+ def initialize(_options = {})
7
+ super(
8
+ I18n::FrontmatterFilter
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ module Nexmo
2
+ module Markdown
3
+ module CodeSnippetRenderer
4
+ class Go < Base
5
+ def self.dependencies(deps, _version)
6
+ { 'code' => "go get #{deps.join(' ')}" }
7
+ end
8
+
9
+ def self.run_command(command, _filename, _file_path)
10
+ ::I18n.t('services.code_snippet_renderer.run_command', command: command)
11
+ end
12
+
13
+ def self.create_instructions(filename)
14
+ ::I18n.t('services.code_snippet_renderer.create_instructions', filename: filename)
15
+ end
16
+
17
+ def self.add_instructions(_filename)
18
+ ::I18n.t('services.code_snippet_renderer.add_instructions_to_code')
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
3
  <%= app['use_existing'] ? ::I18n.t('.code_snippets.use_your_app') : ::I18n.t('.code_snippets.create_an_app') %>
4
- </h5>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <%= ::I18n.t('.code_snippets.application_messages_dispatch.no_application_html') %>
8
8
  </div>
9
9
  </div>
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
3
  <%= ::I18n.t('.code_snippets.create_an_app') %>
4
- </h5>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <p><%= ::I18n.t('.code_snippets.nexmo_application_contains_html') %></p>
8
8
  <h4><%= ::I18n.t('.code_snippets.install_the_cli') %></h4>
9
9
  <pre class="Vlt-prism--dark dependencies command-line Vlt-prism--copy-disabled language-bash" data-prompt='$'><code>npm install -g nexmo-cli</code></pre>
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
3
  <%= app['use_existing'] ? ::I18n.t('.code_snippets.use_your_app') : ::I18n.t('.code_snippets.create_an_app') %>
4
- </h5>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <% if app['use_existing'] %>
8
8
  <p><%= app['use_existing'] %></p>
9
9
  <% else %>
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
- <%= ::I18n.t('.code_snippets.configure_client.initialize_dependencies') %>
4
- </h5>
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
+ <%= ::I18n.t('.code_snippets.configure_client.initialize_dependencies') %>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <%= create_instructions %>
8
8
  <div class="copy-wrapper">
9
9
 
@@ -1,7 +1,7 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0"><%= title %></h5>
1
+ <div class="Vlt-box Vlt-box--lesspadding Vlt-accordion Nxd-accordion-emphasis">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0"><%= title %></button>
3
3
 
4
- <div id="acc<%= id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
4
+ <div id="acc<%= id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
5
5
  <p><%=deps['text']%></p>
6
6
  <% if deps['code'] %>
7
7
  <pre class="Vlt-prism--dark language-<%= deps['type'] || 'bash' %> dependencies command-line Vlt-prism--copy-disabled" data-prompt='$'><code><%=deps['code']%></code></pre>
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
3
  <%= ::I18n.t('.code_snippets.configure_client.import_dependencies') %>
4
- </h5>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <%= create_instructions %>
8
8
  <div class="copy-wrapper">
9
9
 
@@ -1,7 +1,7 @@
1
1
  # :nocov:
2
2
  module Nexmo
3
3
  module Markdown
4
- VERSION = '0.4.2'
4
+ VERSION = '0.5.0'
5
5
  end
6
6
  end
7
7
  # :nocov:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexmo_markdown_renderer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nexmo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-09 00:00:00.000000000 Z
11
+ date: 2020-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: banzai
@@ -260,7 +260,9 @@ files:
260
260
  - lib/nexmo_markdown_renderer/filters/frontmatter_filter.rb
261
261
  - lib/nexmo_markdown_renderer/filters/heading_filter.rb
262
262
  - lib/nexmo_markdown_renderer/filters/i18n/frontmatter_filter.rb
263
- - lib/nexmo_markdown_renderer/filters/i18n/smartling_converter_filter.rb
263
+ - lib/nexmo_markdown_renderer/filters/i18n/smartling/code_block_filter.rb
264
+ - lib/nexmo_markdown_renderer/filters/i18n/smartling/escape_filter.rb
265
+ - lib/nexmo_markdown_renderer/filters/i18n/smartling/frontmatter_filter.rb
264
266
  - lib/nexmo_markdown_renderer/filters/icon_filter.rb
265
267
  - lib/nexmo_markdown_renderer/filters/indent_filter.rb
266
268
  - lib/nexmo_markdown_renderer/filters/inline_escape_filter.rb
@@ -293,10 +295,13 @@ files:
293
295
  - lib/nexmo_markdown_renderer/models/tutorial/prerequisite.rb
294
296
  - lib/nexmo_markdown_renderer/models/tutorial/task.rb
295
297
  - lib/nexmo_markdown_renderer/models/use_case.rb
298
+ - lib/nexmo_markdown_renderer/pipelines/smartling/download.rb
299
+ - lib/nexmo_markdown_renderer/pipelines/smartling/preprocessor.rb
296
300
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/android.rb
297
301
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/base.rb
298
302
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/curl.rb
299
303
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/dotnet.rb
304
+ - lib/nexmo_markdown_renderer/services/code_snippet_renderer/go.rb
300
305
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/java.rb
301
306
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/javascript.rb
302
307
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/kotlin.rb
@@ -1,22 +0,0 @@
1
- module Nexmo
2
- module Markdown
3
- module I18n
4
- class SmartlingConverterFilter < Banzai::Filter
5
- def call(input)
6
- input = input.gsub(/\A\*\*\* \*\* \* \*\* \*\*\*\n*(.*)\n*------------------------------------------/m) do |_frontmatter|
7
- front = $1.gsub(/`(.*):`(.*)/) do |_config|
8
- "#{$1}:#{$2}"
9
- end
10
- <<~FRONTMATTER
11
- ---
12
- #{front}
13
- ---
14
- FRONTMATTER
15
- end
16
- input.gsub('\-', '-').gsub('\|', '|')
17
- end
18
- end
19
- end
20
-
21
- end
22
- end