Проблемы с конвертером HTML в Markdown во входящих письмах

Здравствуйте.

Мы используем хостинг Discourse, щедро предоставляемый проектам с открытым исходным кодом, для discourse.nixos.org. Когда мы отправляем нашу рассылку NixOS Weekly в Discourse, HTML преобразуется в Markdown, но форматирование выглядит довольно некорректно. При просмотре исходного HTML-кода письма всё выглядит нормально, и у нас включена настройка Discourse incoming email prefer htmls (по умолчанию).

Основные проблемы с форматированием, которые я заметил:

  1. Абзацы внутри тегов LI не имеют отступов.
  2. Отсутствуют пустые строки после заголовков.
Исходное письмо
Received: from mail-il1-x133.google.com (mail-il1-x133.google.com [IPv6:2607:f8b0:4864:20::133])
	by mail-receiver-stardestroyer03.localdomain (Postfix) with ESMTPS id 7E5221613D0
	for <nixos1+links@discoursemail.com>; Fri, 27 Nov 2020 16:11:19 +0000 (UTC)
Received: by mail-il1-x133.google.com with SMTP id a19so5060269ilm.3
        for <nixos1+links@discoursemail.com>; Fri, 27 Nov 2020 08:11:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=dev-si.20150623.gappssmtp.com; s=20150623;
        h=from:mime-version:date:message-id:subject:to;
        bh=kDWChQV280u+GWaWSpbLmUW2vuQTBCk5J3iZoEHn660=;
        b=TAyC0sDPCXFm5VRSOVHAZHv+X6qTmd6Z8LQjYeLo1ZXh5Xv3/dBNpsQOv+6yLmFD0h
         sNM00QhFoJEVGwAL7V0leXqurPVUydJRSndjNjcmE2zdDLYD0Mk+rNslEKPoaIJVBKnh
         9K/GsruvtLh2+ih732ktvje8mPtcBfxb5CLZNnTgmae2b9B+vmJebU7BGubwokQWkd24
         /PG2fuXGonux0BYpHNME2IL11JFUt2zS9c2LsSfedIT2tP2Kg4QPH7Q2eo7RPhBqPt8O
         ftuUNvd71h+phMncHL5IEzLXT/lkJ54qNTwQpoOvB8ATDjWP8Z+hm8Sj+ANmOoBvLHgT
         IMXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:mime-version:date:message-id:subject:to;
        bh=kDWChQV280u+GWaWSpbLmUW2vuQTBCk5J3iZoEHn660=;
        b=dor5nA/6xT6/jMgVJSJfzrHaDhCLP4aU3nEuAcpr9XzDwnCgvnWs3yULV+pqa3B9lg
         Z37Gwyfx113HrrKQAMwRel6Uh2mWRLYolqOQfDcou6eoOfUnQ00IjHL+8YggEFH8ROxC
         Ou1ThEl5E5GgiP4qoQfDcou6eoOfUnQ00IjHL+8YggEFH8ROxC
         Ou1ThEl5E5GgiP4qoQfDcou6eoOfUnQ00IjHL+8YggEFH8ROxC
         0+V/PcgJgev+/VoRUmYvqH+ihq89Koxk4parjgbMTDTgjjLho5wUVUPHRLiN9DZSsI2N
         rIRg==
X-Gm-Message-State: AOAM530VvJMF2CbhtwVl3E8Rr6awT+TXUJFuoNH4c3A70v2xulTkBq32
	48XtkD5EQBWG6wwoVoMrM0UTRgwqAJCUlU2aDBfqFa5oxtNmyA==
X-Google-Smtp-Source: ABdhPJyDCTrLERvaHMzHuHp9jB2YvYE0SLEErWsxrVs5uyeaBO8cVZtkul+CNP+5P71NrO2mbACx/gsbZSsDTjV+3xM=
X-Received: by 2002:a92:c64b:: with SMTP id 11mr7560388ill.224.1606493478415;
 Fri, 27 Nov 2020 08:11:18 -0800 (PST)
Received: from 427071021612 named unknown by gmailapi.google.com with
 HTTPREST; Fri, 27 Nov 2020 11:11:18 -0500
From: domen@dev.si
Mime-Version: 1.0
Date: Fri, 27 Nov 2020 11:11:17 -0500
Message-ID: <CAMvcdZSt6iXGq6-f5oX6AiAPk4-1HqxuOAQO+2uG2eWCq854fw@mail.gmail.com>
Subject: NixOS Weekly #09 - NixOS Weekly
To: nixos1+links@discoursemail.com
Content-Type: multipart/alternative; boundary="0000000000001d8d0105b518e9c5"

