BlitzMax (Linux) nutzt Dillo Webbrowser?
Übersicht

![]() |
BlacalBetreff: BlitzMax (Linux) nutzt Dillo Webbrowser? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Servus
Ich hab selbst keine BlitzMax-Gui, aber kann des sein, das der für die html-View den Dillo Webbrowser nutzt? Denn wenn ja, würde es kein Problem darstellen, die Docu unter Linux ansehnlich zu machen. Man müsst nur des css-Zeug rausbringen, und die Tabellen "direk" über html eine Farbe (oder gscheide größenangaben) geben. Würd mich mal interessieren. Denn wenn ja, schreib ich mal den bbdoc Befehl etwas um, damits unter Linux auch was gscheids ausspuckt. Mfg Blacal |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wäre eine gescheite Lösung, da die Ansicht der Hilfe unter Linux nicht zu gebrauchen ist. Auch die Suche nach Befehlen (etc) funzt überhaupt nicht.
Habe mir auch schon überlegt die bbdoc um zumodelieren, obwohl mit TheShadow seinem Tool bin ich ganz und gar zufrieden, da es noch einige Hilfestellungen mehr gibt. Nur leider gibts diese für andere User nur zu kaufen. |
||
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab den source heute mal kurz überflogen. Dürft eigendlich kein Problem sein.
Ich setzt mich da übers Wochenende mal drann. Ahja, bevor ichs vergesse: Wleche symlinks brauchtn der BlitzMax-Compiler unter Linux? der will ja en gcc-3.3 und ich hab gcc-3.3.5 Ich hab da mal probiert ein paar symlinks in /usr/bin reinzupacken, hattnen aber nicht sonderlich gefalln. |
||
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
du musst
Code: [AUSKLAPPEN] sudo link /usr/bin/gcc /usr/bin/gcc-3.3 sudo link /usr/bin/g++ /usr/bin/g++-3.3 So müsste es gehen. Ja das mit der Docu finde ich auch sehr trauig, da gibt es mehrere dinge die ich echt blöd finde.Naja gut Fr3eMaN |
||
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28 |
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm...
sudo kennt mein Gentoo nicht, muss ich wohl mal emergen aber ln -s /usr/bin.... müsst doch es selbe sein, oder? wenn ich des mit ln mache, spuckter in der MaxIDE das da aus: gcc-config error: Could not run/locate "gcc-3.3" |
||
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
oda mach einfach su, so auf jeden Fall musst du dich als root anmelden,dann gehts
Fr3eMaN |
||
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28 |
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
he, is mir klar
Wenn ich das nicht wüsste, hätt ich gentoo erst garnicht zum laufen gebracht ![]() Ower is ja auch mal wurscht. Ich kann ja des docmods erstma unter Windows compilieren, und dann die Docu unter Linux anschaun. trotzdem danke für die Antwort. Mfg Blacal |
||
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
oder du erstellst den link in deinem home Verzeichnis und kopierst ihn per Midnight Commander als root nach /usr/bin
Fr3eMaN |
||
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28 |
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
Servus
Quelle: http://www.fltk.org/doc-1.1/Fl_Help_View.html Zitat: The Fl_Help_View widget displays HTML text. Most HTML 2.0 elements are supported, as well as a primitive implementation of tables. GIF, JPEG, and PNG images are displayed inline.
Da hab ich wohl die Antwort auf meine Frage gefunden. BlitzMax nutzt wohl dieses HelpView da, und nicht den Dillo. Wohl aber eher noch nicht, denn in meiner Linuxinstallation war schon ein "Dillo Webbrowser"-Modul drinne. Nur halt ohne Source und all dem. Und bei ersten docmods warer wieder weg ![]() |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blacal hat Folgendes geschrieben: hmm...
sudo kennt mein Gentoo nicht, muss ich wohl mal emergen aber ln -s /usr/bin.... müsst doch es selbe sein, oder? wenn ich des mit ln mache, spuckter in der MaxIDE das da aus: gcc-config error: Could not run/locate "gcc-3.3" Mach mal: # emerge app-admin/sudo Und unter /etc/sudoers kannst du deine Programme eintragen die normalerweise nur mit Adminrecht auszufrühren sind. Aber vorsichtig, nicht alles eintragen. zbsp: myusername ALL=NOPASSWD: /usr/bin/emerge So kannst du auch als User mal emerge ausführen. Einfach: sudo emerge meinprgramme //EDIT// Achja: wegen Linken unter Gentoo. Bei mir hat folgendes geklappt: link /usr/i686-pc-linux-gnu/gcc-bin/3.3.6/i686-pc-linux-gnu-g++ /usr/bin/g++-3.3 link /usr/i686-pc-linux-gnu/gcc-bin/3.3.6/i686-pc-linux-gnu-gcc /usr/bin/gcc-3.3 |
||
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
Servus
Danke rema, so gehts. So, um mal den Stand der Dinge zu posten, so siehts bei mir aktuell aus: http://blacal.bl.funpic.de/test.png Aber ich glaub, so wie ich des angefangen hab, wird des nichts. Umso mehr tabellen da in einer html-Datei drinne sind, umso mehr spinnt der. Beim Max2D-Modul z. B. stürzter bei mir jetzt immer ab. Muss ich wohl so machen, dass der für für jede Funktion / Methode ne extra Datei macht |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geb mal den Quellcode, dann kann ich ja mittesten und rumwerkeln. | ||
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Strict Import BRL.MaxUtil Import "bmxtoker.bmx" '******************************************************************************************* ' Function FindIdent( pre$,text$,i Var,e Var ) i=text.Find( pre,i ) If i=-1 Return False If i>0 And text[i-1]>32 Return False e=i+1 While e<text.length Local c=text[e] If c=Asc(".") And e+1<text.length And IsAlpha( text[e+1] ) e:+2 Continue EndIf If c<>Asc("_") And Not IsAlphaNumeric(c) Exit e:+1 Wend Return True End Function Function FormatText( t$ Var ) If t.length And IsAlphaNumeric( t[t.length-1] ) t:+"." Local i,e i=0 While FindIdent( "#",t,i,e ) While e<t.length-1 And t[e]=Asc(".") And IsAlpha( t[e+1] ) e:+2 While e<t.length And IsAlpha(t[e]) e:+1 Wend Wend Local id$=t[i+1..e],q=id.Find("."),ln$ If q=-1 ln="<a href=#"+id+">"+id+"</a>" Else ln="<a href=../../../" Repeat ln:+id[..q]+".mod/" id=id[q+1..] q=id.Find(".") Until q=-1 ln:+"doc/commands.html#"+id+">"+id+"</a>" EndIf t=t[..i]+ln+t[e..] i:+ln.length Wend i=0 While FindIdent( "@",t,i,e ) Local p$="<b>"+t[i+1..e]+"</b>" t=t[..i]+p+t[e..] i:+p.length Wend End Function '******************************************************************************************* Type TDocs Field kind 'T_CONST, T_GLOBAL etc Field ident$ 'identifier Field proto$ 'Global/Function etc text Field bbdoc$ 'rem/endrem bbdoc: text Field infos:TList=New TList 'ModuleInfo's Field kids:TList=New TList ' Method Sort() kids.Sort For Local t:TDocs=EachIn kids t.Sort Next End Method Method Compare( with:Object ) Local t:TDocs=TDocs(with) If kind=t.kind If kind=T_MODULE Return bbdoc.ToLower().Compare( t.bbdoc.ToLower() ) EndIf Return ident.ToLower().Compare( t.ident.ToLower() ) EndIf If kind=T_MODULE Return -1 If t.kind=T_MODULE Return 1 If kind=T_CONST Return -1 If t.kind=T_CONST Return 1 If kind=T_GLOBAL Return -1 If t.kind=T_GLOBAL Return 1 If kind=T_FIELD Return -1 If t.kind=T_FIELD Return 1 If kind=T_METHOD Return -1 If t.kind=T_METHOD Return 1 If kind=T_FUNCTION Return -1 If t.kind=T_FUNCTION Return 1 If kind=T_TYPE Return -1 If t.kind=T_TYPE Return 1 If kind=T_EOL Return -1 If t.kind=T_EOL Return 1 Throw "OOps!" End Method Method EmitHtml$() Local returns$ Local keyword$ Local shortdesc$ Local longdesc$ Local example$ Local d$=bbdoc Local i=d.Find("~n") If i=-1 i=d.length shortdesc=d[6..i].Trim() d=d[i+1..].Trim() If kind<>T_MODULE FormatText shortdesc EndIf If d.Find( "returns:" )=0 Local i=d.Find("~n") If i=-1 i=d.length returns=d[8..i].Trim() d=d[i+1..].Trim() FormatText returns Else If d.Find( "keyword:" )=0 Local i=d.Find("~n") If i=-1 i=d.length keyword=d[8..i].Trim() d=d[i+1..].Trim() FormatText keyword EndIf If d.Find( "about:" )=0 longdesc=d[6..].Trim() FormatText longdesc EndIf Local stream:TStream=ReadStream( ident+".bmx" ) If stream While Not stream.Eof() example:+stream.ReadLine()+"~n" Wend stream.Close example=example.Trim() EndIf Select kind Case 0 Case T_MODULE Print "<html><head><title>"+shortdesc+" reference</title>" Print "</head><body>" Local n_consts Local n_globals Local n_functions Local n_types For Local t:TDocs=EachIn kids Select t.kind Case T_CONST n_consts:+1 Case T_GLOBAL n_globals:+1 Case T_FUNCTION n_functions:+1 Case T_TYPE n_types:+1 End Select Next 'Schreibt den Kopf der Moduldokumentation Local t$=ModuleSource( ident.ToLower() ) Local i=t.Find( "/mod/" ) Print " <center><b>"+ident+": " If n_consts Then Print "<a href=#consts>Constants</a> " If n_globals Then Print "<a href=#globals>Globals</a> " If n_functions Then Print "<a href=#functions>Functions</a> " If n_types Then Print "<a href=#types>Types</a> " If Not infos.IsEmpty() Then Print "<a href=#modinfo>Modinfo</a> " If i<>-1 t="../../../.."+t[i..] Print "<a href='"+t+"'>Source</a>" EndIf Print " </b></center>" Local stream:TStream=ReadStream( "intro.bbdoc" ) If stream Print "<h1>"+shortdesc+"</h1>" If longdesc Print longdesc.Trim() Else stream=ReadStream( "intro.html" ) If Not stream Print "<h1>"+shortdesc+"</h1>" If longdesc Print longdesc.Trim() EndIf EndIf If stream Local intro$ While Not stream.Eof() intro:+stream.ReadLine()+"~n" Wend Local i=intro.Find("<body>") If i<>-1 intro=intro[i+6..] i=intro.find("</body>") If i<>-1 intro=intro[..i] EndIf stream.close intro=intro.Trim() FormatText intro Print intro EndIf Print "<center><table width=80% border=1 cellpadding=4 cellspacing=5>" Case T_TYPE Print "</table></center><br>" Print "<center><b>Type "+proto+"</b></center>" Print "<center><table width=90% border=1 cellpadding=4 cellspacing=5 id="+ident+">" If returns Print " <tr><td valign=top width=150><b>Returns</b></td><td width=100%>"+returns+"</td></tr>" EndIf If shortdesc Print " <tr><td valign=top width=150><b>Description</b></td><td width=100%>"+shortdesc+"</td></tr>" EndIf If longdesc Print " <tr><td valign=top width=150><b>Information</b></td><td width=100%>"+longdesc+"</td></tr>" EndIf If example Print " <tr><td valign=top width=150><a href="+ident+".bmx class=small>Example</a></td><td width=100%><font face=curier>"+example+"</font></td></tr>" EndIf Case T_METHOD Print "<tr>" Print " <td valign=top width=150><b>Method:</b></td>" Print " <td width=100%>" Print " <a href=test.htm>"+proto.Replace("Method","")+"</a><br>" Print " "+shortdesc Print " </td>" Print " </tr>" Case T_FIELD Print "<tr>" Print " <td valign=top width=150><b>Field:</b></td>" Print " <td width=100%>" Print " <a href=test.htm>"+proto.Replace("Field","")+"</a><br>" Print " "+shortdesc Print " </td>" Print " </tr>" Case T_CONST Print "<tr>" Print " <td valign=top width=150><b>Constant:</b></td>" Print " <td width=100%>" Print " <a href=test.htm>"+proto.Replace("Const","")+"</a><br>" Print " "+shortdesc Print " </td>" Print " </tr>" Case T_GLOBAL Print "<tr>" Print " <td valign=top width=150><b>Global:</b></td>" Print " <td width=100%>" Print " <a href=test.htm>"+proto.Replace("Global","")+"</a><br>" Print " "+shortdesc Print " </td>" Print " </tr>" Case T_FUNCTION Print "<tr>" Print " <td valign=top width=150><b>Function:</b></td>" Print " <td width=100%>" Print " <a href=test.htm>"+proto.Replace("Function","")+"</a><br>" Print " "+shortdesc Print " </td>" Print "</tr>" Rem Print " <br>" Print " <center><b>"+proto+"</b></center>" Print " <center><table width=90% border=1 cellpadding=4 cellspacing=5 id="+ident+">" If returns Print " <tr><td valign=top width=150><b>Returns</b></td><td width=100%>"+returns+"</td></tr>" EndIf If shortdesc Print " <tr><td valign=top width=150><b>Description</b></td><td width=100%>"+shortdesc+"</td></tr>" EndIf If longdesc Print " <tr><td valign=top width=150><b>Information</b></td><td width=100%>"+longdesc+"</td></tr>" EndIf If example Print " <tr><td valign=top width=150><a href="+ident+".bmx class=small>Example</a></td><td width=100%><font face=curier>"+example+"</font></td></tr>" EndIf Print " </table></center>" EndRem End Select If Not kids.IsEmpty() Local tkind=0 For Local doc:TDocs=EachIn kids If kind<>T_TYPE And doc.kind<>tkind Print "</table></center><h2" Select doc.kind Case T_CONST Print " id=consts>Constants" Case T_GLOBAL Print " id=globals>Globals" Case T_FUNCTION Print " id=functions>Functions" Case T_TYPE Print " id=types>Types" Case T_FIELD Print ">Fields" Case T_METHOD Print ">Methods" Case T_EOL Print ">Keywords" End Select Print "</h2>" Print "<center><table width=90% border=1 cellpadding=4 cellspacing=5>" tkind=doc.kind EndIf doc.EmitHtml If kind<>T_TYPE Print "<br>" Next EndIf Select kind Case T_MODULE If Not infos.IsEmpty() Print "</table></center>" Print "<h2 id=modinfo>Module Information</h2>" Print "<center><table width=90% border=1 cellspacing=5 cellpadding=4>" For Local t$=EachIn infos t=t[1..t.length-1] If Not t Continue Local i=t.Find(":") If i=-1 Continue Local key$=t[..i].Trim() Local val$=t[i+1..].Trim() Print "<tr><th width=150 valign=top>"+key+"</th><td width=100%>"+val+"</td></tr>" Next Print "</table></center>" EndIf Print "</body></html>" End Select End Method End Type Type TDocParser Field toker:TBMXToker Method Close() If Not toker Return toker.Close toker=Null End Method Method Parse( parent:TDocs ) If Not toker Throw "closed" While toker.Curr()<>T_EOF If toker.Curr()=T_ENDTYPE If parent.kind=T_TYPE Return toker.Bump Continue EndIf If toker.Curr()=T_MODULEINFO If parent.kind=T_MODULE If toker.Bump()=T_STRINGLIT parent.infos.AddLast toker.Text() EndIf EndIf toker.Bump Continue EndIf If toker.Curr()<>T_REM toker.Bump Continue EndIf If toker.Text()[..6]<>"bbdoc:" toker.Bump Continue EndIf Local bbdoc$=toker.Text() Local kind=toker.Bump() If kind<>T_CONST And kind<>T_GLOBAL And kind<>T_FUNCTION And kind<>T_METHOD.. And kind<>T_MODULE And kind<>T_TYPE And kind<>T_FIELD And kind<>T_EOL toker.Bump Continue EndIf Local ident$,proto$ If kind=T_EOL Local i=bbdoc.Find( "keyword:" ) If i=-1 Continue ident=bbdoc[i+8..].Replace( "~q","" ) proto="Keyword "+ident.Trim() Else proto=toker.Line() If toker.Bump()<>T_IDENT Continue ident=toker.Text() If toker.Bump()=Asc(".") And toker.Bump()=T_IDENT ident:+"."+toker.Text() EndIf toker.Bump Select kind Case T_CONST,T_GLOBAL Local i=proto.Find( "=" ) If i<>-1 proto=proto[..i] Case T_FUNCTION,T_METHOD Local i=proto.Find( "=" ) While i<>-1 And proto.Find( ")",i+1 )<>-1 i=proto.Find( "=",i+1 ) Wend If i<>-1 proto=proto[..i] i=proto.toLower().Find( "nodebug" ) While i<>-1 And proto.Find( ")",i+1 )<>-1 i=proto.toLower().Find( "nodebug",i+1 ) Wend If i<>-1 proto=proto[..i] End Select EndIf 'got a valid Doc! Local docs:TDocs=New TDocs docs.kind=kind docs.ident=ident.Trim() docs.proto=proto.Trim() docs.bbdoc=bbdoc.Trim() parent.kids.AddLast docs If kind=T_MODULE Or kind=T_TYPE Parse docs EndIf Wend End Method Function WithToker:TDocParser( toker:TBmxToker ) Local t:TDocParser=New TDocParser t.toker=toker Return t End Function End Type Bis jetzt hab ich nur an der docparser.bmx rumgewerkelt. Also im Prinzip nur die Tags ausgestaucht (Ich schau erstmal, was der html-View kann, und was net). Was ich scho festgestellt habe: - Farben ignoriert der - Mehrere Tabellen ineinander stürzt er ab - border kann nur größe 1 sein - <img> tag kann man vergessen - bei <pre> berechnet er die größe falsch (Schreibt außerhalb der Tabelle weiter ) - mit großen Dateien hatter übelste Probleme (Siehe Max2D) - Bei größeren Inhalten einer Zelle verrechnet der sich auch gerne (aber nicht immer) - Größen von tabllenzellen würfelt der wie wild durcheinander so, und was bleibt übrig: Nich viel Deshalb schau ich grad, wie ich des Zeug ein bisschen auf mehrere Dateien verteilen kann. |
||
- Zuletzt bearbeitet von Blacal am Sa, Nov 19, 2005 14:51, insgesamt einmal bearbeitet
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, erstmal sorry für den Doppelpost
Jetzt nimmt des scho eher so gestallt an, wie ich mir des vorgestellt hab http://blacal.bl.funpic.de/test2.png Wenn man jetzt dort auf z. B. auf einen Funktionsnamen klickt, soll der dann (auf die leider noch nicht erstellte) extra hilfe datei von dieser Funktion gehen. Würd aber gern wissen, was ihr von dieser Idee haltet. Übersichtlicher isses ja auf jeden fall. Den Source (eins oben) update ich gleich. Zwecks verständlichkeit werd ich aber bald eine neue Sourcedatei für docmods machen. Eine, wo das ganze html-zeugs gschrieben wird, und dokumentiert ist. Damit man sich mal auskennt |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group