Skip to content

Quickly load markdown (eg. README.md) from a public url (eg. your git repository) and place it in your DOM

License

Notifications You must be signed in to change notification settings

panta82/markdown-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Markdown loader

Here's what this script does:

  • Load markdown file from a publically available link (eg. README.md on github.com)
  • Fix up relative URLs for images and links
  • Compile it into html
  • Optionally display straight in DOM

There is special handling for github links. You can just paste the URL to your repo, markdown loader will auto-resolve proper githubusercontent.com to your README.md file.

I intend to use this to "synchronize" markdown and html files in my git repositories without too much fuss.

Demo: Project's auto-generated GH page

Get it from github releases.

Automatic loading

Any element with data-md-load attribute will be filled with markdown from the specified URL. You must include the markdown-loader.js after the target DOM element (or use async attribute).

<div data-md-load="https://github.com/panta82/markdown-loader"></div>

<!-- more stuff -->

<script src="https://github.com/panta82/markdown-loader/releases/download/1.0.1/markdown-loader.js"></script>

If you want to avoid annoying jumping of HTML when markdown is loaded, you can use the synchronous variant. In this case, I suggest you place your <script> tag right after the target element. This will make it seem as if markdown is part of your html document.

<div data-md-load-sync="https://github.com/panta82/markdown-loader"></div>
<script src="markdown-loader.js"></script>

<!-- more stuff -->

Note that you will get an annoying console warning about deprecated synchronous AJAX support (at least in Chrome), so pick your poison.

Manual usage

You can see full options in opts.js;

<div id="readme"></div>

<script src="markdown-loader.js"></script>
<script>
	loadMarkdown({
		// From where to load the markdown. Need to support CORS
		source: 'https://github.com/panta82/markdown-loader', // we will auto-resolve to README.md here
		
		// If true, we will use synchronous AJAX request
		synchronous: true,

		// Element id or reference where to place the loaded content
		target: 'readme'
	}, function (err, el) {
		if (err) {
			// Handle error
		} else {
			console.log(el); // The target <div> element
		}
	});

	// You can also use it as a pure function, without DOM. String will auto-convert into "source"
	loadMarkdown('https://github.com/panta82/markdown-loader/blob/master/README.md', function (err, html) {
		// HTML string
		console.log(html);
	});
</script>

Development

npm install -g gulp

...then...

git clone https://github.com/panta82/markdown-loader.git
cd markdown-loader
npm install
gulp watch

Distribution files will be created inside the dist folder.

Run test with:

npm run test

Licence

MIT

About

Quickly load markdown (eg. README.md) from a public url (eg. your git repository) and place it in your DOM

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published