mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-16 08:04:45 -04:00
Add support of embed pdf
This commit is contained in:
parent
558304ff62
commit
3424cdd771
6 changed files with 52 additions and 16 deletions
|
@ -83,6 +83,20 @@ function slugifyWithUTF8(text) {
|
|||
return newText;
|
||||
}
|
||||
|
||||
function isValidURL(str) {
|
||||
var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
|
||||
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
|
||||
'((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
|
||||
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
|
||||
'(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
|
||||
'(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
|
||||
if (!pattern.test(str)) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//parse meta
|
||||
function parseMeta(md, edit, view, toc, tocAffix) {
|
||||
var lang = null;
|
||||
|
@ -403,6 +417,16 @@ function finishView(view) {
|
|||
}
|
||||
});
|
||||
});
|
||||
//pdf
|
||||
view.find(".pdf.raw").removeClass("raw")
|
||||
.each(function (key, value) {
|
||||
var url = $(value).attr('data-pdfurl');
|
||||
var inner = $('<div></div>');
|
||||
$(this).append(inner);
|
||||
PDFObject.embed(url, inner, {
|
||||
height: '400px'
|
||||
});
|
||||
});
|
||||
//render title
|
||||
document.title = renderTitle(view);
|
||||
}
|
||||
|
@ -901,6 +925,20 @@ var speakerdeckPlugin = new Plugin(
|
|||
return div[0].outerHTML;
|
||||
}
|
||||
);
|
||||
//pdf
|
||||
var pdfPlugin = new Plugin(
|
||||
// regexp to match
|
||||
/{%pdf\s*([\d\D]*?)\s*%}/,
|
||||
|
||||
// this function will be called when something matches
|
||||
function (match, utils) {
|
||||
var pdfurl = match[1];
|
||||
if (!isValidURL(pdfurl)) return match[0];
|
||||
var div = $('<div class="pdf raw"></div>');
|
||||
div.attr('data-pdfurl', pdfurl);
|
||||
return div[0].outerHTML;
|
||||
}
|
||||
);
|
||||
|
||||
//yaml meta, from https://github.com/eugeneware/remarkable-meta
|
||||
function get(state, line) {
|
||||
|
@ -949,4 +987,5 @@ md.use(vimeoPlugin);
|
|||
md.use(gistPlugin);
|
||||
md.use(tocPlugin);
|
||||
md.use(slidesharePlugin);
|
||||
md.use(speakerdeckPlugin);
|
||||
md.use(speakerdeckPlugin);
|
||||
md.use(pdfPlugin);
|
Loading…
Add table
Add a link
Reference in a new issue