Generate documentation by assembling markdown and litcoffee files

This commit is contained in:
Glen Whitney 2019-12-09 20:52:42 -05:00
parent 83318c7884
commit eb81cee609
5 changed files with 42 additions and 20 deletions

View file

@ -1,19 +1,23 @@
## Technical details
### External dependencies
The dyna3 program depends on some externally-maintained JavaScript
libraries/modules. The package uses npm to track these external dependencies.
A module externals.js is automatically generated from the package_lock.json file
created by npm to load the necessary modules at runtime.
The dyna3 program depends on some externally-maintained JavaScript libraries/modules. The package uses npm to track these external dependencies. A module externals.js is automatically generated from the package_lock.json file created by npm to load the necessary modules at runtime.
The generation is performed by pkglock_to_externals.litcoffee, which also records the main importable file within the library, as there does not seem to be a systematic way to generate that filename from the module name.
Specific packages/implementation approaches for components of dyna3 include the following items. All packages are obtained from npm unless otherwise noted.
- for conversion of markdown to HTML: pandoc
- For a test harness for the package: QUnit
- For WebGL rendering of the 3D view of the geometry: three
The generation is performed by pkglock_to_externals.litcoffee, which also
records the main importable file within the library, as there does not seem
to be a systematic way to generate that filename from the module name.
```javascript
importable = { three: 'build/three.module.js' }
```
Currently, dyna3 makes use of the following external libraries:
And here is the current complete list of external libraries on which operation of dyna3 depends:
```javascript
if process.argv.length < 3
@ -31,7 +35,7 @@ Currently, dyna3 makes use of the following external libraries:
pdata = JSON.parse pl
for dep in Object.keys pdata.dependencies
if process.argv.length > 2
process.stdout.write "* #{dep}\n"
process.stdout.write "- #{dep}\n"
else
block =
"""