Данные -> Обработка текста -> MARKDOWN

kagorec

Client
Регистрация
24.08.2013
Сообщения
922
Благодарностей
476
Баллы
63
Уважаемые разработчики

Добавьте пожалуйста кубик MARKDOWN для конвертации контента

MARKDOWN (ru.wikipedia.org/wiki/Markdown) - формат все больше набирает популярность. Благодаря своей простоте и удобству при использовании форматировании текста. Один из примеров: весь текст с оформленными тегами списков, ссылок, параграфов, картинок в формате markdown можно перевести полностью в переводчике translate google без опасения что побьет теги , формат MARKDOWN -> HTML после конвертации гарантирует что html будет правильно сформирован с закрытыми тегами и тд.

Zennoposter работает с веб, в большинстве случаев это HTML, поэтому есть необходимость в конвертации:
HTML -> MARKDOWN
MARKDOWN -> HTML

Это продуктивно скажется при работе с популярными ИИ!

1. Простота синтаксиса
Синтаксис Markdown очень прост и интуитивно понятен. Форматирование текста выполняется при помощи обычных символов, таких как *, _, #, >, которые не отвлекают при чтении исходного текста. Это делает Markdown идеальным для быстрого написания заметок и документации.

2. Кроссплатформенность
Благодаря простому текстовому формату, Markdown одинаково хорошо выглядит как на веб-страницах, так и в приложениях на разных платформах - Windows, Linux, macOS, iOS, Android.

3. Универсальность
Markdown можно использовать для создания самых разных видов контента - статей, документации, readme-файлов, писем, книг, презентаций. При этом контент будет одинаково хорошо читаться в исходном и отформатированном виде.

4. Переносимость
Текст в формате Markdown легко конвертируется в другие форматы, такие как HTML, PDF, DOC, без потери структуры и форматирования. Это позволяет легко публиковать Markdown-документы в вебе или печатных изданиях.

5. Версионируемость
Простой текстовый формат Markdown хорошо работает с системами контроля версий, такими как Git. Это облегчает отслеживание изменений в документах и работу над ними в команде.

6. Расширяемость
Существует множество расширений Markdown, которые добавляют дополнительный функционал - таблицы, ссылки, подсветку синтаксиса и многое другое. Это позволяет адаптировать Markdown под конкретные нужды.

7. Инструменты и интеграции
Для Markdown существует множество отличных редакторов, генераторов статических сайтов, библиотек для разных языков программирования. Markdown легко интегрируется в веб-приложения и сервисы.

8. Лёгкость для чтения и редактирования
Markdown форматирует текст, но при этом сохраняет его лёгким для чтения и редактирования. Это упрощает совместную работу над Markdown-документами.

9. Открытый стандарт
Markdown является открытым стандартом с открытой исходной спецификацией. Это гарантирует его стабильность и поддержку со стороны сообщества.

  1. GitHub (github.com) - популярная платформа для хостинга IT-проектов с открытым исходным кодом. Поддерживает Markdown для форматирования readme-файлов и вики.
  2. Reddit (reddit.com) - крупный новостной агрегатор и форум. Поддерживает Markdown в комментариях и постах.
  3. Stack Overflow (stackoverflow.com) - популярный QA-сайт для программистов. Использует Markdown для форматирования вопросов и ответов.
  4. Slack (slack.com) - популярный мессенджер для команд. Позволяет использовать Markdown в сообщениях.
  5. Discord (discord.com) - популярный мессенджер, особенно среди геймеров. Также поддерживает Markdown.
  6. WhatsApp (whatsapp.com) - самое популярное мобильное приложение для обмена сообщениями. Недавно добавили поддержку Markdown.
  7. Telegram (telegram.org) - бесплатный мессенджер. Позволяет использовать Markdown.
  8. Mattermost (mattermost.com) - открытая альтернатива Slack. Поддерживает Markdown.
  9. Trello (trello.com) - популярный сервис для управления проектами. Использует Markdown в карточках и комментариях.
  10. Notion (notion.so) - мощный сервис для заметок и управления проектами. Поддержка Markdown.
  11. Typora (typora.io) - продвинутый Markdown редактор для Windows, macOS и Linux.
  12. Bear (bear.app) - приложение для заметок на iOS и macOS с поддержкой Markdown.
  13. Simplenote (simplenote.com) - простой сервис для заметок с синхронизацией. Использует Markdown.
  14. Day One (dayoneapp.com) - популярный дневник с поддержкой Markdown.
  15. Zendesk (zendesk.com) - платформа для клиентской поддержки. Поддерживает Markdown для баз знаний.
  16. Jira (atlassian.com/software/jira) - известный инструмент для управления проектами. Использует Markdown в комментариях.
  17. Asana (asana.com) - еще один инструмент для управления задачами. Поддержка Markdown в комментариях.
  18. Obsidian (obsidian.md) - приложение для заметок, основанное на Markdown.
  19. Ghost (ghost.org) - популярная платформа для ведения блогов. Использует Markdown для постов.
  20. WordPress (wordpress.org) - самая популярная CMS для сайтов. Многие плагины добавляют поддержку Markdown.
  21. DokuWiki (dokuwiki.org) - простая вики с открытым исходным кодом. Использует синтаксис, похожий на Markdown.
  22. Jupyter Notebook (jupyter.org) - интерактивная среда для научных вычислений. Поддержка Markdown в ячейках.
  23. boostnote (boostnote.io) - заметки с Markdown для программистов.
  24. HackMD (hackmd.io) - совместное редактирование заметок в реальном времени.
  25. GitBook (gitbook.com) - сервис для создания и публикации книг. Использует Markdown.
  26. Read the Docs (readthedocs.org) - хостинг документации. Поддержка Markdown.
  27. MediaWiki (mediawiki.org) - популярная вики-платформа. Имеет расширение для Markdown.
  28. Bookdown (Bookdown.org) - пакет R для публикации книг. Использует Markdown.
  29. Trilium Notes (github.com/zadam/trilium) - заметки в виде иерархической вики.
  30. CodeMirror (codemirror.net) - текстовый редактор для веб-приложений. Поддержка Markdown.

