โปรแกรมแก้ไขข้อความ Markdown WYSIWYG ในตัว


101

ในการค้นหาโปรแกรมแก้ไข WYSIWYG ที่ตรงไปตรงมาสำหรับโค้ด Markdown ฉันไม่พบ UI ที่เปรียบเทียบได้กับ CkEditor, TinyMCE, ect

โดยเฉพาะอย่างยิ่งตัวแก้ไข Markdown "WYSIWYG" ที่มักได้รับการแนะนำ (เช่นโพสต์ลักษณะนี้ ) ไม่ใช่ตัวแก้ไขแบบ WYSIWYG ที่บริสุทธิ์ในแง่ที่ว่าผู้ใช้ยังคงเขียน Markdown แบบดิบ ( MarkItUp ) หรือไปที่ขั้นสูงสุดอื่น ๆ ของการแก้ไขในบรรทัดโดยไม่มี การควบคุมมาตรฐาน ( Hallo )

ฉันต้องการบางอย่างระหว่างนั้น

ฉันกำลังมองหาตัวแก้ไข Markdown ที่มีลักษณะและทำหน้าที่เหมือนกล่องข้อความ CkEditor ที่ถูกถอดออกและยอมรับและส่งออก Markdown ควรมีแถบเครื่องมือที่มีชุดตัวเลือกการจัดรูปแบบขั้นต่ำ (B, I, U, รายการ, ect) และพื้นที่ป้อนข้อความควรแสดง Markdown ที่แปลงแล้วไม่ใช่รหัสดิบ ควรมีปุ่ม Source ที่ช่วยให้ผู้ใช้สามารถแก้ไข Raw Markdown ได้ แต่ก็เป็นทางเลือก เช่น:

ใส่คำอธิบายภาพที่นี่

ฉันได้รับเหตุผลสำหรับ Markdown / wiki, ect - ความปลอดภัยที่มีให้ ฉันไม่รังเกียจที่จะป้อนรหัสดิบเหมือนที่ SE แต่ผู้ใช้ของฉันไม่ใช่คนเก่งและไม่คิดว่าจะสนุก พวกเขาไม่ต้องการเห็น * * * ___ และเว้นวรรคผสมกับข้อความ ใช้ในการแก้ไขสไตล์ "Word" และมีประสิทธิผลมากที่สุดในสภาพแวดล้อมนั้น

ดังนั้น - มีโปรแกรมแก้ไข WYSIWYG สำหรับ Markdown หรือไม่? ฉันกำลังเขียน PHP ดังนั้นสิ่งที่ฉันสามารถเรียกใช้กับคลาสได้ก็จะสมบูรณ์แบบ


อัปเดตวันที่ 23 กันยายน 2558

CKEditor ตอนนี้มีMarkdown addonที่ไม่สิ่งนี้แน่นอน โครงการ addon เป็นโฮสต์บน GitHub

ภาพหน้าจอ:

มาร์กดาวน์แบบ WYSIWYG

ที่มา markdown


13 เม.ย. 2015 อัปเดตผู้
ที่อ้างว่าพัฒนา CKEditor กล่าวว่าการปรากฏตัวของCommonMarkเป็นตัวเปลี่ยนเกมและเราอาจเห็นอินเทอร์เฟซมาร์กอัปที่เหมาะสมสำหรับ CKEditor (อ่านความคิดเห็นสำหรับเรื่องราวทั้งหมด)


อัปเดต 6 ก.พ. 2558

ตอนนี้ CKEditor มาพร้อมกับปลั๊กอินที่ส่งออก (และรับเป็นอินพุต) BBCode

การสาธิต: http://ckeditor.com/demo#bbcode


Ahola Editor ตามที่แนะนำในคำตอบสำหรับคำถาม SO ที่คุณเชื่อมโยงคือโปรแกรมแก้ไข HTML5 แบบ WYSIWYG ซึ่งดูเหมือนจะทำในสิ่งที่คุณเป็น มันยังมีคำใบ้ของ Office ribbon มีเหตุผลที่คุณลดราคานี้หรือไม่?
คริส

1
ฉันเกรงว่าจะเข้าใจความคิดเห็นล่าสุดของคุณไม่ได้จริงๆ Ahola คือ "แก้ไขในสถานที่" เช่นเดียวกับบรรณาธิการ WYSIWYG ทั้งหมด กล่องแก้ไข Aholda เป็นเพียง a divและแถบเครื่องมือเป็นอีกอันหนึ่งdivซึ่งอาจเป็นเพียงสิ่งเดียวในหน้า โซลูชัน Ahola ตรงตามความต้องการของคุณสำหรับ"ชุดตัวเลือกการจัดรูปแบบขั้นต่ำ (B, I, U, รายการ, ect) และพื้นที่ป้อนข้อความควรแสดง Markdown ที่แปลงแล้วไม่ใช่รหัสดิบ" โปรดอธิบายให้ชัดเจนยิ่งขึ้นว่าเหตุใดจึงไม่ใช่ทางแก้ปัญหาที่คุณจะพิจารณา
คริส

1
Markdown แทนที่ตัวแก้ไข WYSIWYG ทั้งหมดด้วยตัวเอง ทำไมคุณถึงต้องเอาท์พุท markdown?
พล

4
@ พล: เพราะมันปลอดภัยที่จะจัดเก็บและแสดงในภายหลังเมื่อเทียบกับ HTML?
Dan Abramov

1
ฉันไม่ได้รับคำถามนี้เช่นกัน ไม่ว่าคุณจะใช้ Markdown เพื่อสร้าง HTML หรือคุณใช้โปรแกรมแก้ไขแบบ WYSIWYG เพื่อสร้าง HTML ทำไมคุณถึงต้องการใช้โปรแกรมแก้ไขแบบ WYSIWYG เพื่อสร้าง Markdown หากนั่นคือสิ่งที่คุณต้องการจริงๆคุณสามารถใช้ CKeditor และแปลง HTML เป็น Markdown ได้ตลอดเวลา
mb21

คำตอบ:


13

เมื่อวันก่อนฉันค้นคว้าในเรื่องนี้และฉันไม่พบตัวแก้ไข WYSIWYG ที่ดีพร้อมเอาต์พุต Markdown ในความเป็นจริงก่อนอื่นคุณต้องสร้างตัวแก้ไข WYSIWG Markdown คือตัวแก้ไข WYSIWG HTML และมีเพียงไม่กี่ตัวที่ใช้งานได้ในตลาด

มีโอกาสที่คุณจะสามารถสร้างdataProcessorCKEditor ซึ่งจะเปลี่ยนโปรแกรมแก้ไข HTML เป็นตัวแก้ไข Markdown เรามีปลั๊กอินสำหรับ BBCode ที่ใช้งานได้เช่นนี้ (ดูhttp://nightly-v4.ckeditor.com/3737/samples/bbcode.html )

ทั้งหมดที่คุณต้องทำคือการใช้อินเตอร์เฟซนี้http://nightly-v4.ckeditor.com/ckeditor_api/#!/api/CKEDITOR.dataProcessor หากคุณตรวจสอบโค้ดของปลั๊กอิน BBCode คุณจะเห็นแฮ็กและเทคนิคบางอย่างเนื่องจากสถาปัตยกรรมของ CKEditor ในปัจจุบันยังไม่พร้อม (ยัง) ที่จะสร้างตัวประมวลผลข้อมูลดังกล่าว อย่างไรก็ตามฉันเชื่อว่าหากคุณต้องการให้มีตัวเลือกการจัดแต่งทรงผมเพียงไม่กี่ตัวคุณควรจะใช้การสนับสนุน Markdown ได้อย่างรวดเร็ว


30

SimpleMDEมือใหม่อาจเป็นคำตอบ ฉันหาอะไรแบบนี้มาเป็นเดือนแล้ว ฉันแปลกใจที่สิ่งนี้ไม่ปรากฏในผลการค้นหาที่สูงกว่า ฉันต้องผ่านประกาศเกี่ยวกับlepture / editorเพื่อค้นหาสิ่งนี้

ใส่คำอธิบายภาพที่นี่


1
ว้าวขอบคุณสำหรับการแบ่งปัน - นี่คือสิ่งที่ฉันกำลังมองหา สุดยอด!
Jared White

1
ขอบคุณ HNL เหมือนกันที่นี่
Melvin

4
มันไม่ใช่ WYSIWYG ที่แท้จริง มันผสม markdown ลงในหน้าต่างตัวแก้ไข สิ่งที่ต้องการในคำถามนี้คือตัวแก้ไขที่แสดงทั้งมุมมองที่เสร็จสมบูรณ์และแหล่งที่มาในมุมมองที่แยกจากกัน (พร้อมปุ่ม 'แหล่งที่มา' บนแถบเครื่องมือสำหรับการอยู่ไม่สุข)
coder

9

แก้ไข 23 กันยายน 2558

CKEditor ตอนนี้มีMarkdown addonที่ไม่สิ่งนี้แน่นอน โครงการ addon เป็นโฮสต์บน GitHub

ภาพหน้าจอ:

มาร์กดาวน์แบบ WYSIWYG

ที่มา markdown


ตามที่โพสต์ไว้ในการอัปเดตเมื่อวันที่ 6 กุมภาพันธ์ 2015 ของฉันตอนนี้CKEditorมีปลั๊กอินที่อนุญาตให้ป้อนข้อมูลและเอาต์พุต BBCode

ดูการสาธิตได้ที่นี่: http://ckeditor.com/demo#bbcode

แก้ไข 13 เมษายน 2558: มี
คนที่อ้างว่าพัฒนา CKEditor กล่าวว่าการปรากฏตัวของCommonMarkเป็นตัวเปลี่ยนเกมและเราอาจเห็นอินเทอร์เฟซมาร์กอัปที่เหมาะสมสำหรับ CKEditor (อ่านความคิดเห็นสำหรับเรื่องราวทั้งหมด)


"สิ่งนี้แน่นอนหรือไม่" ตามสามัญของ ckeditor ส่วนเสริมยังคงแสดงผล HTML และไม่ Markdown ด้วยส่วนเสริมนี้
user764754

8

ปากกาเป็นใหม่ (ใช้งานเป็นปี 2014) แก้ไขแบบ WYSIWYG ที่Markdown เอาท์พุท
มันไม่สมบูรณ์ - ฉันมีปัญหากับการวาง HTML ที่นั่น - แต่มันก็ใช้ได้

แก้ไข: ขออภัย! มันไม่แสดงผล Markdown Walery Strauchชี้ให้เห็นในความคิดเห็นว่าสัญญาณการจัดรูปแบบ Markdown ที่ฉันเห็นนั้นเป็นกฎองค์ประกอบหลอก CSS:

ถึงกระนั้นฉันจะปล่อยไว้ที่นี่เป็นตัวเลือกเนื่องจากมีบางคนเพิ่มคะแนนคำตอบนี้และอาจมีประโยชน์กับใครบางคน


การสาธิตปากกาเป็นแบบแก้ไขในสถานที่ไม่ใช่สิ่งที่ OP (ฉัน) สนใจ / ไม่มีเวลาติดตั้งในวินาทีนี้ มีตัวเลือกกล่องข้อความแบบเดิมหรือไม่?
ผู้เขียนโค้ด

@Acoder: ไอ้เลว! ฉันไม่รู้ว่าคุณต้องการแถบเครื่องมือแบบคงที่ มีอะไรผิดปกติกับHalo ? มันมีแถบเครื่องมือแล้ว ..
Dan Abramov

2
นี่ยังคงเป็นเลย์เอาต์ css ในภาพหน้าจอนี้ ฉันต้องการคว้าข้อมูลมาร์กดาวน์ (ดูภาพหน้าจอของฉันi.imgur.com/fM4jFl2.png )
Walery Strauch

1
@WaleryStrauch ว้าวฉันโง่จริงๆ ฉันไม่รู้ว่ามันไม่ใช่ผลลัพธ์จริงๆ ขออภัยที่ทำให้เสียเวลา! ฉันจะอัปเดตคำตอบ
Dan Abramov

3
.. ตอนนี้ดูเหมือนว่าจะมีการสนับสนุนเบต้าอย่างน้อยสำหรับการส่งออก Markdown
pjz

4

ฉันใช้โปรแกรมแก้ไขที่เรียบง่ายมากที่อนุญาตให้แก้ไขเนื้อหาของ<textarea>Markdown ในรูปแบบ WYSIWYG

ผมใช้Hallo ฉันไม่คิดว่าเว็บไซต์ของมันทำให้เห็นได้ชัดว่ามันไม่ใช่ตัวแก้ไข Markdown WYSIWYG แต่การสาธิตสร้างเส้นทางให้เป็นหนึ่งเดียว

Halloอนุญาตให้แก้ไข HTML แบบ WYSIWYG ภายในไฟล์<div>. ฉันใช้จาวาสคริปต์เพื่อซ่อน<textarea>บล็อกใด ๆที่มีwysiwygคลาส CSS เฉพาะแทนที่ด้วย a <div>และคัดลอกเนื้อหาของ<textarea>ไฟล์<div>. การคัดลอกทำงานผ่านShowdownซึ่งสร้าง HTML จาก Markdown

รูทีน Javascript อื่นจะตอบสนองทุกครั้งที่มี<div>การเปลี่ยนแปลงเนื้อหา เป็นชุดเนื้อหากลับเข้ามา <textarea>(ตอนนี้ซ่อนไว้) เนื้อหาถูกรันผ่านto-markdownเพื่อแปลงจาก HTML เป็น Markdown

ถ้า<textarea>เป็นฟิลด์ใน a <form> Markdown ที่แก้ไขแล้วจะถูกส่งไปยังเซิร์ฟเวอร์เมื่อส่งแบบฟอร์มนั้น

แรงบันดาลใจนี้มาจากตัวอย่าง Hallo Markdownโดยเฉพาะไฟล์editor.js ผมใช้ที่เป็นพื้นฐานสำหรับสคริปต์ของตัวเองพร้อมกับhallo.js , showdown.jsและการ markdown.js

สคริปต์ที่ฉันwysiwyg.jsเป็นอนุพันธ์ของeditor.jsจากHallo Markdown ตัวอย่าง บางประเด็นที่ควรทราบ:

  • ฉันใช้สิ่งนี้ในแอปพลิเคชัน Rails (ไม่ใช่เรื่องสำคัญ)
  • มันทำงานบนreadyและต่อpage:loadไปเพราะ Rails ใช้ Turbolinks
  • มันทำงานต่อajaxCompleteเนื่องจากฉันใช้ Ajax สำหรับรายงานข้อผิดพลาดแบบฟอร์ม
  • มีการอ้างอิงอื่น ๆ : JQueryUIและRangy (ผู้ใช้ Rails สามารถใช้อัญมณีjquery-ui-railและrangy-rail )
  • นอกจากนี้Font Awesomeยังใช้สำหรับไอคอนแถบเครื่องมือ เวอร์ชันที่hallo.jsใช้โดยการสาธิตล้าสมัย (ใช้Font Awesomeเวอร์ชันเก่า) ให้ใช้hallo.js จาก GitHubแทน

คุณต้องเพิ่ม CSS class='wysiwyg'ลงในไฟล์ใดก็ได้<textarea>เพื่อเปิดใช้งาน WYSIWYG <textarea>ควร conain ข้อความ Markdown จัดรูปแบบ

ฉันคาดหวังว่าwysiwyg.jsสามารถปรับให้ใช้โปรแกรมแก้ไขอื่นได้อย่างง่ายดายหากคุณไม่ชอบHalloตราบใดที่มันทำงานบน HTML ในไฟล์<div>. มีค่อนข้างน้อยที่จะเลือกจากการไม่ได้ทั้งหมดจะเป็นน้ำหนักเบา แต่Hallo

ชิ้น smilar ของการทำงานที่ผมพบว่าเป็นmarkdown-HTML รูปแบบ ใช้Showdownและto-markdownเดียวกัน


สวัสดี @starfry ฉันพยายามทำซ้ำสิ่งที่คุณอธิบายข้างต้นโดยใช้ของคุณwysiwyg.jsแต่ก็ไม่ประสบความสำเร็จใด ๆ สงสัยว่าคุณมี HTML ประกอบอยู่ในส่วนสำคัญด้วยหรือไม่? รายการเวอร์ชันที่เสถียรของการอ้างอิง ฯลฯ ? ขอบคุณ!
Jameson

1
@Jameson ฉันได้เพิ่มบันทึกบางส่วนของฉันส่วนสำคัญ ฉันหวังว่าพวกเขาจะช่วย! อย่าลังเลที่จะเพิ่มความคิดเห็นในส่วนสำคัญหากคุณมีคำถามใด ๆ
starfry

3

ฉันกำลังมองหาตัวแก้ไข markdown ที่อธิบายไว้ที่ด้านบนของเธรดนี้

คุณเคยเห็น "markdown tools": http://md-wysiwyg.sourceforge.net/

การสาธิต: http://md-wysiwyg.sourceforge.net/cgi-bin/cgi_wysiwyg_test.py/

ดูเหมือนว่าจะค่อนข้างใกล้เคียงกับสิ่งที่เรากำลังมองหา แต่ก็เป็นงานที่สมเหตุสมผลในการใช้ Rich Text และเอาต์พุต markdown อย่างไรก็ตามมันล้มเหลวในข้อยกเว้นการเข้ารหัสเมื่อฉันวาง Rich Text จาก Google เอกสาร


ซอร์สโค้ดสำหรับอันนี้แสดง HTML not markdown
ผู้เขียนโค้ด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.