Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/inacho/bootstrap-markdown-editor
Markdown editor for Bootstrap with preview, image upload support, shortcuts and other features.
https://github.com/inacho/bootstrap-markdown-editor
Last synced: 3 days ago
JSON representation
Markdown editor for Bootstrap with preview, image upload support, shortcuts and other features.
- Host: GitHub
- URL: https://github.com/inacho/bootstrap-markdown-editor
- Owner: inacho
- License: mit
- Created: 2015-01-14T15:57:28.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-01-24T13:36:42.000Z (almost 6 years ago)
- Last Synced: 2025-01-01T02:09:29.305Z (10 days ago)
- Language: JavaScript
- Homepage:
- Size: 136 KB
- Stars: 294
- Watchers: 10
- Forks: 73
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bootstrap Markdown Editor
[![Built with Grunt](https://cdn.gruntjs.com/builtwith.png)](http://gruntjs.com/)
Markdown editor for Bootstrap with preview, image upload support, shortcuts and other features.
This is a jQuery plugin.**Demo**: http://inacho.github.io/bootstrap-markdown-editor/
## Requirements
* Bootstrap 3
* jQuery
* Ace editor (http://ace.c9.io)## Features
* Preview support
* Image upload support (drag and drop & button)
* Shortcuts
* Multiples instances on the same page
* Fullscreen
* Themes
* i18n## Screenshot
![Screenshot 1](screenshots/screenshot-01.png)
## Installation with Bower
bower install bootstrap-markdown-editor --save
## Example Usage
Include the CSS files of Bootstrap and Bootstrap Markdown Editor:
```html
```
Include the scripts of jQuery, Ace and Bootstrap Markdown Editor.
Optionally, include the script of Bootstrap to enable tooltips:```html
```
Create a textarea for the editor with optional content in markdown format:
```html
# Test
```Initialize the editor:
```javascript
$('#myEditor').markdownEditor();
```## Implementing the preview
You have to implement the parsing of the Markdown.
Bootstrap Markdown Editor provides you a callback where you have to parse the markdown and return the html.
To activate the preview you have to use the following options:```javascript
$('#myEditor').markdownEditor({
// Activate the preview:
preview: true,
// This callback is called when the user click on the preview button:
onPreview: function (content, callback) {// Example of implementation with ajax:
$.ajax({
url: 'preview.php',
type: 'POST',
dataType: 'html',
data: {content: content},
})
.done(function(result) {
// Return the html:
callback(result);
});}
});
```## Implementing the image upload
You have to implement the server side part of the upload process.
To activate the image uploads you have to use the following options:```javascript
$('#myEditor').markdownEditor({
imageUpload: true, // Activate the option
uploadPath: 'upload.php' // Path of the server side script that receive the files
});
```In your server side script you have to return an array of the **public path** of the successfully uploaded images in json format.
Example in PHP:
```php
$uploadedFiles = array();if (! empty($_FILES)) {
foreach ($_FILES as $file) {
if (superAwesomeUploadFunction($file)) {
$uploadedFiles[] = '/img/' . urlencode($file['name']);
}
}
}echo json_encode($uploadedFiles);
```Response example:
```
["/path/to/my-picture.jpg"]
```## Shortcuts
The following shortcuts are available.
They can be used with or without selected text.- **Ctrl-B / ⌘B**: Bold
- **Ctrl-I / ⌘I**: Italic
- **Ctrl-K / ⌘K**: Link## Plugin documentation
### Options
The following options can be passed as an object at the initialization of the plugin:
```javascript
$('#myEditor').markdownEditor({
// Options
});
```Also, you can override the plugin default options. Example:
```javascript
$.fn.markdownEditor.defaults.width = '250px';
```#### width
**Type**: string
**Default**: '100%'The width of the editor
#### height
**Type**: string
**Default**: '400px'The height of the editor
#### fontSize
**Type**: string
**Default**: '14px'The font size of the editor
#### theme
**Type**: string
**Default**: 'tomorrow'The theme of the editor. See the available themes at the homepage of Ace (http://ace.c9.io)
#### softTabs
**Type**: boolean
**Default**: truePass false to disable the use of soft tabs. Soft tabs means you're using spaces instead of the tab character ('\t')
#### fullscreen
**Type**: boolean
**Default**: trueEnable / disable fullscreen
#### imageUpload
**Type**: boolean
**Default**: falseEnable / disable the upload of images. If enabled, you have to specify the option `uploadPath`
#### uploadPath
**Type**: uploadPath
**Default**: ''The path of the server side script that receives the images. The script has to return an array of the **public path** of the successfully uploaded images in json format.
#### preview
**Type**: boolean
**Default**: falseEnable / disable the preview. If enabled, you have to specify the option `onPreview`
#### onPreview
**Type**: function
**Default**:```javascript
function (content, callback) {
callback(content);
}
```This callback is called when the user clicks on the preview button and has two parameters:
**content** that contains the text in markdown.
**callback** is function that you have to call with the parsed html as a parameter#### label
**Type**: object
**Default**:```javascript
{
btnHeader1: 'Header 1',
btnHeader2: 'Header 2',
btnHeader3: 'Header 3',
btnBold: 'Bold',
btnItalic: 'Italic',
btnList: 'Unordered list',
btnOrderedList: 'Ordered list',
btnLink: 'Link',
btnImage: 'Insert image',
btnUpload: 'Uplaod image',
btnEdit: 'Edit',
btnPreview: 'Preview',
btnFullscreen: 'Fullscreen',
loading: 'Loading'
}
```This object contains the strings that can be translated
### Methods
The methods are invoked passing the name of the method as string.
```javascript
var content = $('#myEditor').markdownEditor('content'); // Returns the content of the editor
$('#myEditor').markdownEditor('setContent', content); // Sets the content of the editor
```## License
Licensed under MIT (https://github.com/inacho/bootstrap-markdown-editor/blob/master/LICENSE).
## Authors
[Ignacio de Tomás](https://github.com/inacho)