Sha256: d405222bbaae451c291537a6c1e1fb3842ca3538ce1a9c1a827db880260ee954
Contents?: true
Size: 1.77 KB
Versions: 1
Compression:
Stored size: 1.77 KB
Contents
require "md2pukiwiki/version" module Md2pukiwiki def self.convert(text) decorated_type = %w{bold italic strikethrough} prefixed_type = %w{header list numbered_list} special_type = %w{image link} text.lines.map do |line| new_line = line.chomp [decorated_type, prefixed_type, special_type].flatten.each do |type| new_line = self.send("convert_#{type}", new_line) end new_line end.join("\n") end private # "# header" => "*header" def self.convert_header(line) if /\A(?<sharps>#+) (?<header>.+)\z/ =~ line "#{'*' * sharps.length}#{header}" else line end end # "* list" => "- list" def self.convert_list(line) if /\A(?<spaces>\s*)\* (?<list>.+)\z/ =~ line "#{'-' * (spaces.length / 4 + 1)} #{list}" else line end end # "1. list" => "+ list" def self.convert_numbered_list(line) if /\A(?<spaces>\s*)\d+\. (?<list>.+)\z/ =~ line "#{'+' * (spaces.length / 4 + 1)} #{list}" else line end end # "**bold**" => "''bold''" def self.convert_bold(line) line.gsub(/(?:\*{2}|_{2})(?<bold>.+?)(?:\*{2}|_{2})/, "''\\k<bold>''") end # "*italic*" => "'''italic'''" def self.convert_italic(line) line.gsub(/(?:\*{1}|_{1})(?<italic>.+?)(?:\*{1}|_{1})/, "'''\\k<italic>'''") end # "~~strikethrough~~" => "%%strikethrough%%" def self.convert_strikethrough(line) line.gsub(/~{2}(?<strikethrough>.+?)~{2}/, '%%\k<strikethrough>%%') end # "" => "#ref(image,text)" def self.convert_image(line) line.gsub(/!\[(?<text>.+?)\]\((?<image>.+?)\)/, '#ref(\k<image>,\k<text>)') end # "[text](link)" => "[[text:link]]" def self.convert_link(line) line.gsub(/\[(?<text>.+?)\]\((?<link>.+?)\)/, '[[\k<text>:\k<link>]]') end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
md2pukiwiki-0.0.2 | lib/md2pukiwiki.rb |