copy potentially useful files from old tutorial
This commit is contained in:
parent
869a44dd04
commit
ed79ec7940
3 changed files with 471 additions and 0 deletions
60
website/src/docs/ApiDoc.jsx
Normal file
60
website/src/docs/ApiDoc.jsx
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
import React, { Fragment } from 'react';
|
||||
import { docs } from '../../../doc.json';
|
||||
import { MiniRepl } from '../../../tutorial/MiniRepl';
|
||||
|
||||
const visible = window.location.href.includes('?api=true');
|
||||
|
||||
function ApiDoc() {
|
||||
if (!visible) {
|
||||
return (
|
||||
<p>
|
||||
There remaining function documentation is a work in progress, but you can preview it by clicking{' '}
|
||||
<a href="?api=true#everything-else">here</a>. Beware that everything is not properly ordered from this point.
|
||||
</p>
|
||||
);
|
||||
}
|
||||
// console.log('docJson', docs);
|
||||
return (
|
||||
<div>
|
||||
<p>
|
||||
The following Chapter is autogenerated from the jsdoc comments in the source files.{' '}
|
||||
<a href="?#everything-else">hide</a>. Beware that everything is not properly ordered from this point.
|
||||
</p>
|
||||
{docs
|
||||
.filter((item) => !item.name?.startsWith('_') && item.kind !== 'package')
|
||||
.map((item, i) => (
|
||||
<Fragment key={i}>
|
||||
{' '}
|
||||
<h2 id={`${item.memberof ? `${item.memberof}-` : ''}${item.name}`}>
|
||||
{item.memberof && item.memberof !== item.name ? `${item.memberof}.` : ''}
|
||||
{item.name}
|
||||
</h2>
|
||||
<div
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: item.description.replaceAll(/\{\@link ([a-zA-Z]+)?\#?([a-zA-Z]*)\}/g, (_, a, b) => {
|
||||
// console.log(_, 'a', a, 'b', b);
|
||||
return `<a href="#${a}${b ? `-${b}` : ''}">${a}${b ? `#${b}` : ''}</a>`;
|
||||
}),
|
||||
}}
|
||||
/>
|
||||
{!!item.params?.length && <h3>Parameters</h3>}
|
||||
<ul>
|
||||
{item.params?.map((param, i) => (
|
||||
<li key={i}>
|
||||
{param.name} ({param.type?.names?.join('|')}): {param.description?.replace(/(<([^>]+)>)/gi, '')}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
{item.examples?.length && <h3>Examples</h3>}
|
||||
<div className="space-y-2">
|
||||
{item.examples?.map((example, k) => (
|
||||
<MiniRepl key={k} tune={example} />
|
||||
))}
|
||||
</div>
|
||||
</Fragment>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default ApiDoc;
|
||||
Loading…
Add table
Add a link
Reference in a new issue