Поддержите заявку голосованием!)
 
Последнее редактирование:

kagorec

Client
Регистрация
24.08.2013
Сообщения
922
Благодарностей
476
Баллы
63
Покачто есть решение через стороннее приложение.

Pandoc.org - приложение для конвертации контента. Например есть также конвертация HTML <--> MARKDOWN.
MARKDOWN разметка хороша поскольку после конвертации html получается с коректным закрытыми тегами.

Подключить к Zennoposter
C#:
// code v1 - https://zennolab.com/discussion/threads/transforming-html-to-markdown-best-methods.116581/ thank you @Pierre Paul Jacques
// code v2 - https://zennolab.com/discussion/threads/dannye-obrabotka-teksta-markdown.115933/

string htmlContent = project.Variables["pandoc_html_in"].Value;

// Replace 'variable' with your actual output variable name where Markdown will be stored
string markdownOutputVariable = "pandoc_markdown_out";

// Path to Pandoc executable; adjust it according to your system
string pandocPath = @"C:\Program Files\Pandoc\pandoc.exe";

string GenerateRandomString(int length)
{
    const string characters = "abcdefghijklmnopqrstuvwxyz0123456789";
    var random = new Random();
    var sb = new StringBuilder();
    for (int i = 0; i < length; i++)
    {
        sb.Append(characters[random.Next(characters.Length)]);
    }
    return sb.ToString();
}

string tempHtml = GenerateRandomString(7);
string tempMarkdown = GenerateRandomString(9);

string tempHtmlPath = @"T:\pandoc\" + tempHtml + ".html";
string tempMarkdownPath = @"T:\pandoc\" + tempMarkdown + ".md";

try
{
    System.IO.File.WriteAllText(tempHtmlPath, htmlContent);

    //var processInfo = new System.Diagnostics.ProcessStartInfo(pandocPath, $"-f html -t markdown_strict+pipe_tables {tempHtmlPath} -o {tempMarkdownPath}")
    var processInfo = new System.Diagnostics.ProcessStartInfo(pandocPath, $"-f html -t commonmark_x+pipe_tables {tempHtmlPath} -o {tempMarkdownPath}")
     
    {
        CreateNoWindow = true,
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardError = true
    };

    using (var process = System.Diagnostics.Process.Start(processInfo))
    {
        process.WaitForExit();
    }

    string markdownContent = System.IO.File.ReadAllText(tempMarkdownPath);
    project.Variables[markdownOutputVariable].Value = markdownContent;
}
catch (Exception ex)
{
    project.SendInfoToLog("Error during Pandoc execution: " + ex.Message);
}
finally
{
    System.IO.File.Delete(tempHtmlPath);
    System.IO.File.Delete(tempMarkdownPath);
}
 
Последнее редактирование:

backoff

Client
Регистрация
20.04.2015
Сообщения
5 924
Благодарностей
6 388
Баллы
113
Спасибо, сам хотел создать такой топик, ВСЕМИ РУКАМИ ЗА
последние CMS движки (WP) и многие сервисы, аля дзена, давно работают уже с MARKDOWN

Разрабы, просим, просим !!!!
 

Pierre Paul Jacques