--0000000000001d8d0105b518e9c5
Content-Type: text/plain; charset="UTF-8"

Новости и объявления

   - Объявление о базе данных Nixpkgs
   <https://kamadorueda.github.io/nixpkgs-db/#/about>

База данных и поисковая система для всей истории каждого пакета в
Nixpkgs <https://github.com/nixos/nixpkgs>.

   - Cachix: контроль доступа на запись для бинарных кэшей
   <https://blog.cachix.org/posts/2020-11-09-write-access-control-for-binary-caches/>

Доверие к тому, кто создал содержимое бинарного кэша, исходит от владельца
закрытого ключа подписи.

Этот подход имеет ряд недостатков в отношении жизненного цикла в
командах, поэтому токены API теперь являются способом по умолчанию для управления доступом на запись.

   -

   NixOS 21.03 Призыв к кандидатам на роль менеджера релиза
   <https://discourse.nixos.org/t/21-03-call-for-release-manager/10204>
   -

   nixpkgs: пакеты Python 2.7 больше не собираются
   <https://discourse.nixos.org/t/python-2-7-and-3-9-and-hydra-builds>
   -

   nixpkgs: пакеты Haskell теперь следуют nightly
   <https://discourse.nixos.org/t/new-ghc-default-version-8-10-2-package-versions-now-from-stackage-nightly>
   -

   Mach-nix теперь имеет пакеты conda в качестве бэкенда
   <https://discourse.nixos.org/t/mach-nix-create-python-environments-quick-and-easy/6858/86>
   -

   Запуск NixOS на Pinecube
   <https://github.com/danielfullmer/pinecube-nixos>
   -

   Наш новый инструмент развёртывания Nix: deploy-rs
   <https://serokell.io/blog/deploy-rs>

Учебные пособия

   -

   Как настроить Prometheus, Grafana и Loki на NixOS
   <https://christine.website/blog/prometheus-grafana-loki-nixos-2020-11-20>
   -

   Развёртывание NixOS с помощью Terraform
   <https://nix.dev/tutorials/deploying-nixos-using-terraform.html>
   -

   Настройка i3 на Thinkpads с NixOS
   <https://www.srid.ca/i3-setup.html>
   -

   Как использовать NixOS для лёгких интеграционных тестов
   <http://www.haskellforall.com/2020/11/how-to-use-nixos-for-lightweight.html>
   -

   Лёгкие Linux-ВМ на NixOS <https://www.srid.ca/2012301.html>
   -

   XMonad + Polybar на NixOS <https://gvolpe.com/blog/xmonad-polybar-nixos/>

Ресурсы

   -

   Восемь месяцев с NixOS <https://catgirl.ai/log/nixos-experience/>
   -

   Одна неделя с NixOS <https://jae.moe/blog/2020/11/one-week-of-nixos/>
   -

   Переход на NixOS
   <https://foo-dogsquared.github.io/blog/posts/moving-into-nixos/>
   -

   Автоматическое распознавание отсканированных PDF-файлов в NixOS
   <https://dev.to/jwoudenberg/automatically-ocr-scanned-pdfs-in-nixos-25d>

Аннотированный код, показывающий, как автоматически создавать поисковые копии
всех документов, которые вы получаете по почте.
Работа

   -

   Внутренние инструменты и SRE в NoRedInk - Nix, Haskell, k8s
   <https://www.noredink.com/job_post?gh_jid=2443611>
   -

   Инженер DevOps (Мюнхен или удалённо)
   <https://genesis-jobs.personio.de/job/278290>

Внесите вклад в рассылку NixOS Weekly

Эта работа была бы невозможна без множества вкладов сообщества.

Вы тоже можете помочь! Создайте или прокомментируйте запрос на слияние
<https://github.com/NixOS/nixos-weekly/pulls> для следующего выпуска или посмотрите
на трекер задач <https://github.com/NixOS/nixos-weekly/issues>, чтобы добавить
другие улучшения.

--0000000000001d8d0105b518e9c5
Content-Type: text/html; charset="UTF-8"

<h1>Новости</h1>
<h2>Объявления</h2>
<ul>
<li><a href="https://kamadorueda.github.io/nixpkgs-db/#/about">Объявление о базе данных Nixpkgs</a></li>
</ul>
<p>База данных и поисковая система для всей истории каждого пакета в <a href="https://github.com/nixos/nixpkgs">Nixpkgs</a>.</p>
<ul>
<li><a href="https://blog.cachix.org/posts/2020-11-09-write-access-control-for-binary-caches/">Cachix: контроль доступа на запись для бинарных кэшей</a></li>
</ul>
<p>Доверие к тому, кто создал содержимое бинарного кэша, исходит от владельца закрытого ключа подписи.</p>
<p>Этот подход имеет ряд недостатков в отношении жизненного цикла в командах, поэтому токены API теперь являются способом по умолчанию для управления доступом на запись.</p>
<ul>
<li>
<p><a href="https://discourse.nixos.org/t/21-03-call-for-release-manager/10204">NixOS 21.03 Призыв к кандидатам на роль менеджера релиза</a></p>
</li>
<li>
<p><a href="https://discourse.nixos.org/t/python-2-7-and-3-9-and-hydra-builds">nixpkgs: пакеты Python 2.7 больше не собираются</a></p>
</li>
<li>
<p><a href="https://discourse.nixos.org/t/new-ghc-default-version-8-10-2-package-versions-now-from-stackage-nightly">nixpkgs: пакеты Haskell теперь следуют nightly</a></p>
</li>
<li>
<p><a href="https://discourse.nixos.org/t/mach-nix-create-python-environments-quick-and-easy/6858/86">Mach-nix теперь имеет пакеты conda в качестве бэкенда</a></p>
</li>
<li>
<p><a href="https://github.com/danielfullmer/pinecube-nixos">Запуск NixOS на Pinecube</a></p>
</li>
<li>
<p><a href="https://serokell.io/blog/deploy-rs">Наш новый инструмент развёртывания Nix: deploy-rs</a></p>
</li>
</ul>
<h2>Учебные пособия</h2>
<ul>
<li>
<p><a href="https://christine.website/blog/prometheus-grafana-loki-nixos-2020-11-20">Как настроить Prometheus, Grafana и Loki на NixOS</a></p>
</li>
<li>
<p><a href="https://nix.dev/tutorials/deploying-nixos-using-terraform.html">Развёртывание NixOS с помощью Terraform</a></p>
</li>
<li>
<p><a href="https://www.srid.ca/i3-setup.html">Настройка i3 на Thinkpads с NixOS</a></p>
</li>
<li>
<p><a href="http://www.haskellforall.com/2020/11/how-to-use-nixos-for-lightweight.html">Как использовать NixOS для лёгких интеграционных тестов</a></p>
</li>
<li>
<p><a href="https://www.srid.ca/2012301.html">Лёгкие Linux-ВМ на NixOS</a></p>
</li>
<li>
<p><a href="https://gvolpe.com/blog/xmonad-polybar-nixos/">XMonad + Polybar на NixOS</a></p>
</li>
</ul>
<h2>Ресурсы</h2>
<ul>
<li>
<p><a href="https://catgirl.ai/log/nixos-experience/">Восемь месяцев с NixOS</a></p>
</li>
<li>
<p><a href="https://jae.moe/blog/2020/11/one-week-of-nixos/">Одна неделя с NixOS</a></p>
</li>
<li>
<p><a href="https://foo-dogsquared.github.io/blog/posts/moving-into-nixos/">Переход на NixOS</a></p>
</li>
<li>
<p><a href="https://dev.to/jwoudenberg/automatically-ocr-scanned-pdfs-in-nixos-25d">Автоматическое распознавание отсканированных PDF-файлов в NixOS</a></p>
</li>
</ul>
<p>Аннотированный код, показывающий, как автоматически создавать поисковые копии всех документов, которые вы получаете по почте.</p>
<h2>Работа</h2>
<ul>
<li>
<p><a href="https://www.noredink.com/job_post?gh_jid=2443611">Внутренние инструменты и SRE в NoRedInk - Nix, Haskell, k8s</a></p>
</li>
<li>
<p><a href="https://genesis-jobs.personio.de/job/278290">Инженер DevOps (Мюнхен или удалённо)</a></p>
</li>
</ul>
<h1>Внесите вклад в рассылку NixOS Weekly</h1>
<p>Эта работа была бы невозможна без множества вкладов сообщества.</p>
<p>Вы тоже можете помочь! Создайте или прокомментируйте <a href="https://github.com/NixOS/nixos-weekly/pulls">запрос на слияние</a> для следующего выпуска или посмотрите на <a href="https://github.com/NixOS/nixos-weekly/issues">трекер задач</a>, чтобы добавить другие улучшения.</p>


--0000000000001d8d0105b518e9c5--
Markdown, сгенерированный Discourse
# Новости## Объявления- [Объявление о базе данных Nixpkgs](https://kamadorueda.github.io/nixpkgs-db/#/about)

База данных и поисковая система для всей истории каждого пакета в [Nixpkgs](https://github.com/nixos/nixpkgs).

- [Cachix: контроль доступа на запись для бинарных кэшей](https://blog.cachix.org/posts/2020-11-09-write-access-control-for-binary-caches/)

Доверие к тому, кто создал содержимое бинарного кэша, исходит от владельца закрытого ключа подписи.

Этот подход имеет ряд недостатков в отношении жизненного цикла в командах, поэтому токены API теперь являются способом по умолчанию для управления доступом на запись.

- [NixOS 21.03 Призыв к кандидатам на роль менеджера релиза](https://discourse.nixos.org/t/21-03-call-for-release-manager/10204)

- [nixpkgs: пакеты Python 2.7 больше не собираются](https://discourse.nixos.org/t/python-2-7-and-3-9-and-hydra-builds)

- [nixpkgs: пакеты Haskell теперь следуют nightly](https://discourse.nixos.org/t/new-ghc-default-version-8-10-2-package-versions-now-from-stackage-nightly)

- [Mach-nix теперь имеет пакеты conda в качестве бэкенда](https://discourse.nixos.org/t/mach-nix-create-python-environments-quick-and-easy/6858/86)

- [Запуск NixOS на Pinecube](https://github.com/danielfullmer/pinecube-nixos)

- [Наш новый инструмент развёртывания Nix: deploy-rs](https://serokell.io/blog/deploy-rs)

## Учебные пособия- [Как настроить Prometheus, Grafana и Loki на NixOS](https://christine.website/blog/prometheus-grafana-loki-nixos-2020-11-20)

- [Развёртывание NixOS с помощью Terraform](https://nix.dev/tutorials/deploying-nixos-using-terraform.html)

- [Настройка i3 на Thinkpads с NixOS](https://www.srid.ca/i3-setup.html)

- [Как использовать NixOS для лёгких интеграционных тестов](http://www.haskellforall.com/2020/11/how-to-use-nixos-for-lightweight.html)

- [Лёгкие Linux-ВМ на NixOS](https://www.srid.ca/2012301.html)

- [XMonad + Polybar на NixOS](https://gvolpe.com/blog/xmonad-polybar-nixos/)

## Ресурсы- [Восемь месяцев с NixOS](https://catgirl.ai/log/nixos-experience/)

- [Одна неделя с NixOS](https://jae.moe/blog/2020/11/one-week-of-nixos/)

- [Переход на NixOS](https://foo-dogsquared.github.io/blog/posts/moving-into-nixos/)

- [Автоматическое распознавание отсканированных PDF-файлов в NixOS](https://dev.to/jwoudenberg/automatically-ocr-scanned-pdfs-in-nixos-25d)

Аннотированный код, показывающий, как автоматически создавать поисковые копии всех документов, которые вы получаете по почте.

## Работа- [Внутренние инструменты и SRE в NoRedInk - Nix, Haskell, k8s](https://www.noredink.com/job_post?gh_jid=2443611)

- [Инженер DevOps (Мюнхен или удалённо)](https://genesis-jobs.personio.de/job/278290)

# Внесите вклад в рассылку NixOS Weekly

Эта работа была бы невозможна без множества вкладов сообщества.

Вы тоже можете помочь! Создайте или прокомментируйте [запрос на слияние](https://github.com/NixOS/nixos-weekly/pulls) для следующего выпуска или посмотрите на [трекер задач](https://github.com/NixOS/nixos-weekly/issues), чтобы добавить другие улучшения.

Не могли бы вы дать какие-либо советы, как сделать так, чтобы письма приходили правильно?

С уважением,
Райан Маллиган

Я только что внимательнее посмотрел на HTML, и, кажется, первая проблема связана именно с ним. Отсутствие переносов строк после заголовков по-прежнему выглядит корректно.

Скоро будет исправление.

Ваше исправление уже в мастер-ветке?

Не совсем. Но мы всё ещё работаем над этим.