markdown-docs.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. * @author Koya Sakuma <koya.sakuma.work@gmail.com>
  4. * Adapted from MolQL project
  5. */
  6. import { properties } from './properties';
  7. import { operators } from './operators';
  8. import { keywords } from './keywords';
  9. const _docs: string[] = [
  10. 'Jmol',
  11. '============',
  12. '--------------------------------',
  13. ''
  14. ];
  15. _docs.push(`## Properties\n\n`);
  16. _docs.push('--------------------------------\n');
  17. for (const name in properties) {
  18. if (properties[name].isUnsupported) continue;
  19. const names = [name];
  20. if (properties[name].abbr) names.push(...properties[name].abbr!);
  21. _docs.push(`\`\`\`\n${names.join(', ')}\n\`\`\`\n`);
  22. if (properties[name]['@desc']) {
  23. _docs.push(`*${properties[name]['@desc']}*\n`);
  24. }
  25. }
  26. _docs.push(`## Operators\n\n`);
  27. _docs.push('--------------------------------\n');
  28. operators.forEach(o => {
  29. if (o.isUnsupported) return;
  30. const names = [o.name];
  31. if (o.abbr) names.push(...o.abbr!);
  32. _docs.push(`\`\`\`\n${names.join(', ')}\n\`\`\`\n`);
  33. if (o['@desc']) {
  34. _docs.push(`*${o['@desc']}*\n`);
  35. }
  36. });
  37. _docs.push(`## Keywords\n\n`);
  38. _docs.push('--------------------------------\n');
  39. for (const name in keywords) {
  40. if (!keywords[name].map) continue;
  41. const names = [name];
  42. if (keywords[name].abbr) names.push(...keywords[name].abbr!);
  43. _docs.push(`\`\`\`\n${names.join(', ')}\n\`\`\`\n`);
  44. if (keywords[name]['@desc']) {
  45. _docs.push(`*${keywords[name]['@desc']}*\n`);
  46. }
  47. }
  48. export const docs = _docs.join('\n');