Активный пользователь
Регистрация
08.10.2023
Сообщения
117
Благодарностей
33
Баллы
28
Уважаемый @kagorec ,
Я хочу сердечно поблагодарить вас за ваше сообщение на форуме. Ваше объяснение использования формата Markdown в ZennoPoster не только образовательно, но и чрезвычайно ясно и познавательно.

Будучи французом и не владея русским языком, я воспользовался услугами переводчика для написания этого сообщения, поэтому прошу простить за любые неточности в моих словах. Ваше сообщение особенно ценно для меня, так как в настоящее время я интересуюсь "Паразитным SEO" и с нетерпением жду возможности применить ваш метод.

На данный момент я использую временное решение: я открываю страницу, чтобы получить html-рендеринг моей финальной статьи, а затем вручную копирую его, чтобы вставить на платформу, например, Medium... Раньше я использовал онлайн-редакторы кода вроде https://codepen.io/pen/?editors=1000. Так что я постепенно улучшаю свой проект в Zenno, учась новым методам, и, возможно, через год я смогу использовать HTTP-методы запросов: Get, Put, Post...

Сообщество ZennoLab - это прекрасный пример сотрудничества и обмена знаниями, которые преодолевают языковые барьеры. Ваш вклад неоценим и в значительной мере способствует нашему совместному развитию, несмотря на барьеры языка.
С самой искренней благодарностью и на более лёгкой ноте хочу сказать, что благодаря ZennoLab, расстояния между нашими народами, кажется, стираются, и мне приносит удовольствие общение с русскоговорящими!
С теплыми пожеланиями и хорошего вам дня.


Merci:-)
 

kagorec

Client
Регистрация
24.08.2013
Сообщения
922
Благодарностей
476
Баллы
63
... На данный момент я использую временное решение: я открываю страницу, чтобы получить html-рендеринг моей финальной статьи, а затем вручную копирую его, чтобы вставить на платформу, например, Medium... Раньше я использовал онлайн-редакторы кода вроде https://codepen.io/pen/?editors=1000. Так что я постепенно улучшаю свой проект в Zenno, учась новым методам, и, возможно, через год я смогу использовать HTTP-методы запросов: Get, Put, Post...
codepen.io - не нужен, можно локально создавать html файл с содержимым и открывать в броузере (Zennoposter)
 

todayer

Client
Регистрация
07.08.2013
Сообщения
940
Благодарностей
391
Баллы
63

kagorec

Client
Регистрация
24.08.2013
Сообщения
922
Благодарностей
476
Баллы
63

todayer

Client
Регистрация
07.08.2013
Сообщения
940
Благодарностей
391
Баллы
63

winlingt

Client
Регистрация
21.10.2021
Сообщения
9
Благодарностей
2
Баллы
3
Thanks for this !
If it's not too complicated, could you please share the opposite version "Markdown to HTML" ?

I tried my self but my skills are too limited...
 
  • Спасибо
Реакции: Pierre Paul Jacques

kagorec

Client
Регистрация
24.08.2013
Сообщения
922
Благодарностей
476
Баллы
63
Thanks for this !
If it's not too complicated, could you please share the opposite version "Markdown to HTML" ?

I tried my self but my skills are too limited...
C#:
// code v1 - https://zennolab.com/discussion/threads/transforming-html-to-markdown-best-methods.116581/ thank you @Pierre Paul Jacques
// code v2 - https://zennolab.com/discussion/threads/dannye-obrabotka-teksta-markdown.115933/

// Markdown to HTML

// Replace 'YourInputVariable' with your actual input variable name containing HTML content
string htmlContent = project.Variables["pandoc_markdown_in"].Value;

// Replace 'YourOutputVariable' with your actual output variable name where Markdown will be stored
string markdownOutputVariable = "pandoc_html_out";

// Path to Pandoc executable; adjust it according to your system
string pandocPath = @"C:\Program Files\Pandoc\pandoc.exe";


// Temporary file paths for storing intermediate and output files

 string GenerateRandomString(int length)
{
    const string characters = "abcdefghijklmnopqrstuvwxyz0123456789";
    var random = new Random();
    var sb = new StringBuilder();
    for (int i = 0; i < length; i++)
    {
        sb.Append(characters[random.Next(characters.Length)]);
    }
    return sb.ToString();
}

string tempHtml = GenerateRandomString(7);
string tempMarkdown = GenerateRandomString(9);

string tempHtmlPath = @"T:\pandoc\" + tempHtml + ".html";
string tempMarkdownPath = @"T:\pandoc\" + tempMarkdown + ".md";

