nexmo_markdown_renderer 0.4.2 → 0.5.0

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