Loading gitlabFilter/grid_table_filter.rb +14 −10 Original line number Diff line number Diff line Loading @@ -352,17 +352,17 @@ module Banzai raise "Misaligned delimiters in partial separator: #{line}" unless check_delimiter_alignment(line, delimiter_positions) cells_content = line.strip.gsub(/^(\+|\|)/, '').split(/[\|\+]/) parts = line.strip.gsub(/^(\+|\|)/, '').split(/[\|\+]/) rows << Row.new(number_of_columns) aux_delimiter_index = 0 auxiliar_cell_index = 0 cells_content.each_with_index do |_, i| parts.each_with_index do |_, i| next unless auxiliar_cell_index < number_of_columns aux_delimiter_index += cells_content[i].length + 1 rows[-1][auxiliar_cell_index].position_start = aux_delimiter_index - cells_content[i].length aux_delimiter_index += parts[i].length + 1 rows[-1][auxiliar_cell_index].position_start = aux_delimiter_index - parts[i].length rows[-1][auxiliar_cell_index].position = aux_delimiter_index rows[-1][auxiliar_cell_index].calculate_and_set_alignment(header_delimiter_positions, default_alignments) Loading @@ -372,12 +372,12 @@ module Banzai auxiliar_cell_index += 1 end raise "More cells than columns found" unless cells_content.length <= number_of_columns raise "More cells than columns found" unless parts.length <= number_of_columns column_index = 0 max_row_tracker = rows_tracker.max_value cells_content.each_with_index do |content, _i| parts.each_with_index do |content, _i| if GRID_TABLE_BODY_SEPARATOR_LINE.match?(content) # Separator - split row rows_tracker[column_index] = max_row_tracker + 1 rows[rows_tracker[column_index]][column_index].list_flag = false Loading Loading @@ -418,6 +418,10 @@ module Banzai raise "Misaligned delimiters in row: #{line}" unless check_delimiter_alignment( line, delimiter_positions) raise "Missing delimiters in previous separator line" if parts.length < cells_content.length raise "Missing delimiters in row: #{line}: delimiters = #{cells_content.length}, expected delimiters = #{parts.length}" if parts.length > cells_content.length column_index = 0 if cells_content.length < number_of_columns Loading Loading @@ -486,17 +490,17 @@ module Banzai rows.each_with_index do |row, row_index| forward_rowspan = Array.new(row.length, 0) if forward_rowspan.empty? sum = 0 row_forward_rowspan = forward_rowspan.dup row.each_with_index do |cell, cell_index| sum += cell.colspan if row_index > 0 && cell.colspan == 0 if forward_rowspan[cell_index] > 0 if cell.colspan == 0 if row_forward_rowspan[cell_index] > 0 sum += 1 forward_rowspan[cell_index] -= 1 end end if forward_rowspan[cell_index] == 0 && cell.rowspan > 1 if row_forward_rowspan[cell_index] == 0 && cell.rowspan > 1 forward_rowspan[cell_index] = cell.rowspan - 1 colspan = 1 while cell.colspan > colspan Loading gitlabFilter/plain_markdown_pipeline.rb 0 → 100644 +21 −0 Original line number Diff line number Diff line # frozen_string_literal: true module Banzai module Pipeline class PlainMarkdownPipeline < BasePipeline def self.filters FilterArray[ Filter::IncludeFilter, Filter::GridTableFilter, Filter::MarkdownPreEscapeLegacyFilter, Filter::DollarMathPreLegacyFilter, Filter::BlockquoteFenceLegacyFilter, Filter::MarkdownFilter, Filter::ConvertTextToDocFilter, Filter::DollarMathPostLegacyFilter, Filter::MarkdownPostEscapeLegacyFilter ] end end end end No newline at end of file Loading
gitlabFilter/grid_table_filter.rb +14 −10 Original line number Diff line number Diff line Loading @@ -352,17 +352,17 @@ module Banzai raise "Misaligned delimiters in partial separator: #{line}" unless check_delimiter_alignment(line, delimiter_positions) cells_content = line.strip.gsub(/^(\+|\|)/, '').split(/[\|\+]/) parts = line.strip.gsub(/^(\+|\|)/, '').split(/[\|\+]/) rows << Row.new(number_of_columns) aux_delimiter_index = 0 auxiliar_cell_index = 0 cells_content.each_with_index do |_, i| parts.each_with_index do |_, i| next unless auxiliar_cell_index < number_of_columns aux_delimiter_index += cells_content[i].length + 1 rows[-1][auxiliar_cell_index].position_start = aux_delimiter_index - cells_content[i].length aux_delimiter_index += parts[i].length + 1 rows[-1][auxiliar_cell_index].position_start = aux_delimiter_index - parts[i].length rows[-1][auxiliar_cell_index].position = aux_delimiter_index rows[-1][auxiliar_cell_index].calculate_and_set_alignment(header_delimiter_positions, default_alignments) Loading @@ -372,12 +372,12 @@ module Banzai auxiliar_cell_index += 1 end raise "More cells than columns found" unless cells_content.length <= number_of_columns raise "More cells than columns found" unless parts.length <= number_of_columns column_index = 0 max_row_tracker = rows_tracker.max_value cells_content.each_with_index do |content, _i| parts.each_with_index do |content, _i| if GRID_TABLE_BODY_SEPARATOR_LINE.match?(content) # Separator - split row rows_tracker[column_index] = max_row_tracker + 1 rows[rows_tracker[column_index]][column_index].list_flag = false Loading Loading @@ -418,6 +418,10 @@ module Banzai raise "Misaligned delimiters in row: #{line}" unless check_delimiter_alignment( line, delimiter_positions) raise "Missing delimiters in previous separator line" if parts.length < cells_content.length raise "Missing delimiters in row: #{line}: delimiters = #{cells_content.length}, expected delimiters = #{parts.length}" if parts.length > cells_content.length column_index = 0 if cells_content.length < number_of_columns Loading Loading @@ -486,17 +490,17 @@ module Banzai rows.each_with_index do |row, row_index| forward_rowspan = Array.new(row.length, 0) if forward_rowspan.empty? sum = 0 row_forward_rowspan = forward_rowspan.dup row.each_with_index do |cell, cell_index| sum += cell.colspan if row_index > 0 && cell.colspan == 0 if forward_rowspan[cell_index] > 0 if cell.colspan == 0 if row_forward_rowspan[cell_index] > 0 sum += 1 forward_rowspan[cell_index] -= 1 end end if forward_rowspan[cell_index] == 0 && cell.rowspan > 1 if row_forward_rowspan[cell_index] == 0 && cell.rowspan > 1 forward_rowspan[cell_index] = cell.rowspan - 1 colspan = 1 while cell.colspan > colspan Loading
gitlabFilter/plain_markdown_pipeline.rb 0 → 100644 +21 −0 Original line number Diff line number Diff line # frozen_string_literal: true module Banzai module Pipeline class PlainMarkdownPipeline < BasePipeline def self.filters FilterArray[ Filter::IncludeFilter, Filter::GridTableFilter, Filter::MarkdownPreEscapeLegacyFilter, Filter::DollarMathPreLegacyFilter, Filter::BlockquoteFenceLegacyFilter, Filter::MarkdownFilter, Filter::ConvertTextToDocFilter, Filter::DollarMathPostLegacyFilter, Filter::MarkdownPostEscapeLegacyFilter ] end end end end No newline at end of file