mirror of
https://github.com/SharpeTronics/jekyll-spaceship.git
synced 2025-12-21 00:03:17 -05:00
feat: support reference style link in table
This commit is contained in:
parent
5f7e3edb6a
commit
07fc41e490
@ -6,6 +6,23 @@ require "nokogiri"
|
|||||||
module Jekyll::Spaceship
|
module Jekyll::Spaceship
|
||||||
class TableProcessor < Processor
|
class TableProcessor < Processor
|
||||||
def on_handle_markdown(content)
|
def on_handle_markdown(content)
|
||||||
|
# pre-handle reference-style links
|
||||||
|
references = {}
|
||||||
|
content.scan(/(\[(.*)\]:\s*(.*))/) do |match_data|
|
||||||
|
ref_name = match_data[1]
|
||||||
|
ref_value = match_data[2]
|
||||||
|
references[ref_name] = ref_value
|
||||||
|
end
|
||||||
|
if references.size > 0
|
||||||
|
content.scan(/.*(?<!\\)\|.*/) do |result|
|
||||||
|
references.each do |key, val|
|
||||||
|
replace = result.gsub(/\[(.*)\]\s*\[#{key}\]/, "[\1](#{val})")
|
||||||
|
next if result == replace
|
||||||
|
content = content.gsub(result, replace)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# escape | and :
|
# escape | and :
|
||||||
content = content.gsub(/\|(?=\|)/, '\\|')
|
content = content.gsub(/\|(?=\|)/, '\\|')
|
||||||
.gsub(/\\:(?=.*?(?<!\\)\|)/, '\\\\\\\\:')
|
.gsub(/\\:(?=.*?(?<!\\)\|)/, '\\\\\\\\:')
|
||||||
@ -15,13 +32,10 @@ module Jekyll::Spaceship
|
|||||||
content.scan(/.*(?<!\\)\|.*/) do |result|
|
content.scan(/.*(?<!\\)\|.*/) do |result|
|
||||||
replace = result.gsub(
|
replace = result.gsub(
|
||||||
/(?<!(?<!\\)\\)(\*|\$|\[|\(|\"|_)/,
|
/(?<!(?<!\\)\\)(\*|\$|\[|\(|\"|_)/,
|
||||||
'\\\\\\\\\1'
|
'\\\\\\\\\1')
|
||||||
)
|
next if result == replace
|
||||||
if result != replace
|
content = content.gsub(result, replace)
|
||||||
content = content.gsub(result, replace)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
content
|
content
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user