Kleine Dokumentation aus commands.txt erstellen

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

simi

Betreff: Kleine Dokumentation aus commands.txt erstellen

BeitragSo, März 05, 2006 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
hi zusammen...
Unter Linux kann man ja die Dokumentation nicht direkt in der MaxIDE anschauen... So musste ich immer die Dateien im Modverzeichniss suche gehen.... Deshalb hab ich mir heute ein kleines Tool zusammengecodet, dass aus der command.txt die verschiedenen Module und Befehle liest. Dann wird eine Indexpage für die Module erstellt und dann noch für jedes Modul einzeln eine Inhaltsseite mit den verschiedenen Befehlen.

Vielleicht kanns ja jemand brauchen Very Happy
Code: [AUSKLAPPEN]
SuperStrict

Local stream:Tstream = TStream(TCStream.OpenFile(BlitzMaxPath()+"/doc/bmxmods/commands.txt",1,0))
Local names:String[]
Local path:String[]
Local list:TList[]
Local line:String
Local n1:Int,n2:Int
Local name:String
Local id:Int

'--------------------------------------------------------------------------------------------------
'--------------------------- COMMANDS.TXT PARSEN -------------------------------
'--------------------------------------------------------------------------------------------------
stream =  TStream(TCStream.OpenFile(BlitzMaxPath()+"/doc/bmxmods/commands.txt",1,0))
Repeat
   line = stream.readline()
   If line.trim()="" Then Continue

   'Modulname herausfinden
   n1 = line.find(".mod/")+5
   n2 = line.find(".mod/doc/commands.html")
   name = line[n1..n2]
   
   'schauen ob Name schon vorhanden
   id=-1
   For Local x:Int = 0 To names.length-1
      If names[x] = name Then
         id=x
         Exit
      End If
   Next

   'Wenn nicht vorhanden
   If id = -1 Then
      id = names.length
      names=names[..(names.length)+1]
      list = list[..(list.length)+1]
      path = path[..list.length+1]
      list[id] = CreateList()
      names[id] = name
      path[id]=line[(line.find("|")+1)..line.findlast("#")]
   End If
   
   'Funktion zu Modul hinzufügen
   name = line.replace(":","|").Replace("(","|").Replace("$","|").Replace("#","|").Replace("!","|")
   name = name[0..(name.find("|"))]
   list[id].addlast(name)
Until Eof(stream)
stream.close()



'--------------------------------------------------------------------------------------------------
'-----------------------------ORDNER ERSTELLEN --------------------------------------
'--------------------------------------------------------------------------------------------------
CreateDir(BlitzMaxPath()+"/doc_2")
CreateDir(BlitzMaxPath()+"/doc_2/mods")

'--------------------------------------------------------------------------------------------------
'----------------------------- INDEX.HTML ERSTELLEN -------------------------------
'--------------------------------------------------------------------------------------------------
stream =  TStream(TCStream.OpenFile(BlitzMaxPath()+"/doc_2/index.html",0,1))

stream.writeline("<html>")
stream.writeline("   <head>")
stream.writeline("      <title>BMax-Hilfe</title>")
stream.writeline("  </head>")
stream.writeline("        <frameset cols=~q15%,*~q>")
stream.writeline("            <frame src=~qnav.html~q name=~qnav~q>")
stream.writeline("            <frame src=~q"+BlitzMaxPath()+"/doc/home.html~q name=~qhelp~q>")
stream.writeline("        </frameset>")
stream.writeline("</html>")

stream.close()

'--------------------------------------------------------------------------------------------------
'----------------------------- NAV.HTML ERSTELLEN -------------------------------
'--------------------------------------------------------------------------------------------------
stream =  TStream(TCStream.OpenFile(BlitzMaxPath()+"/doc_2/nav.html",0,1))

stream.writeline("<html>")
stream.writeline("   <head>")
stream.writeline("      <title>BMax-Hilfe</title>")
stream.writeline("  </head>")
stream.writeline("        <body")
stream.writeline("            <h3>Inhalt</h3>")
stream.writeline("            <a target=~qhelp~q href=~q"+BlitzMaxPath()+"/doc/home.html~q>Home</a><br>")
stream.writeline("            <hr>")
For Local i:String = EachIn names
   stream.writeline("            <a href=~qmods/"+i+".html~q>"+i+"</a><br>")
Next
stream.writeline("        </body")
stream.writeline("</html>")

stream.close()


'--------------------------------------------------------------------------------------------------
'-------------------- EINZELNE DATEIEN ERSTELLEN -------------------------------
'--------------------------------------------------------------------------------------------------
For Local i:Int = 0 To names.length-1

   stream =  TStream(TCStream.OpenFile(BlitzMaxPath()+"/doc_2/mods/"+names[i]+".html",0,1))
   
   stream.writeline("<html>")
   stream.writeline("   <head>")
   stream.writeline("      <title>BMax-Hilfe</title>")
   stream.writeline("  </head>")
   stream.writeline("        <body")
   stream.writeline("            <script Type=~qtext/javascript~q>")
   stream.writeline("               parent[~qhelp~q].location.href = ~q"+BlitzMaxPath()+path[i]+"~q;")
   stream.writeline("            </script>")
   stream.writeline("            <h3>"+names[i]+"</h3>")
   For Local x:String = EachIn list[i]
      stream.writeline("            <a target=~qhelp~q href=~q"+BlitzMaxPath()+path[i]+"#"+x+"~q>"+x+"</a><br>")
   Next
   stream.writeline("            <hr>")
   stream.writeline("            <a href=~q"+BlitzMaxPath()+"/doc_2/nav.html~q>Inhalt</a>")
   stream.writeline("        </body")
   stream.writeline("</html>")
   
   stream.close()
Next

BtbN

BeitragMo, März 06, 2006 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, warum öffnest du nicht einfach die Standart-doc(Die, die sonst in der MaxIDE angezeigt wird) mit nem Browser deiner Wahl? So mach ich das immer.
Oder hab ich den nutzen dieses Programms falsch verstanden?

simi

BeitragMo, März 06, 2006 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
hobbla Sad
bin ich ein depp :\

ich hab nur immer die docs direkt im modulverzeichniss gesehen.... :\ nie dass es so eine indexpage mit framedarstellung gibt Sad

naja, als trost bleibt mir ja noch, dass vielleicht jemand den code für etwas anderes benutzen kann.....

danke für den Hinweis Smile

cu

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group