1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /**
- * Turn Markdown link shortcuts into XHTML <a> tags.
- */
- 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;
- });
|