mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
var httpGet = function(url, type, callback) {
|
|
var xmlHttp = new XMLHttpRequest();
|
|
xmlHttp.open("GET", url);
|
|
xmlHttp.responseType = type;
|
|
|
|
xmlHttp.onload = function() {
|
|
callback(xmlHttp.response);
|
|
};
|
|
|
|
xmlHttp.send(null);
|
|
};
|
|
|
|
var getPlantUMLOnlineURL = function(server, format, text) {
|
|
var s = unescape(encodeURIComponent(text));
|
|
var arr = [];
|
|
for (var i = 0; i < s.length; i++) {
|
|
arr.push(s.charCodeAt(i));
|
|
}
|
|
|
|
var compressor = new Zopfli.RawDeflate(arr);
|
|
var compressed = compressor.compress();
|
|
var url = server + "/" + format + "/" + encode64_(compressed);
|
|
return url;
|
|
};
|
|
|
|
var renderPlantUMLOnline = function(server, format, text, callback, data) {
|
|
var url = getPlantUMLOnlineURL(server, format, text);
|
|
|
|
if (format == 'png') {
|
|
httpGet(url, 'blob', function(resp) {
|
|
var blob = resp;
|
|
var reader = new FileReader();
|
|
reader.onload = function () {
|
|
var dataUrl = reader.result;
|
|
var png = dataUrl.substring(dataUrl.indexOf(',') + 1);
|
|
callback(data, format, png);
|
|
};
|
|
|
|
reader.readAsDataURL(blob);
|
|
});
|
|
} else if (format == 'svg') {
|
|
httpGet(url, 'text', function(resp) {
|
|
callback(data, format, resp);
|
|
});
|
|
}
|
|
};
|