Spaces in image alt texts are not supported

Aberta Para iniciantes
#1,870 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
72/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
markdown, ruby
Domínio
documentation

Direção de pesquisa

O bug está no tratamento de links inline em lib/rdoc/markup/formatter.rb, onde add_regexp_handling_RDOCLINK usa um padrão que para em espaços em branco, e no ramo de imagem de lib/rdoc/markup/to_html.rb, que separa a URL do texto alternativo. Comece reproduzindo o trecho Ruby da issue para ver a saída de img com o texto alternativo cortado. Está concluído quando ![Alt text](path/to/image.png) gera um atributo alt com o valor "Alt text" e há um teste cobrindo isso.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

The documentation references the following example

![Alt text](path/to/image.png)

but

formatter = RDoc::Markup::ToHtml.new(RDoc::Options.new, nil)
RDoc::Markdown.parse("![Alt text](path/to/image.png)").accept(formatter)

produces "\n<p><img src=\"path/to/image.png\" alt=\"Alt\"> text</p>\n" - notice the "text" is not part of the alt attribute.

I think the problem is that markdown.rb correctly supports spaces in the internal representation as "rdoc-image:#{a[:link]}:#{a[:label]}" but formatter.rb specifically excludes spaces in

      def add_regexp_handling_RDOCLINK
        @markup.add_regexp_handling(/rdoc-[a-z]+:[^\s\]]+/, :RDOCLINK)
      end

So given rdoc-image:image.svg:Alt Text only rdoc-image:image.svg:Alt is matched and Text becomes ordinary paragraph text.

Maybe using a regex similar to the one in to_html.rb url, alt = $'.split(/:(?!\/)/, 2) would be a solution?

Linguagem predominante
Ruby
Estrelas
928
Forks
471
Merge médio
2d 4min
PRs com merge (30d)
13

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de ruby/rdoc

Todas as issues de ruby/rdoc

Issues semelhantes

Mais issues de Ruby

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.