Чи є якась бібліотека чи контроль Markdown Javascript? [зачинено]


89

Я хочу створити сайт, де користувач може вводити текст і форматувати його в Markdown. Причина, по якій я хочу отримати рішення Javascript, полягає в тому, що я хочу відобразити попередній перегляд, як у StackOverflow.

Однак мій сайт не орієнтований на розробників, тому ідеальним буде контроль редактора.

Я розумію, що на StackOverflow використовується редактор ЗМЗ.

Швидкий пошук у Google також відкриває бібліотеку Showdown, яка, на мою думку, фактично використовується ЗМЗ.

Чи є інші варіанти? Чи вже є чудові інструменти для ЗМЗ / Showdown? Яким був ваш досвід із різними варіантами?

Відповіді:


33

Якщо ви не проти використовувати Ajax для генерації попереднього перегляду в прямому ефірі, тоді ще один варіант - markItUp! . markItUp! є універсальним редактором розмітки і дуже гнучким. Він надає простий спосіб створення редактора розмітки, але на відміну від ЗМЗ, він не забезпечує власного попереднього перегляду.

Я використовував markItUp! Разом із простим JSP (за допомогою MarkdownJ ) для одного з моїх проектів з відкритим кодом ( плагін Markdown для Roller ). Якщо ви використовуєте іншу технологію на стороні сервера, замініть цей простий JSP відповідно.

Я фактично почав користуватися цим, перш ніж натрапив на ЗМЗ. Я б погодився, що ЗМЗ - це чудово, але тільки що було відкритим джерелом, і на цьому етапі складніше налаштувати поведінку.


MarkItUp! не справляється з перемиканням та липким виділенням. Це мій текстовий редактор Markdown із відкритим кодом на основі JavaScript. Він підтримує комбінації клавіш, власні діалогові вікна, власні перепади, а також підтримує розумний вибір тексту, щоб заохотити користувачів писати синтаксис Markdown у хорошому форматі: github.com/tovic/markdown-text-editor
Taufik Nurrohman

65

Ми були дуже задоволені ЗМЗ. Однак у ньому є кілька химерних помилок. Нічого серйозного, але я б любити , якщо Джон Фрейзер (автор) зробив код з відкритим вихідним кодом , щоб ми могли виправити деякі з них. Він обіцяв це зробити, але інші реальні життєві проекти заважають.

Я щотижня спостерігаю за Джоном. Я розміщу в блозі, як тільки джерело ЗМЗ стане нарешті доступним. Вже більше року не можу зв’язатися з Джоном Фрейзером.

Ми відкрили джерела бібліотеки JavaScript Markdown

http://code.google.com/p/pagedown/

та бібліотеку C # Markdown на стороні сервера

http://code.google.com/p/markdownsharp/


Дякую за відповідь Джефф. Я навіть не підозрював, що ЗМЗ не є відкритим кодом ... Я буду тримати очі.
вебмат

2
Що ви зробили з роззявленою дірою в безпеці? Наприклад: <div onmouseover = "alert ('hi');"> привіт </div> Вищезазначене працює в демонстрації ЗМЗ!
andrewrk

1
@ superjoe30 Ці матеріали фільтруються на сервері.
epochwolf

@ superjoe30: Див. meta.stackexchange.com/questions/95821/… - те саме стосується версії JavaScript
balpha

1
@DisgruntledGoat, дивлячись на stackexchange.github.io, ви бачите, що він є у списку, а остання фіксація була 6 місяців тому (вже 2015).
Loïc Faure-Lacroix

12

Я б порекомендував маркований , легкий, ефективний, простий у використанні, а також підтримує GitHub Flavored Markdown (GFM). Його можна використовувати як на сервері (nodejs), так і на клієнті (браузер).


з позначкою все ще розробляється, а мінімізована версія має лише 23 КБ.
Пітер Т.

7

Наскільки мені відомо, насправді не існує жодного іншого браузерного редактора для Markdown, принаймні жодного такого обширного, як редактор ЗМЗ.

Showdown - це перетворювач Markdown в JS, який є основою для попереднього перегляду ЗМЗ в HTML. Вони обидва створені http://attacklab.net/ .

І наскільки я знаю, жодних великих скарг щодо обох не було (принаймні, не в списку розсилки Markdown). Так що йдіть на це.



4

Strapdown.js, який нещодавно був випущений , "робить незручно простим створення елегантних документів Markdown. Компіляція на стороні сервера не потрібна".



3

Питання зараз є ще більш древнім, але ще більш актуальним, оскільки значна частина згаданого коду застаріла на кілька років.

Однак я знайшов кілька, які все ще здаються актуальними:

Jquery-Markedit - Це було розгалужено з wmd-edit досить давно і реконструйовано для використання jQuery. Здається, добре з першого погляду.

EpicEditor - також досі підтримується, має гнучкий синтаксичний аналізатор, і, як ви можете бачити нижче, автор дуже чуйний (див. Нижче). Здається, в ІТ також є хороша документація. На жаль, не працює з IE9.

MarkdownDeep - це третій варіант, який досі актуальний. Цікавим моментом цього є підтримка Markdown Extra. Має залежність від JQuery (насправді ви можете реалізувати і без JQuery). На основі версії .NET, тому документація більше відповідає цій, ніж версія JS. Це також працює з IE9. Він дуже простий у використанні (з JQuery) і дуже простий. Ніякого значного розвитку з цим не сталося, хоча, наскільки я бачу.

js-markdown-extra є досить точним портом бібліотеки PHP і все ще перебуває на технічному обслуговуванні. Звичайно, він підтримує Markdown Extra.


1
Попередній перегляд чудово працює з моїм редактором :) відкрийте повноекранний приклад або просто запустіть preview()клавіатуру або тайм-аут. Він створений для будь-якого виду налаштування.
Оскар Годсон,

1
Отже, під редактором - як це працює зараз. Після натискання попереднього перегляду відображається прихований попередній перегляд, який оновлюється написаним вами. Повноекранний режим робить це (сортування) під час введення тексту. Щоб зробити свій власний попередній перегляд, ви можете зробити щось подібне: jsbin.com/otuyub/edit#javascript,html
Оскар Годсон

1
Перехопити? Ви можете зробити: editor.on('save', function(file) { console.log(file.content) })якщо це те, що ви маєте на увазі. Це виплюне вміст файлу щоразу, коли файл буде збережено.
Оскар Годсон,

1
Крім того, ви можете використовувати on('update')замість збереження. Збереження буде спрацьовувати багато, якщо у вас увімкнено автозбереження. Оновлення буде запускатися лише тоді, коли щось зміниться. epiceditor.com/#events
Оскар Годсон

1
FYI кожному, хто читає це: github.com/OscarGodson/EpicEditor/issues/137 - проблема в тому, що він намагався запускатися локально, а IE9 має обмеження безпеки проти використання localStorage локально через файл: \\\
Оскар Годсон

2

Питання давнє, але, сподіваємось, це може комусь допомогти. Нещодавно я опублікував робочу версію мого власного редактора розмітки Javascript, uedit . Ви можете знайти вихідний код тут . Він працює в більшості браузерів (включаючи IE6 +) і не залежить від жодної зовнішньої бібліотеки JS.


2

Спробувавши за допомогою декількох плагінів вирішити власні потреби пропонувати MarkDown seudo-WYSIWYG, я закінчив реалізацію власного:

Можливо, він не настільки потужний, як усі рішення, коментовані тут, але я думаю, що жодне з них не настільки просто і легко інтегрувати та налаштовувати .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.