|
@@ -9,12 +9,78 @@ Class DocsMaker
|
|
|
|
|
|
_nav=New JsonBuffer
|
|
|
|
|
|
- _md=New MarkdownBuffer( Lambda:String( link:String )
|
|
|
+ _md=New MarkdownBuffer( "",Lambda:String( link:String )
|
|
|
Return ResolveLink( link,_linkScope )
|
|
|
End )
|
|
|
|
|
|
End
|
|
|
|
|
|
+ Method MakeManPages( module:Module )
|
|
|
+
|
|
|
+ Local path:=RealPath( module.baseDir+"docs/manual.md" )
|
|
|
+ If GetFileType( path )<>FileType.File Return
|
|
|
+
|
|
|
+ DeleteDir( module.baseDir+"docs/__MANPAGES__",True )
|
|
|
+ CreateDir( module.baseDir+"docs/__MANPAGES__" )
|
|
|
+
|
|
|
+ Local pages:=ManPage.MakeManPages( path,module.baseDir,Lambda:String( link:String )
|
|
|
+ Return ResolveLink( link,_linkScope )
|
|
|
+ End )
|
|
|
+
|
|
|
+ Local template:=stringio.LoadString( module.baseDir+"docs/manuals_page_template.html" )
|
|
|
+ If Not template template=stringio.LoadString( "docs/manuals_page_template.html" )
|
|
|
+
|
|
|
+ For Local it:=Eachin pages
|
|
|
+
|
|
|
+ Local path:=it.Key 'source path
|
|
|
+ Local page:=it.Value 'ManPage
|
|
|
+
|
|
|
+ Local dir:=ExtractDir( path ),cd:=".."
|
|
|
+ While dir<>module.baseDir+"docs/" And Not IsRootDir( dir )
|
|
|
+ dir=ExtractDir( dir )
|
|
|
+ cd="../"+cd
|
|
|
+ Wend
|
|
|
+
|
|
|
+ Local mod_dir:="../.."
|
|
|
+ Local mx2_dir:=mod_dir+"/../.."
|
|
|
+
|
|
|
+ Local html:=template.Replace( "${CONTENT}",page.HtmlSource )
|
|
|
+
|
|
|
+ html=html.Replace( "${MX2_DIR}",mx2_dir )
|
|
|
+ html=html.Replace( "${MOD_DIR}",mod_dir )
|
|
|
+ html=html.Replace( "${CD}",cd )
|
|
|
+
|
|
|
+ SaveString( html,page.Page )
|
|
|
+
|
|
|
+ Next
|
|
|
+
|
|
|
+ Local page:=pages[path]
|
|
|
+ Local node:=page.RootNode
|
|
|
+ Local json:=node.ToJson( RealPath( "modules" ) ).ToJson()
|
|
|
+
|
|
|
+ SaveString( json,module.baseDir+"docs/__MANPAGES__/index.js" )
|
|
|
+ End
|
|
|
+
|
|
|
+ Method MakeModulePage:String( module:Module )
|
|
|
+
|
|
|
+ Local mdocs:=module.baseDir+"docs/module.md"
|
|
|
+
|
|
|
+ Local md:=stringio.LoadString( mdocs )
|
|
|
+ If Not md Return ""
|
|
|
+
|
|
|
+ _md.Emit( md )
|
|
|
+
|
|
|
+ Local docs:=_md.Flush()
|
|
|
+
|
|
|
+ docs=docs.Replace( "${CD}",".." )
|
|
|
+
|
|
|
+ Local page:="module"
|
|
|
+
|
|
|
+ SavePage( docs,page )
|
|
|
+
|
|
|
+ Return page
|
|
|
+ End
|
|
|
+
|
|
|
Method MakeDocs:String( module:Module )
|
|
|
|
|
|
_module=module
|
|
@@ -38,16 +104,11 @@ Class DocsMaker
|
|
|
nmspaceDocs[nmspace.Name]+=fscope.fdecl.docs
|
|
|
Next
|
|
|
|
|
|
- Local page:=""
|
|
|
- Local mdocs:=_module.baseDir+"docs/module.md"
|
|
|
- If GetFileType( mdocs )=FileType.File
|
|
|
- Local md:=stringio.LoadString( mdocs )
|
|
|
- _linkScope=Null
|
|
|
- _md.Emit( md )
|
|
|
- page="module"
|
|
|
-' page=_module.name+"-Default"
|
|
|
- SavePage( _md.Flush(),page )
|
|
|
- Endif
|
|
|
+ _linkScope=Null
|
|
|
+
|
|
|
+ MakeManPages( module )
|
|
|
+
|
|
|
+ Local page:=MakeModulePage( module )
|
|
|
|
|
|
BeginNode( _module.name,page )
|
|
|
|
|
@@ -64,85 +125,6 @@ Class DocsMaker
|
|
|
Return tree
|
|
|
End
|
|
|
|
|
|
- 'Kludgy as!
|
|
|
- '
|
|
|
- 'Converts the 'TOC' tree generated by stackedit into a json nav tree...
|
|
|
- '
|
|
|
- Method MakeLangNav:String()
|
|
|
-
|
|
|
- #rem
|
|
|
- Local md:=stringio.LoadString( "docs/The Monkey2 Language.md" )
|
|
|
- _md.Emit( md )
|
|
|
- Local html:=_md.Flush()
|
|
|
-
|
|
|
- Local src:=stringio.LoadString( "docs/monkey2-language-template.html" )
|
|
|
- src=src.Replace( "${CONTENT}",html )
|
|
|
-
|
|
|
- stringio.SaveString( src,"docs/The Monkey2 Language.html" )
|
|
|
- #End
|
|
|
-
|
|
|
- Local src:=stringio.LoadString( "docs/The Monkey2 Language.html" )
|
|
|
-
|
|
|
- src=src.Replace( "~r~n","~n" )
|
|
|
-
|
|
|
- Local tag1:="<p><div class=~qtoc~q>"
|
|
|
- Local tag2:="</div>"
|
|
|
-
|
|
|
- Local i:=src.Find( tag1 )
|
|
|
- If i=-1
|
|
|
- Print "Can't find lang TOC div"
|
|
|
- Return ""
|
|
|
- Endif
|
|
|
-
|
|
|
- Local i2:=src.Find( tag2,i+tag1.Length )
|
|
|
- If i2=-1
|
|
|
- Print "Can't find lang TOC /div"
|
|
|
- Return ""
|
|
|
- Endif
|
|
|
-
|
|
|
- src=src.Slice( i+tag1.Length,i2 )
|
|
|
-
|
|
|
- Local nest:=0
|
|
|
-
|
|
|
- For Local line:=Eachin src.Split( "~n" )
|
|
|
-
|
|
|
- If line="</ul>"
|
|
|
-
|
|
|
- If nest
|
|
|
- _nav.Emit( "]}" )
|
|
|
- nest-=1
|
|
|
- Endif
|
|
|
-
|
|
|
- Else If line="</li>"
|
|
|
-
|
|
|
- Else If line.StartsWith( "<li>" )
|
|
|
-
|
|
|
- Local i:=line.Find( "<a href=~q#" )
|
|
|
- If i=-1 Continue
|
|
|
- Local i2:=line.Find( "~q>",i+10 )
|
|
|
- If i2=-1 Continue
|
|
|
- Local i3:=line.Find( "</a>",i2+2 )
|
|
|
- If i3=-1 Continue
|
|
|
-
|
|
|
- Local href:=line.Slice( i+10,i2 )
|
|
|
- Local text:=line.Slice( i2+2,i3 )
|
|
|
-
|
|
|
- If line.EndsWith( "<ul>" )
|
|
|
- nest+=1
|
|
|
- _nav.Emit( "{text:~q"+text+"~q,data:{topic:~q"+href+"~q},children:[" )
|
|
|
- Else If line.EndsWith( "</li>" )
|
|
|
- _nav.Emit( "{text:~q"+text+"~q,data:{topic:~q"+href+"~q}}" )
|
|
|
- Endif
|
|
|
-
|
|
|
- Endif
|
|
|
-
|
|
|
- Next
|
|
|
-
|
|
|
- Local tree:=_nav.Flush()
|
|
|
-
|
|
|
- Return tree
|
|
|
- End
|
|
|
-
|
|
|
Private
|
|
|
|
|
|
Field _nav:JsonBuffer
|
|
@@ -366,10 +348,10 @@ Class DocsMaker
|
|
|
End
|
|
|
|
|
|
Method SavePage( docs:String,page:String )
|
|
|
+
|
|
|
page=page.Replace( ".","-" )
|
|
|
- docs=_pageTemplate.Replace( "${CONTENT}",docs )
|
|
|
|
|
|
-' Print "Saving page:"+_pagesDir+page+".html"
|
|
|
+ docs=_pageTemplate.Replace( "${CONTENT}",docs )
|
|
|
|
|
|
stringio.SaveString( docs,_pagesDir+page+".html" )
|
|
|
End
|
|
@@ -411,7 +393,7 @@ Class DocsMaker
|
|
|
For Local type:=Eachin ctype.types
|
|
|
args+=","+TypeName( type,prefix )
|
|
|
Next
|
|
|
- If args args="\< "+args.Slice( 1 )+" \>"
|
|
|
+ If args args="\<"+args.Slice( 1 )+"\>"
|
|
|
|
|
|
If ctype.instanceOf ctype=ctype.instanceOf
|
|
|
|
|
@@ -432,8 +414,8 @@ Class DocsMaker
|
|
|
|
|
|
Local atype:=TCast<ArrayType>( type )
|
|
|
If atype
|
|
|
- If atype.rank=1 Return TypeName( atype.elemType,prefix )+"\[ \]"
|
|
|
- Return TypeName( atype.elemType,prefix )+"\[ ,,,,,,,,,".Slice( 0,atype.rank+2 )+" \]"
|
|
|
+ If atype.rank=1 Return TypeName( atype.elemType,prefix )+"\[\]"
|
|
|
+ Return TypeName( atype.elemType,prefix )+"\[,,,,,,,,,".Slice( 0,atype.rank )+"\]"
|
|
|
End
|
|
|
|
|
|
Local ftype:=TCast<FuncType>( type )
|
|
@@ -460,54 +442,95 @@ Class DocsMaker
|
|
|
Local fscope:=scope.FindFile()
|
|
|
Local nmspace:=fscope.nmspace
|
|
|
Local module:=fscope.fdecl.module
|
|
|
- _md.Emit( "_Module: <"+module.name+">_ " )
|
|
|
- _md.Emit( "_Namespace:_ _"+MakeLink( NamespacePath( nmspace ),nmspace )+"_" )
|
|
|
- _md.EmitBr()
|
|
|
- _md.Emit( "#### "+DeclName( decl,scope ) )
|
|
|
- _md.EmitBr()
|
|
|
+
|
|
|
+ _md.CurrentDir=ExtractDir( fscope.fdecl.path )
|
|
|
+
|
|
|
+ Local md:=module.name+":"+MakeLink( NamespacePath( nmspace ),nmspace )+"."+DeclName( decl,scope )
|
|
|
+
|
|
|
+ _md.Emit( "_"+md+"_" )
|
|
|
+
|
|
|
+ End
|
|
|
+
|
|
|
+ Method EmitDocs( docs:String )
|
|
|
+
|
|
|
+ Local lines:=docs.Split( "~n" )
|
|
|
+
|
|
|
+ Local indent:=0
|
|
|
+ If lines.Length>1
|
|
|
+ indent=10000
|
|
|
+ For Local i:=1 Until lines.Length
|
|
|
+ If Not lines[i].Trim() Continue
|
|
|
+ indent=Min( indent,FindNonSpc( lines[i] ) )
|
|
|
+ Next
|
|
|
+ If indent=10000 indent=0
|
|
|
+ lines[0]=" ".Dup( indent )+lines[0].Trim()
|
|
|
+ Endif
|
|
|
+
|
|
|
+ _md.Emit( lines,indent )
|
|
|
+ End
|
|
|
+
|
|
|
+ Method EmitDocs( decl:Decl )
|
|
|
+
|
|
|
+ EmitDocs( decl.docs )
|
|
|
End
|
|
|
|
|
|
Method DocsHidden:Bool( decl:Decl )
|
|
|
- Return (decl.IsPrivate And Not decl.docs) Or decl.docs.StartsWith( "@hidden" )
|
|
|
+ Return (Not decl.IsPublic And Not decl.docs) Or decl.docs.StartsWith( "@hidden" )
|
|
|
End
|
|
|
|
|
|
- Method EmitMembers( kind:String,scope:Scope,inherited:Bool )
|
|
|
+ Method DocsHidden:Bool( decl:Decl,access:Int )
|
|
|
+ If access And (decl.flags & access) Return DocsHidden( decl )
|
|
|
+ Return True
|
|
|
+ End
|
|
|
|
|
|
- Local init:=True
|
|
|
+ Method EmitMembers( kind:String,scope:Scope,access:Int,inherited:int )
|
|
|
+
|
|
|
+ Local tag:=""
|
|
|
+
|
|
|
+ If inherited>=0
|
|
|
+
|
|
|
+ If inherited tag="Inherited "
|
|
|
+
|
|
|
+ Select access
|
|
|
+ Case DECL_PUBLIC tag+="Public "
|
|
|
+ Case DECL_PROTECTED tag+="Protected "
|
|
|
+ End
|
|
|
+ Endif
|
|
|
|
|
|
+ Local init:=True
|
|
|
+
|
|
|
For Local node:=Eachin scope.nodes
|
|
|
|
|
|
Local atype:=Cast<AliasType>( node.Value )
|
|
|
If atype
|
|
|
If kind<>"alias" Continue
|
|
|
Local decl:=atype.adecl
|
|
|
- If DocsHidden( decl ) Continue
|
|
|
- If inherited<>(scope<>atype.scope) Continue
|
|
|
+ If DocsHidden( decl,access ) Continue
|
|
|
+ If inherited>=0 And inherited<>(scope<>atype.scope) Continue
|
|
|
|
|
|
If init
|
|
|
init=False
|
|
|
_md.EmitBr()
|
|
|
- _md.Emit( "| Aliases | |" )
|
|
|
+ _md.Emit( "| "+tag+"Aliases | |" )
|
|
|
_md.Emit( "|:---|:---" )
|
|
|
Endif
|
|
|
|
|
|
_md.Emit( "| "+DeclIdent( decl,atype.scope )+" | "+DeclDesc( decl )+" |" )
|
|
|
Continue
|
|
|
Endif
|
|
|
-
|
|
|
|
|
|
Local ctype:=Cast<ClassType>( node.Value )
|
|
|
If ctype
|
|
|
Local decl:=ctype.cdecl
|
|
|
If kind<>decl.kind Continue
|
|
|
- If DocsHidden( decl ) Continue
|
|
|
- If inherited<>(scope<>ctype.scope.outer) Continue
|
|
|
+ If DocsHidden( decl,access ) Continue
|
|
|
+ If inherited>=0 And inherited<>(scope<>ctype.scope.outer) Continue
|
|
|
|
|
|
If init
|
|
|
init=False
|
|
|
Local kinds:=kind.Capitalize() + (kind="class" ? "es" Else "s")
|
|
|
_md.EmitBr()
|
|
|
- _md.Emit( "| "+kinds+" | |" )
|
|
|
+ _md.Emit( "| "+tag+kinds+" | |" )
|
|
|
_md.Emit( "|:---|:---|" )
|
|
|
Endif
|
|
|
|
|
@@ -519,13 +542,13 @@ Class DocsMaker
|
|
|
If etype
|
|
|
If kind<>"enum" Continue
|
|
|
Local decl:=etype.edecl
|
|
|
- If DocsHidden( decl ) Continue
|
|
|
- If inherited<>(scope<>etype.scope.outer) Continue
|
|
|
+ If DocsHidden( decl,access ) Continue
|
|
|
+ If inherited>=0 And inherited<>(scope<>etype.scope.outer) Continue
|
|
|
|
|
|
If init
|
|
|
init=False
|
|
|
_md.EmitBr()
|
|
|
- _md.Emit( "| Enums | |" )
|
|
|
+ _md.Emit( "| "+tag+"Enums | |" )
|
|
|
_md.Emit( "|:---|:---|" )
|
|
|
Endif
|
|
|
|
|
@@ -537,13 +560,13 @@ Class DocsMaker
|
|
|
If vvar
|
|
|
Local decl:=vvar.vdecl
|
|
|
If kind<>decl.kind Continue
|
|
|
- If DocsHidden( decl ) Continue
|
|
|
- If inherited<>(scope<>vvar.scope) Continue
|
|
|
+ If DocsHidden( decl,access ) Continue
|
|
|
+ If inherited>=0 And inherited<>(scope<>vvar.scope) Continue
|
|
|
|
|
|
If init
|
|
|
init=False
|
|
|
_md.EmitBr()
|
|
|
- _md.Emit( "| "+kind.Capitalize()+"s | |" )
|
|
|
+ _md.Emit( "| "+tag+kind.Capitalize()+"s | |" )
|
|
|
_md.Emit( "|:---|:---|" )
|
|
|
Endif
|
|
|
|
|
@@ -555,13 +578,13 @@ Class DocsMaker
|
|
|
If plist
|
|
|
If kind<>"property" Continue
|
|
|
Local decl:=plist.pdecl
|
|
|
- If DocsHidden( decl ) Continue
|
|
|
- If inherited<>(scope<>plist.scope) Continue
|
|
|
+ If DocsHidden( decl,access ) Continue
|
|
|
+ If inherited>=0 And inherited<>(scope<>plist.scope) Continue
|
|
|
|
|
|
If init
|
|
|
init=False
|
|
|
_md.EmitBr()
|
|
|
- _md.Emit( "| Properties | |" )
|
|
|
+ _md.Emit( "| "+tag+"Properties | |" )
|
|
|
_md.Emit( "|:---|:---|" )
|
|
|
Endif
|
|
|
|
|
@@ -575,8 +598,8 @@ Class DocsMaker
|
|
|
|
|
|
For Local func:=Eachin flist.funcs
|
|
|
Local decl:=func.fdecl
|
|
|
- If DocsHidden( decl ) Continue
|
|
|
- If inherited<>(scope<>func.scope) Continue
|
|
|
+ If DocsHidden( decl,access ) Continue
|
|
|
+ If inherited>=0 And inherited<>(scope<>func.scope) Continue
|
|
|
|
|
|
If kind="constructor"
|
|
|
If decl.ident<>"new" Continue
|
|
@@ -589,7 +612,7 @@ Class DocsMaker
|
|
|
If init
|
|
|
init=False
|
|
|
_md.EmitBr()
|
|
|
- _md.Emit( "| "+kind.Capitalize()+"s | |" )
|
|
|
+ _md.Emit( "| "+tag+kind.Capitalize()+"s | |" )
|
|
|
_md.Emit( "|:---|:---|" )
|
|
|
Endif
|
|
|
|
|
@@ -612,6 +635,15 @@ Class DocsMaker
|
|
|
|
|
|
End
|
|
|
|
|
|
+ Method EmitNode( decl:Decl,scope:Scope,page:String="" )
|
|
|
+
|
|
|
+ Local id:=decl.ident
|
|
|
+ If id.StartsWith( "@" ) id=id.Slice( 1 ).Capitalize()
|
|
|
+
|
|
|
+ EmitNode( id,scope,page )
|
|
|
+
|
|
|
+ End
|
|
|
+
|
|
|
Method EndNode()
|
|
|
|
|
|
_nav.Emit( "] }" )
|
|
@@ -626,15 +658,11 @@ Class DocsMaker
|
|
|
End
|
|
|
|
|
|
Method EmitLeaf( decl:Decl,page:String="" )
|
|
|
-
|
|
|
- EmitLeaf( decl.ident,page )
|
|
|
-
|
|
|
- End
|
|
|
-
|
|
|
- Method EmitNode( decl:Decl,scope:Scope,page:String="" )
|
|
|
|
|
|
- EmitNode( decl.ident,scope,page )
|
|
|
+ Local id:=decl.ident
|
|
|
+ If id.StartsWith( "@" ) id=id.Slice( 1 ).Capitalize()
|
|
|
|
|
|
+ EmitLeaf( id,page )
|
|
|
End
|
|
|
|
|
|
Method EmitNode( name:String,scope:Scope,page:String="" )
|
|
@@ -700,20 +728,24 @@ Class DocsMaker
|
|
|
Method EmitNamespace( nmspace:NamespaceScope,docs:String )
|
|
|
|
|
|
_linkScope=nmspace
|
|
|
+
|
|
|
+ Local md:=_module.name+":"+nmspace.Name
|
|
|
+
|
|
|
+ _md.Emit( "_"+md+"_" )
|
|
|
|
|
|
- _md.Emit( "_Module: <"+_module.name+">_ " )
|
|
|
- _md.Emit( "_Namespace: "+nmspace.Name+"_" )
|
|
|
+' _md.Emit( "_Module: <"+_module.name+">_ " )
|
|
|
+' _md.Emit( "_Namespace: "+nmspace.Name+"_" )
|
|
|
|
|
|
- EmitMembers( "alias",nmspace,True )
|
|
|
- EmitMembers( "enum",nmspace,True )
|
|
|
- EmitMembers( "struct",nmspace,True )
|
|
|
- EmitMembers( "class",nmspace,True )
|
|
|
- EmitMembers( "interface",nmspace,True )
|
|
|
- EmitMembers( "const",nmspace,True )
|
|
|
- EmitMembers( "global",nmspace,True )
|
|
|
- EmitMembers( "function",nmspace,True )
|
|
|
+ EmitMembers( "alias",nmspace,DECL_PUBLIC,-1 )
|
|
|
+ EmitMembers( "enum",nmspace,DECL_PUBLIC,-1 )
|
|
|
+ EmitMembers( "struct",nmspace,DECL_PUBLIC,-1 )
|
|
|
+ EmitMembers( "class",nmspace,DECL_PUBLIC,-1 )
|
|
|
+ EmitMembers( "interface",nmspace,DECL_PUBLIC,-1 )
|
|
|
+ EmitMembers( "const",nmspace,DECL_PUBLIC,-1 )
|
|
|
+ EmitMembers( "global",nmspace,DECL_PUBLIC,-1 )
|
|
|
+ EmitMembers( "function",nmspace,DECL_PUBLIC,-1 )
|
|
|
|
|
|
- _md.Emit( docs )
|
|
|
+ EmitDocs( docs )
|
|
|
|
|
|
docs=_md.Flush()
|
|
|
|
|
@@ -731,23 +763,21 @@ Class DocsMaker
|
|
|
If Not vvar Or vvar.transFile.module<>_module Continue
|
|
|
|
|
|
Local decl:=vvar.vdecl
|
|
|
- If decl.kind<>kind Or DocsHidden( decl ) Continue
|
|
|
+ If decl.kind<>kind Or DocsHidden( decl,DECL_PUBLIC ) Continue
|
|
|
|
|
|
_linkScope=vvar.scope
|
|
|
|
|
|
EmitHeader( decl,vvar.scope )
|
|
|
|
|
|
- _md.Emit( "##### "+decl.kind.Capitalize()+" "+DeclIdent( decl )+" : "+TypeName( vvar.type,vvar.scope ) )
|
|
|
-
|
|
|
- _md.Emit( decl.docs )
|
|
|
+ _md.Emit( "##### "+decl.kind.Capitalize()+" "+DeclIdent( decl )+":"+TypeName( vvar.type,vvar.scope ) )
|
|
|
+
|
|
|
+ EmitDocs( decl )
|
|
|
|
|
|
Local docs:=_md.Flush()
|
|
|
|
|
|
Local page:=DeclPath( vvar.vdecl,vvar.scope )
|
|
|
SavePage( docs,page )
|
|
|
|
|
|
-' Print "save page:"+page
|
|
|
-
|
|
|
EmitLeaf( vvar.vdecl,page )
|
|
|
|
|
|
Next
|
|
@@ -762,15 +792,15 @@ Class DocsMaker
|
|
|
If Not atype Continue
|
|
|
|
|
|
Local decl:=atype.adecl
|
|
|
- If decl.kind<>kind Or DocsHidden( decl ) Continue
|
|
|
+ If decl.kind<>kind Or DocsHidden( decl,DECL_PUBLIC ) Continue
|
|
|
|
|
|
_linkScope=atype.scope
|
|
|
|
|
|
EmitHeader( decl,atype.scope )
|
|
|
|
|
|
- _md.Emit( "##### Alias "+DeclIdent( decl,True )+" : "+TypeName( atype._alias,atype.scope ) )
|
|
|
+ _md.Emit( "##### Alias "+DeclIdent( decl,True )+":"+TypeName( atype._alias,atype.scope ) )
|
|
|
|
|
|
- _md.Emit( decl.docs )
|
|
|
+ EmitDocs( decl )
|
|
|
|
|
|
Local docs:=_md.Flush()
|
|
|
|
|
@@ -791,7 +821,7 @@ Class DocsMaker
|
|
|
If Not etype Continue
|
|
|
|
|
|
Local decl:=etype.edecl
|
|
|
- If decl.kind<>kind Or DocsHidden( decl ) Continue
|
|
|
+ If decl.kind<>kind Or DocsHidden( decl,DECL_PUBLIC ) Continue
|
|
|
|
|
|
_linkScope=etype.scope.outer
|
|
|
|
|
@@ -799,7 +829,7 @@ Class DocsMaker
|
|
|
|
|
|
_md.Emit( "##### Enum "+DeclIdent( decl ) )
|
|
|
|
|
|
- _md.Emit( decl.docs )
|
|
|
+ EmitDocs( decl )
|
|
|
|
|
|
Local docs:=_md.Flush()
|
|
|
|
|
@@ -820,7 +850,7 @@ Class DocsMaker
|
|
|
If Not ctype Or ctype.transFile.module<>_module Continue
|
|
|
|
|
|
Local decl:=ctype.cdecl
|
|
|
- If decl.kind<>kind Or DocsHidden( decl ) Continue
|
|
|
+ If decl.kind<>kind Or DocsHidden( decl,DECL_PUBLIC ) Continue
|
|
|
|
|
|
_linkScope=ctype.scope '.outer
|
|
|
|
|
@@ -860,24 +890,30 @@ Class DocsMaker
|
|
|
|
|
|
_md.Emit( "##### "+decl.kind.Capitalize()+" "+DeclIdent( decl,True )+xtends+implments+mods )
|
|
|
|
|
|
- _md.Emit( decl.docs )
|
|
|
-
|
|
|
- For Local inh:=0 Until 1
|
|
|
- EmitMembers( "alias",ctype.scope,inh )
|
|
|
- EmitMembers( "enum",ctype.scope,inh )
|
|
|
- EmitMembers( "struct",ctype.scope,inh )
|
|
|
- EmitMembers( "class",ctype.scope,inh )
|
|
|
- EmitMembers( "interface",ctype.scope,inh )
|
|
|
- EmitMembers( "const",ctype.scope,inh )
|
|
|
- EmitMembers( "global",ctype.scope,inh )
|
|
|
- EmitMembers( "field",ctype.scope,inh )
|
|
|
- EmitMembers( "property",ctype.scope,inh )
|
|
|
- EmitMembers( "constructor",ctype.scope,inh )
|
|
|
- EmitMembers( "operator",ctype.scope,inh )
|
|
|
- EmitMembers( "method",ctype.scope,inh )
|
|
|
- EmitMembers( "function",ctype.scope,inh )
|
|
|
+ EmitDocs( decl )
|
|
|
+
|
|
|
+ Local access:=DECL_PUBLIC
|
|
|
+ For Local acc:=0 Until 2
|
|
|
+
|
|
|
+ Local inh:=False
|
|
|
+
|
|
|
+ EmitMembers( "alias",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "enum",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "struct",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "class",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "interface",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "const",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "global",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "field",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "property",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "constructor",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "operator",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "method",ctype.scope,access,inh )
|
|
|
+ EmitMembers( "function",ctype.scope,access,inh )
|
|
|
+
|
|
|
+ access=DECL_PROTECTED
|
|
|
End
|
|
|
-
|
|
|
+
|
|
|
Local docs:=_md.Flush()
|
|
|
|
|
|
Local page:=DeclPath( ctype.cdecl,ctype.scope.outer )
|
|
@@ -896,7 +932,7 @@ Class DocsMaker
|
|
|
If Not plist Continue
|
|
|
|
|
|
Local decl:=plist.pdecl
|
|
|
- If decl.kind<>kind Or DocsHidden( decl ) Continue
|
|
|
+ If decl.kind<>kind Or DocsHidden( decl,DECL_PUBLIC ) Continue
|
|
|
|
|
|
Local func:=plist.getFunc
|
|
|
If Not func
|
|
@@ -910,9 +946,9 @@ Class DocsMaker
|
|
|
|
|
|
EmitHeader( decl,func.scope )
|
|
|
|
|
|
- _md.Emit( "##### Property "+DeclIdent( decl )+" : "+TypeName( type,func.scope ) )
|
|
|
+ _md.Emit( "##### Property "+DeclIdent( decl )+":"+TypeName( type,func.scope ) )
|
|
|
|
|
|
- _md.Emit( decl.docs )
|
|
|
+ EmitDocs( decl )
|
|
|
|
|
|
Local docs:=_md.Flush()
|
|
|
|
|
@@ -937,7 +973,7 @@ Class DocsMaker
|
|
|
For Local func:=Eachin flist.funcs
|
|
|
Local decl:=func.fdecl
|
|
|
|
|
|
- If DocsHidden( decl ) Continue
|
|
|
+ If DocsHidden( decl,DECL_PUBLIC ) Continue
|
|
|
|
|
|
If kind="constructor"
|
|
|
If decl.ident<>"new" Continue
|
|
@@ -965,21 +1001,19 @@ Class DocsMaker
|
|
|
Local type:=TypeName( func.ftype.argTypes[i],func.scope )
|
|
|
Local init:=""
|
|
|
If func.fdecl.type.params[i].init
|
|
|
- init=" ="+func.fdecl.type.params[i].init.ToString()
|
|
|
+ init="="+func.fdecl.type.params[i].init.ToString()
|
|
|
Endif
|
|
|
- params+=" , "+ident+" : "+type+init
|
|
|
+ If params params+=", "
|
|
|
+ params+=ident+":"+type+init
|
|
|
Next
|
|
|
- params=params.Slice( 3 )
|
|
|
|
|
|
- _md.Emit( "##### "+tkind+DeclIdent( decl,True )+" : "+TypeName( func.ftype.retType,func.scope )+" ( "+params+" ) " )
|
|
|
+ _md.Emit( "##### "+tkind+DeclIdent( decl,True )+":"+TypeName( func.ftype.retType,func.scope )+"( "+params+" )" )
|
|
|
|
|
|
Next
|
|
|
|
|
|
If Not buf Continue
|
|
|
|
|
|
- For Local doc:=Eachin buf
|
|
|
- _md.Emit( doc )
|
|
|
- Next
|
|
|
+ EmitDocs( buf.Join( "~n" ) )
|
|
|
|
|
|
Local docs:=_md.Flush()
|
|
|
|