Comments (4)
A great idea. Except jsdoc2md is written in nodejs, so there is no way to "integrate" it, per-se.
Most self documenting code systems focus on documenting individual functions, whereas Jsi documents at the module level.
The "help" command in jsish relys on Info.cmds()
to access information about builtin commands.
It can also dump help for modules (eg. help Websrv
).
But I noticed a bug in interactive jsish where help pdq
does not work when in the 'pdq' directory. (just committed a fix).
However jsish . -h
does.
The docs in Jsi could definitely stand improvement, but I'm not sure how at this point.
from jsish.
If you consider it a reasonable idea, then i think there are integration options, depending on the capabilities you want.
To my mind, a JSI "self documenting support" development roadmap might be something like:
- Extend the JSI parser and add options to scan/parse a file and print any C style comments it finds to stdout. Add this to the CLI as a non MD CLI self documenting support option.
- Create a JSI module like jsdoc-parse (or a jsi port of that library), to process C style comments, pick out the jsdoc formatted comments and create MD from them. Add a build step to use it on the C & Javascript sources to create/update static documentation. Add this as a jsish CLI command able to scan local and vfs sources.
- Extend the JSI parser to contain a JSDoc subset AST. Use the JSDoc AST to validate the JSI code AST against the JSdoc AST. Use it to generate JSI markdown, and/or spit out jsdoc templated JSI code from JSI source.
- Use the AST to link/extend the jsdoc @example tag to perform unit-testing and include the unit tests in the module documentation. This feature could also be separate. More often than not, the best examples and documentation on the API have been the unit tests.
Another option to "integrate" jsdoc2md could be to create a transpile pipeline from node to JSI as a make step. I have tested the transpile approach to get node code to run on non v8 engines with some success. This approach would use tools like browserify and Babel, to automate module/library conversion from node source to JSI source.
It might require an extra node API JSI wrapper to map File IO etc, but theoretically, you should then be able to add jsdoc2md as a an externally supplied module like vue.js. If you want to get meta, you could potentially transpile the node transpile pipeline into a JSI module :).
from jsish.
I think the only viable option above is jsdoc-parse, because the jsi parser does not see comments as they get stripped. You might try porting that.
from jsish.
Thanks. As you may have guessed, have no time to work on this, so may pick it up later.
from jsish.
Related Issues (20)
- Heap-use-after-free src/jsiValue.c:899 in Jsi_ValueCmp HOT 5
- Heap-use-after-free src/jsiValue.c:980 in jsi_ValueLookupBase
- Heap-use-after-free src/jsiValue.c:1458 in Jsi_IterGetKeys HOT 1
- Heap-use-after-free src/jsiEval.c:213 in jsiVarDeref HOT 8
- Heap-use-after-free src/jsiWebSocket.c:3190 in jsi_wswebsocketObjFree
- Heap-use-after-free src/jsiObj.c:176 in DeleteTreeValue
- MEMLEAK NOW: Heap-use-after-free src/jsiObj.c:339 in Jsi_ObjFree HOT 2
- Heap-use-after-free src/jsiUserObj.c:32 in jsi_UserObjDelete
- Heap-use-after-free src/jsiFunc.c:207 in jsi_ArgTypeCheck HOT 2
- Heap-use-after-free src/jsiArray.c:958 in SortSubCmd
- Heap-use-after-free (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x5166d)
- Heap-use-after-free (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x79732)
- Which ECMAscript standrd does Jsish Support HOT 1
- Use-after-free in Jsi_ObjFree (Jsi_ObjFree src/jsiObj.c:342) HOT 1
- incomplete creation for RegExp object
- Type confusion in jsValue.c
- Fail to throw a Type Error
- Integer overflow in jsiEvalCodeSub (src/jsiEval.c:1363)
- Integer overflow in jsiEvalCodeSub (src/jsiEval.c:1745)
- Grammar railroad diagram HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsish.