mirror of https://github.com/rails/rails
Remove example filepaths from code blocks in guides
Some code examples use commented out paths for the path where the code should be written to. These paths can be ignored in the clipboard when using the "copy" button. Co-authored-by: Carlos Antonio da Silva <carlosantoniodasilva@gmail.com>
This commit is contained in:
parent
d37c533139
commit
56a759a22b
|
@ -8,6 +8,10 @@ Rouge::Lexers::Shell::BUILTINS << "|bin/rails|brew|bundle|gem|git|node|rails|rak
|
|||
module RailsGuides
|
||||
class Markdown
|
||||
class Renderer < Redcarpet::Render::HTML # :nodoc:
|
||||
APPLICATION_FILEPATH_REGEXP = /(app|config|db|lib|test)\//
|
||||
ERB_FILEPATH_REGEXP = /^<%# #{APPLICATION_FILEPATH_REGEXP}.* %>/o
|
||||
RUBY_FILEPATH_REGEXP = /^# #{APPLICATION_FILEPATH_REGEXP}/o
|
||||
|
||||
cattr_accessor :edge, :version
|
||||
|
||||
def block_code(code, language)
|
||||
|
@ -78,6 +82,7 @@ module RailsGuides
|
|||
end
|
||||
|
||||
def clipboard_content(code, language)
|
||||
# Remove prompt and results of commands.
|
||||
prompt_regexp =
|
||||
case language
|
||||
when "bash"
|
||||
|
@ -90,6 +95,19 @@ module RailsGuides
|
|||
code = code.lines.grep(prompt_regexp).join.gsub(prompt_regexp, "")
|
||||
end
|
||||
|
||||
# Remove comments that reference an application file.
|
||||
filepath_regexp =
|
||||
case language
|
||||
when "erb", "html+erb"
|
||||
ERB_FILEPATH_REGEXP
|
||||
when "ruby", "yaml", "yml"
|
||||
RUBY_FILEPATH_REGEXP
|
||||
end
|
||||
|
||||
if filepath_regexp
|
||||
code = code.lines.grep_v(filepath_regexp).join
|
||||
end
|
||||
|
||||
ERB::Util.html_escape(code)
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue