• Stars
    star
    419
  • Rank 103,397 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

👻 Lightweight realtime markdown viewer and editor - Simple, clean and beautiful https://liyasthomas.github.io/marcdown

Build Status GitHub release repo size license contributions welcome Website Donate

marcdown Marcdown

👻 Lightweight markdown viewer and editor by Liyas Thomas


marcdown marcdown

Features ✨

❤️ Lightweight and minimal: Crafted with minimalistic UI design

🔌 Real-time editor: WYSIWYG (what you see is what you get) markdown editor using MarkedJS

  • Built for speed
  • Light-weight while implementing all markdown features from the supported flavors & specifications.

🖊️ Code highlighting: Syntax highlighting with highlightjs

  • 185 languages and 89 styles
  • Automatic language detection
  • Multi-language code highlighting

📐 Math support: MathJax for LaTeX, MathML, and AsciiMath notations

  • Use MathML, TeX, and ASCIImath as input and produce HTML+CSS, SVG, or MathML as output.

🌐 PWA: Progressive web app.

  • Works offline after first use
  • Install as a Web app on your phone or Desktop app on your PC

Real-time viewer: View changes as you type

🖐️ Drag and drop: Grab a markdown file and drop to the editor

📜 Scroll sync: Editor and viewer scroll along with you

🌙 Dark mode: Turn the lights off!


Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

What things you need to install the software and how to install them.

  • Marcdown can be embedded into any web page consisting a <textarea></textarea> tag.
  • A browser with ES6 support.
  • Wonder! ❤️

Demo

https://liyasthomas.github.io/marcdown

  1. Paste/type markdown on left
  2. View preview on right
  3. Save Markdown file

You're done!


Installing

A step by step series of examples that tell you've to get a development environment running.

Step 1: Include MarkedJS and Marcdown.js

<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>

<script src="https://cdn.jsdelivr.net/gh/liyasthomas/marcdown/marcdown.min.js"></script>

Step 2: Define a <textarea id="getm" onkeyup="keyUp()"></textarea> tag inside <body></body>

<textarea id="getm" placeholder="paste markdown here ✨" onkeyup="keyUp()"></textarea>

Step 3: Define a <div id="viewer"></div> tag inside <body></body>

<div id="viewer"></div>

Step 4: Define buttons with actions such as bold, italic, strike, h1, ul, ol, code, link etc.

<button onclick="apply('bold')" title="Bold">B</button>

Full list of actions:

<button onclick="apply('bold')" title="Bold">B</button>

<button onclick="apply('italic')" title="Italic"><i>I</i></button>

<button onclick="apply('strike')" title="Strikethrough"><strike>S</strike></button>

<button onclick="apply('h1')" title="Header 1">H1</button>

<button onclick="apply('h2')" title="Header 2">H2</button>

<button onclick="apply('h3')" title="Header 3">H3</button>

<button onclick="apply('ul')" title="Unordered list">●</button>

<button onclick="apply('ol')" title="Ordered list">1.</button>

<button onclick="apply('check')" title="Check list">✔</button>

<button onclick="apply('bq')" title="Blockquote">””</button>

<button onclick="apply('ic')" title="Inline code">I&lt;></button>

<button onclick="apply('bc')" title="Block code">&lt;>B</button>

<button onclick="apply('link')" title="Link">A</button>

<button onclick="apply('image')" title="Image">I</button>

<button onclick="apply('hr')" title="Horizontal rule">——</button>

<button onclick="apply('table')" title="Table">⚏</button>

Example HTML file:

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<title>Marcdown</title>
	<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
	<script src="https://cdn.jsdelivr.net/gh/liyasthomas/marcdown/marcdown.min.js"></script>
</head>

<body>
	<textarea id="getm" placeholder="paste markdown here ✨" onkeyup="keyUp()"></textarea>
	<button onclick="apply('bold')" title="Bold">B</button>
	<button onclick="apply('italic')" title="Italic"><i>I</i></button>
	<button onclick="apply('strike')" title="Strikethrough"><strike>S</strike></button>
	<button onclick="apply('h1')" title="Header 1">H1</button>
	<button onclick="apply('h2')" title="Header 2">H2</button>
	<button onclick="apply('h3')" title="Header 3">H3</button>
	<button onclick="apply('ul')" title="Unordered list">●</button>
	<button onclick="apply('ol')" title="Ordered list">1.</button>
	<button onclick="apply('check')" title="Check list">✔</button>
	<button onclick="apply('bq')" title="Blockquote">””</button>
	<button onclick="apply('ic')" title="Inline code">I&lt;></button>
	<button onclick="apply('bc')" title="Block code">&lt;>B</button>
	<button onclick="apply('link')" title="Link">A</button>
	<button onclick="apply('image')" title="Image">I</button>
	<button onclick="apply('hr')" title="Horizontal rule">——</button>
	<button onclick="apply('table')" title="Table">⚏</button>
	<div class="markdown" id="viewer"></div>
</body>

</html>

Deployment

Add additional notes about how to deploy this on a live system.

Will be explained later

Built with

  • MarkedJS - For markdown parser
  • highlightjs - For code highlighting
  • MathJax - For LaTeX, MathML, and AsciiMath notations
  • Chromium - Thanks for being so fast!
  • HTML - For the web framework
  • CSS - For styling components
  • JavaScript - For magic!

Contributing

Please read CONTRIBUTING for details on our CODE OF CONDUCT, and the process for submitting pull requests to us.


Continuous Integration

We use Travis CI for continuous integration. Check out our Travis CI Status.


Versioning

This project is developed by Liyas Thomas using the Semantic Versioning specification. For the versions available, see the releases on this repository.


Change log

See the CHANGELOG file for details.


Authors

Lead Developers

Thanks

See the list of contributors who participated in this project.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments

More Repositories

1

mnmlurl

🔗 Minimal URL - Modern URL shortener with support for custom alias & can be hosted even in GitHub pages [DEPRECATED]
JavaScript
329
star
2

books

📚 Find books from Google Play Books - For all the book lovers in the world. https://liyasthomas.github.io/books
HTML
235
star
3

banner

🚩 A simple and clean banner generator - Banners on the go. https://liyasthomas.github.io/banner
JavaScript
216
star
4

colorbook

🎨 Color schemes for UI design - Optimized for foreground, background, border, etc. https://liyasthomas.github.io/colorbook
JavaScript
194
star
5

lvr

👓 Augmented Reality for everyone - Out of the world experiences
HTML
98
star
6

ebb

🌊 Feel life again from a new perspective. https://ebb.vercel.app
Vue
84
star
7

website

🍭 Home - Where I live https://liyasthomas.web.app
JavaScript
43
star
8

ludacris

🎶 Get song lyrics. No BS. https://liyasthomas.github.io/ludacris
CSS
38
star
9

parkinglot

🅿 Parking lot registration system built with pure JavaScript, HTML, CSS. https://liyasthomas.github.io/parkinglot
HTML
28
star
10

mnmlurl-extension

[DEPRECATED] 💁 Browser extension for Minimal URL - Modern URL shortener with support for custom alias & can be hosted even in GitHub pages
HTML
21
star
11

aeiou

🔮 Web platform to make augmented reality fun & interactive - Your augmented reality workspace
JavaScript
20
star
12

pineapple-notes

🍍 A simple, clean note app - Get organized from everywhere on earth. https://pineapple-notes.firebaseapp.com/
HTML
19
star
13

snake

🐍 Snakes! Snakes everywhere!
HTML
18
star
14

liyasthomas.com

https://liyasthomas.com
Vue
17
star
15

helloish

👋 Project done for @hankified https://helloish.com
JavaScript
16
star
16

metadata

🌌 File metadata viewer - Build with Electron
JavaScript
14
star
17

liyasthomas

~=[,,_,,]:3
13
star
18

savvy

Build better products with customer feedback.
CSS
13
star
19

material-things

💎 Reusable Material Design components
HTML
7
star
20

templates

🗂 Collection of reusable templates and assets
JavaScript
7
star
21

fuse-org

🐳 Website for @FuseOrg
HTML
7
star
22

stack

💫 Keep on stackin'
HTML
7
star
23

saapshot

📷 Camera app
JavaScript
6
star
24

threejs

🐵 threejs demos
HTML
6
star
25

shooter

💣 Shoot em down!
HTML
5
star
26

open-sauced-goals

5
star
27

test-nuxt-crowdin

Vue
3
star