Skip to content

Repository files navigation

Draw.io Markdown Plugin

This draw.io plugins integrates the markdown generator.

Markdown supports:

different version support different function

Overview

  • Example

Usage

  • double click on a shape and edit the markdown script, the shape will be redrawn after leaving the editor

How to build

  1. git clone --recursive https://github.com/nopeslide/drawio_markdown_plugin.git ~/drawio_markdown_plugin
  2. cd ~/drawio_markdown_plugin/drawio_desktop
  3. npm install
  4. npm run build

How to install

  1. open draw.io desktop
  2. select on the top menu bar Extras/Plugins...
  3. click Add
  4. click Select File... for External Plugins:
  5. select ~/drawio_markdown_plugin/drawio_desktop/dist/markdown-plugin.webpack.js
  6. click OK
  7. click Apply
  8. confirm Dialog

copy the code in the dist/

Draw.io copies the plugin into an internal directory, making updates impossible!

To link the plugin with the repository:

  1. run ln -sfr ~/drawio_markdown_plugin/drawio_desktop/dist/markdown-plugin.webpack.js ~/.config/draw.io/plugins/

API

copy from drawio source code

if(this.isHtmlLabel(cell)){vartemp=document.createElement("div");temp.innerHTML=Graph.sanitizeHtml(this.getLabel(cell));varlinks=temp.getElementsByTagName("a");varchanged=false;for(vari=0;i<links.length;i++){href=links[i].getAttribute("href");if(href!=null&&href.substring(0,17)=="data:action/json,"){links[i].setAttribute("href",this.updateCustomLink(mapping,href));changed=true;}}if(changed){this.labelChanged(cell,temp.innerHTML);}}
// HTML entities are displayed as plain text in wrapped plain text labelsthis.graph.cellRenderer.getLabelValue=function(state){varresult=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);if(state.view.graph.isHtmlLabel(state.cell)){if(state.style["html"]!=1){result=mxUtils.htmlEntities(result,false);}else{result=Graph.sanitizeHtml(result);}}returnresult;};
  • Editor.convertHtmlToText

how to deal with such text

h1,h2 {
font-size:16pt;
}
conststyleSheet=newCSSStyleSheet();styleSheet.replaceSync(cssText);console.log(styleSheet);constrenderPart=document.querySelector("docs-mad");for(construleofstyleSheet.cssRules){const{ selectorText }=rule;constelems=renderPart.querySelectorAll(selectorText);for(constelemofelems){conststyleDeclaration=rule.style;for(constpropertyofstyleDeclaration){elem.style[property]=styleDeclaration[property];}}}

References

About

No description, website, or topics provided.

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages