Obtendo o rss2email moderno para emitir links Markdown de referência

2

De volta ao rss2email 2.70, os links foram emitidos como links de referência Markdown no final de um post:

blah blah [blah blah][1] blah bleh

  [1]: http://www.example.com/blah-blah/

URL: http://www.example.com/blahs

No entanto, com uma versão moderna do rss2email (especificamente no meu caso, 3.9), os links são emitidos como links Markdown embutidos. O que é pior, eles acabam sendo embrulhados em palavras!

blah blah [blah blah](http://www.example.com/blah-
blah/) blah bleh

URL: http://www.example.com/blahs

A única opção de configuração relevante que consegui encontrar é links-after-each-paragraph , que é descrito como:

Put the links after each paragraph instead of at the end.

Não consigo encontrar nada que controle se os links são emitidos como links Markdown inline ou de referência.

Como posso obter o rss2email 3.9 para emitir links Markdown de referência para links no conteúdo da postagem do blog?

    
por a CVn 04.04.2017 / 09:47

1 resposta

1

Essa mudança parece ser devido a alterações na versão python3 de html2text , um pacote usado por rss2email . Este uso para esse pacote fala sobre a opção de linha de comando --reference-links fazendo o que você deseja: "Use links de referência em vez de links inline para criar markdown" . Olhando através de seu código python, isso se torna a opção de configuração interna INLINE_LINKS que você precisa definir a partir de rss2email .

Olhando para o código python em rss2email/config.py (em algum lugar no seu /usr/lib/python*/site-packages/ directory or simlar) você pode ver a rotina setup_html2text() é usada para configurar html2text :

class Config (_configparser.ConfigParser):
    ...
    def setup_html2text(self, section='DEFAULT'):
        """Setup html2text globals to match our configuration
        """
        ...
        _html2text.BODY_WIDTH = self.getint(section, 'body-width')

Este seria o lugar para adicionar algumas configurações extras importantes. No entanto, descobri que não entendi esse código ou há um bug, pois _html2text.BODY_WIDTH não é usado, mas há um _html2text.config.BODY_WIDTH que parece mais correto.

Ao editar este arquivo e adicionar a esta rotina as seguintes linhas (recuo com espaços e não guias):

        _html2text.config.INLINE_LINKS = False
        _html2text.config.USE_AUTOMATIC_LINKS = False
        _html2text.config.LINKS_EACH_PARAGRAPH = True

Eu obtive uma saída de e-mail semelhante à das versões anteriores de rss2email .

    
por 05.04.2017 / 19:00