1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Showdown

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
TASKS.TODO.md 9.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 28.02.2025 00:06 ce9b07d

План до версии 3.0

Опции

  • ghCompatibleHeaderId (удаление)

    Будет удалено и станет по умолчанию поведением.

  • customizedHeaderId (удаление)

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

  • rawPrefixHeaderId (удаление)

    Эта опция будет заменена опцией rawHeaderId. Таким образом, активация rawHeaderId сделает showdown заменять пробелы, ',', '"', '>', '<' на дефисы (-) в генерируемых id заголовков, включая префиксы.

  • literalMidWordAsterisks (удаление)

    Эта опция странная, трудная для поддержки и вообще... имеет мало смысла.

  • excludeTrailingPunctuationFromURLs (удаление)

    Эта опция будет удалена и станет поведением по умолчанию отныне.

  • strikethrough (изменение)

    Будет включен по умолчанию

  • disableForced4SpacesIndentedSublists (думать/отложить)

    Это была временная опция для обратной совместимости. Однако большинство вариаций поддерживают списки, отступленные на два пробела, что ставит нас в затруднительное положение, особенно учитывая, что некоторые утилиты для "красивого" markdown требуют отступа в два пробела, возможно, ошибочно пытаясь следовать спецификации CommonMark.

    Спецификация CommonMark, на мой взгляд, немного запутана для пользователей относительно этого, так как подблоки списков (и списки) определяются пробелами в начале строки и первым символом после маркера списка. Доказательством являются утилиты для "красивого" markdown, которые неверно интерпретируют спецификацию и создают путаницу.

    Синтаксис showdown, на самом деле, проще (и полностью соответствует оригинальной спецификации): если вы отступите что-то на четыре пробела, это становится подблоком. Поскольку списки — это блоки, вам нужно отступить их на четыре пробела, чтобы они стали подблоками.

    В любом случае, у нас есть две возможные решения:

    • Отказаться от поддержки двухпробельного отступа (что может запутать многих пользователей, поскольку GFM, CommonMark и другие позволяют это)
    • Создать новый парсер подблоков списков, который можно включить с помощью опции, такой как gfmListStyle (но это еще больше откладывает выход альфа-версии 3.0, так как парсер подблоков списков, вероятно, самый сложный элемент для перезаписи)

    Трудные выборы...

  • simpleLineBreaks (изменение)

    Будет удален из Github Flavor, поскольку GitHub использует это только в комментариях (что странно...)

  • openLinksInNewWindow (удаление)

    Будет удален в пользу новой системы слушателей расширений, которая позволит пользователям манипулировать атрибутами HTML-тегов напрямую.

  • Обновление системы опций

    Обновление системы опций таким образом, чтобы она стала более простой. Сейчас она очень запутанная. И названия опций тоже странные. Идея состоит в том, чтобы передавать опции через конструктор в объекте опций, который может иметь иерархическую структуру. Пример:

    var conv = new showdown.Converter({ 
      options: { 
        links: {
          autoLinks: true
        },
        headings: {
          startLevel: 2
        }
      }
    });

Удаление устаревшего кода

  • Поддержка устаревших расширений

    Старые расширения, которые внедряются напрямую в свойства объекта расширений, больше не будут поддерживаться

  • Расширения HTML и OUTPUT

    Расширения HTML и OUTPUT будут удалены в пользу систем слушателей расширений. Мы можем даже дать им новые названия

Парсеры подблоков

  • Анкоры: Обновление парсера анкоров так, чтобы он вызывал функции зачеркивания, жирного шрифта, курсива и подчеркивания напрямую
  • Автоматические ссылки: Исправление некоторых оставшихся багов и проблем с автоматическими ссылками

Приоритетные баги

  • #355: Упрощенные автоматические ссылки внутри скобок, за которыми следует другой символ, не парсятся правильно
  • #534: Множественные скобки () в ссылках не парсятся правильно
  • #367: Отображение подблоков списков с двумя пробелами - связано с опцией disableForced4SpacesIndentedSublists...
  • #537: Основная ветка не работает в веб-работере

КОМАНДНАЯ СТРОКА

  • Переработка командной строки
  • #381: Поддержка каталогов src и dst в командной строке showdown
  • #584: Не удается прочитать данные из стандартного входа
  • #554: Командная строка не работает с jsdom v10

Другое

  • Перепись регулярных выражений для лучшей производительности
  • Полное юнит-тестирование
  • Лучший отчет об ошибках

Функционал, который, скорее всего, не войдет в версию 2.0

  • #486: Обратная слеш-символ в конце строки является жестким переходом на новую строку
  • #548: Анкоры и изображения в парсере подблоков являются ошибками при наличии конкретных строковых значений
  • #549: Странная проблема парсинга с <pre><code>
  • Переоценка глобальных переменных

НОВЫЕ ФУНКЦИОНАЛЬНОСТИ

Система событий

  • Обновление системы слушателей
  • Стандартизация событий для всех типов событий
  • Юнит-тестирование
  • Функциональное тестирование

Это должно решить:

  • #567: Разрешить не делать заголовочные id строчными
  • #540: Добавить полный класс к элементу списка задач

Преобразование MD в HTML

  • Базовая поддержка
  • Базовый функциональный тестовый случай
  • Расширенная поддержка всех функций showdown MD
  • Расширенный функциональный тестовый случай
  • Юнит-тестирование

Документация (для версии 2.0)

  • Опции
  • Расширения (и новая система событий)
  • Кулинарная книга (с вещами для обратной совместимости, особенно относительно удаленных опций)

Тестирование в браузерах

  • Реализация юнит-тестов в Karma
  • Реализация функциональных тестов в Karma
  • Интеграция с browserstack

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-Showdown.git
git@api.gitlife.ru:oschina-mirror/mirrors-Showdown.git
oschina-mirror
mirrors-Showdown
mirrors-Showdown
master