docs: fix older versions in demo (#2934)
This commit is contained in:
parent
71cc7b9d8b
commit
89ddeec2a0
@ -42,15 +42,13 @@ async function build(currentDir, tmpl) {
|
||||
await build(filename, tmpl);
|
||||
} else {
|
||||
// console.log('Reading file ' + filename);
|
||||
let buffer = await readFile(filename);
|
||||
let html = await readFile(filename, 'utf8');
|
||||
const parsed = parse(filename);
|
||||
if (parsed.ext === '.md' && isUppercase(parsed.name)) {
|
||||
const html = marked.parse(buffer.toString('utf8'));
|
||||
buffer = Buffer.from(tmpl
|
||||
const mdHtml = marked.parse(html);
|
||||
html = tmpl
|
||||
.replace('<!--{{title}}-->', getTitle(parsed.name))
|
||||
.replace('<!--{{content}}-->', html),
|
||||
'utf8'
|
||||
);
|
||||
.replace('<!--{{content}}-->', mdHtml);
|
||||
parsed.ext = '.html';
|
||||
parsed.name = parsed.name.toLowerCase();
|
||||
delete parsed.base;
|
||||
@ -60,7 +58,7 @@ async function build(currentDir, tmpl) {
|
||||
// console.log('Ensure directory ' + dirname(outfile));
|
||||
await mkdir(dirname(outfile), { recursive: true });
|
||||
console.log('Writing file ' + outfile);
|
||||
await writeFile(outfile, buffer, { mode });
|
||||
await writeFile(outfile, html, { mode });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,11 +4,12 @@
|
||||
<meta charset="utf-8"/>
|
||||
<title><!--{{title}}-->Marked Documentation</title>
|
||||
<link rel="stylesheet" href="/css/style.css" type="text/css" />
|
||||
<link rel="stylesheet" href="/css/shared.css" type="text/css" />
|
||||
<link rel="stylesheet" href="/css/hljs-github.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<a href="https://github.com/markedjs/marked" class="github-corner" aria-label="View source on Github">
|
||||
<svg width="80" height="80" viewBox="0 0 250 250" style="fill:#202020; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true">
|
||||
<svg width="80" height="80" viewBox="0 0 250 250" style="fill:#202020; color:#fff;" aria-hidden="true">
|
||||
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
|
||||
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
|
||||
<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>
|
||||
|
26
docs/css/shared.css
Normal file
26
docs/css/shared.css
Normal file
@ -0,0 +1,26 @@
|
||||
.github-corner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
border: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.github-corner:hover .octo-arm {
|
||||
animation:octocat-wave 560ms ease-in-out;
|
||||
}
|
||||
|
||||
@keyframes octocat-wave {
|
||||
0%,100%{transform:rotate(0)}
|
||||
20%,60%{transform:rotate(-25deg)}
|
||||
40%,80%{transform:rotate(10deg)}
|
||||
}
|
||||
|
||||
@media (max-width:500px) {
|
||||
.github-corner:hover .octo-arm {
|
||||
animation:none
|
||||
}
|
||||
|
||||
.github-corner .octo-arm {
|
||||
animation:octocat-wave 560ms ease-in-out;
|
||||
}
|
||||
}
|
@ -23,14 +23,6 @@ header h1 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.github-ribbon {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
border: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.other-demos {
|
||||
margin-left: 3em;
|
||||
}
|
||||
@ -75,6 +67,14 @@ header h1 {
|
||||
background-color: #FEE
|
||||
}
|
||||
|
||||
.loadingError {
|
||||
background-color: #fee;
|
||||
font-weight: bold;
|
||||
color: #f00;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#responseTime {
|
||||
display: inline-block;
|
||||
}
|
||||
|
@ -66,6 +66,9 @@ Promise.all([
|
||||
setScrollPercent(0);
|
||||
$loadingElem.style.display = 'none';
|
||||
$mainElem.style.display = 'block';
|
||||
}).catch(() => {
|
||||
$loadingElem.classList.add('loadingError');
|
||||
$loadingElem.textContent = 'Failed to load marked. Refresh the page to try again.';
|
||||
});
|
||||
|
||||
function setInitialText() {
|
||||
@ -114,6 +117,7 @@ function setInitialVersion() {
|
||||
markedVersions.master = 'https://cdn.jsdelivr.net/gh/markedjs/marked@' + json[0].sha;
|
||||
})
|
||||
.catch(function() {
|
||||
console.warn('Cannot find commits');
|
||||
// do nothing
|
||||
// uses url without commit
|
||||
});
|
||||
|
@ -4,11 +4,12 @@
|
||||
<head>
|
||||
<title>Marked Demo</title>
|
||||
<link rel="stylesheet" href="./demo.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../css/shared.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<a href="https://github.com/markedjs/marked">
|
||||
<svg width="80" height="80" viewBox="0 0 250 250" style="fill:#202020; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true">
|
||||
<a href="https://github.com/markedjs/marked" class="github-corner" aria-label="View source on Github">
|
||||
<svg width="80" height="80" viewBox="0 0 250 250" style="fill:#202020; color:#fff;" aria-hidden="true">
|
||||
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
|
||||
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
|
||||
<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>
|
||||
|
@ -62,7 +62,8 @@ function parse(e) {
|
||||
}
|
||||
case 'parse': {
|
||||
const marked = versionCache[currentVersion];
|
||||
const options = mergeOptions(e.data.options);
|
||||
// marked 0.0.1 had tokens array as the second parameter of lexer and no options
|
||||
const options = currentVersion.endsWith('@0.0.1') ? [] : mergeOptions(e.data.options);
|
||||
const startTime = new Date();
|
||||
const lexed = marked.lexer(e.data.markdown, options);
|
||||
const lexedList = jsonString(lexed);
|
||||
@ -109,25 +110,32 @@ function jsonString(input, level) {
|
||||
}
|
||||
}
|
||||
|
||||
function fetchMarked(file) {
|
||||
return () =>
|
||||
fetch(file)
|
||||
.then((res) => res.text())
|
||||
.then((text) => {
|
||||
const g = globalThis || global;
|
||||
g.module = { };
|
||||
try {
|
||||
// eslint-disable-next-line no-new-func
|
||||
Function(text)();
|
||||
} catch (err) {
|
||||
throw new Error(`Cannot find ${file}`);
|
||||
}
|
||||
const marked = g.marked || g.module.exports;
|
||||
return marked;
|
||||
});
|
||||
}
|
||||
|
||||
function loadVersion(ver) {
|
||||
let promise;
|
||||
if (versionCache[ver]) {
|
||||
promise = Promise.resolve();
|
||||
} else {
|
||||
promise = import(ver + '/lib/marked.esm.js')
|
||||
.catch(() => {
|
||||
return fetch(ver + '/marked.min.js')
|
||||
.then(function(res) { return res.text(); })
|
||||
.then(function(text) {
|
||||
try {
|
||||
// eslint-disable-next-line no-new-func
|
||||
Function(text)();
|
||||
} catch (err) {
|
||||
throw new Error('No esm or min build');
|
||||
}
|
||||
return (globalThis || global).marked;
|
||||
});
|
||||
})
|
||||
.catch(fetchMarked(ver + '/marked.min.js'))
|
||||
.catch(fetchMarked(ver + '/lib/marked.js'))
|
||||
.then((marked) => {
|
||||
if (!marked) {
|
||||
throw Error('No marked');
|
||||
@ -135,7 +143,7 @@ function loadVersion(ver) {
|
||||
versionCache[ver] = marked.marked;
|
||||
} else if (marked.default) {
|
||||
versionCache[ver] = marked.default;
|
||||
} else if (marked.parse) {
|
||||
} else if (marked.lexer && marked.parser) {
|
||||
versionCache[ver] = marked;
|
||||
} else {
|
||||
throw new Error('Cannot find marked');
|
||||
|
Loading…
x
Reference in New Issue
Block a user