try
{
    System.IO.File.WriteAllText(tempHtmlPath, htmlContent);

    //var processInfo = new System.Diagnostics.ProcessStartInfo(pandocPath, $"-f markdown -t html {tempHtmlPath} -o {tempMarkdownPath}")
    var processInfo = new System.Diagnostics.ProcessStartInfo(pandocPath, $"-f commonmark_x -t html {tempHtmlPath} -o {tempMarkdownPath}")
    {
        CreateNoWindow = true,
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardError = true
    };

    using (var process = System.Diagnostics.Process.Start(processInfo))
    {
        process.WaitForExit();
    }

    string markdownContent = System.IO.File.ReadAllText(tempMarkdownPath);
    project.Variables[markdownOutputVariable].Value = markdownContent;
}
catch (Exception ex)
{
    project.SendInfoToLog("Error during Pandoc execution: " + ex.Message);
}
finally
{
    System.IO.File.Delete(tempHtmlPath);
    System.IO.File.Delete(tempMarkdownPath);
}
 
  • Спасибо
Реакции: Pierre Paul Jacques и eee

winlingt

Client
Регистрация
21.10.2021
Сообщения
9
Благодарностей
2
Баллы
3
Thanks for reply but this is not working for me :

every output ("pandoc_html_out") has the same content ("Ok") when I run this...


Have you tried yourself ?
 

kagorec

Client
Регистрация
24.08.2013
Сообщения
922
Благодарностей
476
Баллы
63
Этот код из моего рабочего шаблона.

Отметьте пункт "Не возвращать значение"

pandoc_markdown_in - переменная содержит контент в формате markdown, который будет обработан кубиком C#
pandoc_html_out - переменная будет содержать (html) результат обработки markdown->html кубиком C#
 
Последнее редактирование:

bad robot

Client
Регистрация
07.03.2011
Сообщения
177
Благодарностей
28
Баллы
28
Покачто есть решение через стороннее приложение.

Pandoc.org - приложение для конвертации контента. Например есть также конвертация HTML <--> MARKDOWN.
MARKDOWN разметка хороша поскольку после конвертации html получается с коректным закрытыми тегами.

Подключить к Zennoposter
C#:
// code v1 - https://zennolab.com/discussion/threads/transforming-html-to-markdown-best-methods.116581/ thank you @Pierre Paul Jacques
// code v2 - https://zennolab.com/discussion/threads/dannye-obrabotka-teksta-markdown.115933/

string htmlContent = project.Variables["pandoc_html_in"].Value;

// Replace 'variable' with your actual output variable name where Markdown will be stored
string markdownOutputVariable = "pandoc_markdown_out";

// Path to Pandoc executable; adjust it according to your system
string pandocPath = @"C:\Program Files\Pandoc\pandoc.exe";

string GenerateRandomString(int length)
{
    const string characters = "abcdefghijklmnopqrstuvwxyz0123456789";
    var random = new Random();
    var sb = new StringBuilder();
    for (int i = 0; i < length; i++)
    {
        sb.Append(characters[random.Next(characters.Length)]);
    }
    return sb.ToString();
}

string tempHtml = GenerateRandomString(7);
string tempMarkdown = GenerateRandomString(9);

string tempHtmlPath = @"T:\pandoc\" + tempHtml + ".html";
string tempMarkdownPath = @"T:\pandoc\" + tempMarkdown + ".md";

try
{
    System.IO.File.WriteAllText(tempHtmlPath, htmlContent);

    //var processInfo = new System.Diagnostics.ProcessStartInfo(pandocPath, $"-f html -t markdown_strict+pipe_tables {tempHtmlPath} -o {tempMarkdownPath}")
    var processInfo = new System.Diagnostics.ProcessStartInfo(pandocPath, $"-f html -t commonmark_x+pipe_tables {tempHtmlPath} -o {tempMarkdownPath}")
    
    {
        CreateNoWindow = true,
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardError = true
    };

    using (var process = System.Diagnostics.Process.Start(processInfo))
    {
        process.WaitForExit();
    }

    string markdownContent = System.IO.File.ReadAllText(tempMarkdownPath);
    project.Variables[markdownOutputVariable].Value = markdownContent;
}
catch (Exception ex)
{
    project.SendInfoToLog("Error during Pandoc execution: " + ex.Message);
}
finally
{
    System.IO.File.Delete(tempHtmlPath);
    System.IO.File.Delete(tempMarkdownPath);
}
к сожалению не справляется: не умеет работать с таблицами, оставляет мусорные теги и зачем-то расставляет ненужные переносы строк. Это лимиты Pandoc или есть вариант допилить?
 

kagorec

Client
Регистрация
24.08.2013
Сообщения
922
Благодарностей
476
Баллы
63
https://pandoc.org/MANUAL.html - проверять надо справке предоставленные решения

п.с. с малыми таблицами хорошо справляется ранее предоставленый C# снипет
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)