mirror of
https://git.studyfor.work/actions/action-send-mail.git
synced 2026-01-12 17:16:03 +08:00
63 lines
2.0 KiB
JavaScript
63 lines
2.0 KiB
JavaScript
/**
|
|
* Create a full HTML document from the processed markdown
|
|
*/
|
|
showdown.subParser('completeHTMLDocument', function (text, options, globals) {
|
|
'use strict';
|
|
|
|
if (!options.completeHTMLDocument) {
|
|
return text;
|
|
}
|
|
|
|
text = globals.converter._dispatch('completeHTMLDocument.before', text, options, globals);
|
|
|
|
var doctype = 'html',
|
|
doctypeParsed = '<!DOCTYPE HTML>\n',
|
|
title = '',
|
|
charset = '<meta charset="utf-8">\n',
|
|
lang = '',
|
|
metadata = '';
|
|
|
|
if (typeof globals.metadata.parsed.doctype !== 'undefined') {
|
|
doctypeParsed = '<!DOCTYPE ' + globals.metadata.parsed.doctype + '>\n';
|
|
doctype = globals.metadata.parsed.doctype.toString().toLowerCase();
|
|
if (doctype === 'html' || doctype === 'html5') {
|
|
charset = '<meta charset="utf-8">';
|
|
}
|
|
}
|
|
|
|
for (var meta in globals.metadata.parsed) {
|
|
if (globals.metadata.parsed.hasOwnProperty(meta)) {
|
|
switch (meta.toLowerCase()) {
|
|
case 'doctype':
|
|
break;
|
|
|
|
case 'title':
|
|
title = '<title>' + globals.metadata.parsed.title + '</title>\n';
|
|
break;
|
|
|
|
case 'charset':
|
|
if (doctype === 'html' || doctype === 'html5') {
|
|
charset = '<meta charset="' + globals.metadata.parsed.charset + '">\n';
|
|
} else {
|
|
charset = '<meta name="charset" content="' + globals.metadata.parsed.charset + '">\n';
|
|
}
|
|
break;
|
|
|
|
case 'language':
|
|
case 'lang':
|
|
lang = ' lang="' + globals.metadata.parsed[meta] + '"';
|
|
metadata += '<meta name="' + meta + '" content="' + globals.metadata.parsed[meta] + '">\n';
|
|
break;
|
|
|
|
default:
|
|
metadata += '<meta name="' + meta + '" content="' + globals.metadata.parsed[meta] + '">\n';
|
|
}
|
|
}
|
|
}
|
|
|
|
text = doctypeParsed + '<html' + lang + '>\n<head>\n' + title + charset + metadata + '</head>\n<body>\n' + text.trim() + '\n</body>\n</html>';
|
|
|
|
text = globals.converter._dispatch('completeHTMLDocument.after', text, options, globals);
|
|
return text;
|
|
});
|