Hot Docs 1.32 Threaded Build

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

BladeRunner

Moderator

Betreff: Hot Docs 1.32 Threaded Build

BeitragFr, Apr 03, 2009 0:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe mir mal die Mühe gemacht HotDocs auf den neusten Stand zu bringen:
Es werden nun auch in ?threaded-Direktiven stehende Schlüsselwörter erkannt.
Zudem ist der Build an die Community Edition der MaxIDE angepasst und generiert auch dort den passenden Code. Ob es so mit der Standard-IDE funzt kann ich nicht sagen, aber Versuch macht klug.

Link:
https://www.blitzforum.de/upload/file.php?id=5209
(bleibt dauerhaft bestehen, da im Portal gehostet).

HF


Edit für Portalssuche:
HotDocs, hotdocs, hotdocs.de.vu, BMaxHilfe, hilfe, Anleitung
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
  • Zuletzt bearbeitet von BladeRunner am So, Dez 05, 2010 13:35, insgesamt einmal bearbeitet

Farbfinsternis

BeitragFr, Apr 03, 2009 9:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Dir! Probiere ich gleich mal aus.
Farbfinsternis.tv

amon

BeitragSo, Apr 05, 2009 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat ganz gut geklappt, musst nur an einer stelle einen zusätzlichen Test einführen:

im file output.bmx

In Zeile 902 hab ich ein If Statement einfügen müssen, weil bei den 1.32 htmls da einmal nach dem Trim ein Leerstring rauskam, es Stand "~r~n" drinnen vorher.

Code: [AUSKLAPPEN]
               If text2.Length > 0 Then

                  'exit, if program find </body>
                  If delheader=1 And Left(text2,6)="</body" Then terminate=1; Exit
                  
                  'skip all html tags
                  If text2[0]=60 And text2[text2.length-1]=62 Then skip=1 '60=< 62=>
   
                  'tag start
                  If Left(text2,6)="<table"  Then skip=0; text1="<table class=alternative>"
                  If Left(text2,3)="<tr"     Then skip=0; text1="<tr>"
                  If Left(text2,3)="<th"     Then skip=0; text1="<th>"
                  If Left(text2,3)="<td"     Then skip=0; text1="<td>"
                  If Left(text2,3)="<h2"     Then skip=0; text1="<h2>"
                  If Left(text2,4)="<pre"    Then skip=0; text1="<pre class=codeblock>"
                  If Left(text2,3)="<p>"     Then skip=0; text1="<p>"
                  If Left(text2,4)="<div"    Then
                     skip=0; text1="<div class=codeblock>"
                     If brcount=0 Then text1="<br><br>"+text1
                     If brcount=1 Then text1="<br>"+text1
                  EndIf
   
                  'tag end
                  If Left(text2,7)="</table" Then skip=0; text1="</table>"
                  If Left(text2,4)="</tr"    Then skip=0; text1="</tr>"
                  If Left(text2,4)="</th"    Then skip=0; text1="</th>"
                  If Left(text2,4)="</td"    Then skip=0; text1="</td>"
                  If Left(text2,4)="</h2"    Then skip=0; text1="</h2>"
                  If Left(text2,5)="</pre"   Then skip=0; text1="</pre>"
                  If Left(text2,4)="</p>"    Then skip=0; text1="</p>"
                  If Left(text2,5)="</div"   Then skip=0; text1="</div><br>"
   
                  If Left(text2,3)="<br"     Then skip=0; text1="<br>"; brcount=brcount+1 Else brcount=0
   
                  If delimage =0 And Left(text2,4)="<img" Then skip=0 'no modifications
                  If delformat=0 And Left(text2,3)="<b>"  Then skip=0; text1="<b>"
                  If delformat=0 And Left(text2,3)="<i>"  Then skip=0; text1="<i>"
                  If delformat=0 And Left(text2,3)="<u>"  Then skip=0; text1="<u>"
                  If delformat=0 And Left(text2,4)="</b>" Then skip=0; text1="</b>"
                  If delformat=0 And Left(text2,4)="</i>" Then skip=0; text1="</i>"
                  If delformat=0 And Left(text2,4)="</u>" Then skip=0; text1="</u>"
   
                  If dellink=0   And Left(text2,3)="<a "  Then skip=0 'no modifications
                  If dellink=0   And Left(text2,4)="</a>" Then skip=0; text1="</a>"
   
                  If delh1=0 Then
                     If Left(text2,3)="<h1"  And h1used=1 Then skip=0; text1="<h2>"
                     If Left(text2,4)="</h1" And h1used=1 Then skip=0; text1="</h2>"
                     If Left(text2,3)="<h1"  And h1used=0 Then skip=0; text1="<font class=bigname>"
                     If Left(text2,4)="</h1" And h1used=0 Then skip=0; text1="</font><br><br>"; h1used=1
                  ElseIf delh1=1 Then
                     If Left(text2,3)="<h1"  Then paused=1
                     If Left(text2,4)="</h1" Then paused=0
                  EndIf
   
                  If begin=1 And skip=0 And paused=0 Then text3=text3+text1
                  If delheader=1 And Left(text2,5)="<body" Then begin=1
               EndIf


Nach dieser Änderung lief es durch bei mir

Farbfinsternis

BeitragMo, Mai 02, 2011 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry dass ich diesen alten Thread nochmal reaktiviere, aber ich habe eine Frage ... bzw. ein Anliegen:

Wäre es möglich zu implementieren dass man per Config das parsen von Extern-Blöcken unterbinden kann?
Farbfinsternis.tv

BladeRunner

Moderator

BeitragDi, Mai 03, 2011 4:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin derzeit nicht mit allzuviel Zeit gesegnet, daher verspreche ich mal nichts. Das Dingen ist ja aber auch von TheShadow und mittlerweile OpenSource - falls Du also die Zeit und die Muße hast Dich einzulesen, fühl dich frei Smile
Ein dauerhaftes Hosting der erweiterten Version wäre hier gesichert.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

blackgecko

BeitragDi, Mai 03, 2011 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn der Thread schon mal oben ist: Bei mir klappt das Erstellen der hotdocs nicht. Weder mit der originalen Version noch mit dieser.
Zuerst einmal: Ich sitze hier an einem Linux-PC.
Zuerst musste ich die Abfrage abändern, die nach MaxIDE.exe sucht, aber das bekomm ich noch hin.
Das Problem kommt dann, wenn hotdocs "sync dirs..." ausgibt. Dort bleibt das Programm hängen und gibt kein Lebenszeichen mehr von sich (außer 100% CPU-Auslastung).
Hat jemand eine Ahnung, was da los ist?
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

Farbfinsternis

BeitragDi, Mai 03, 2011 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem besteht schon ewig und konnte bisher nicht gelöst werden.
Farbfinsternis.tv

BladeRunner

Moderator

BeitragDi, Mai 03, 2011 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, da ich nur unter Windows arbeite kann ich nur Vermutungen anstellen. Linux ist wesentlich pingeliger was Ordnernamen etc. angeht, es mag sein dass er sich totsucht weil die Ordnernamen nicht korrekt in Groß- und Kleinschreibung sind.
Ich erinnere mich allerdings dass ich, als ich das Threaded-Flag reinschraubte ein ähnliches Problem hatte. Da waren die Abbruchbedingungen für diverse Schleifen an der Falschen stelle und er geriet in eine Endlosloop. Ich würde Dir empfehlen dich mit debuglog-Ausgaben zur problemstelle vorzuhangeln und dann zu sehen wo es hängt - genauso hab ich es damals auch gemacht. War schweisstreibend, das. Schade dass TS nicht mehr unter uns weilt.

Fremden Code warten ist immer ein Spass.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

blackgecko

BeitragDi, Mai 03, 2011 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, danke trotzdem.
Ich hab mal n bisschen im Code geändert, es hat sich schon gebessert: Über die Stelle mit "sync dirs..." komm ich jetzt schon drüber. (Das war ein Problem mit NextFile und FileType)
Aber jetzt hängt er an der Stelle "write modules..." und bleibt dort seltsamerweise bei brl.audio hängen.
Falls ich es jemals ganz schaffe, schreib ich hier, was man machen muss.
mfg blackgecko
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

BladeRunner

Moderator

BeitragMi, Mai 04, 2011 8:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Das klingt sehr vertraut, mit Filetype und nextfile - das war doch irgendwie ein Reihenfolgeproblem. Ich denke das wiederholte sich auf mehreren Ebenen. Viel Erfolg.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

blackgecko

BeitragMi, Mai 04, 2011 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
So, ich habs geschafft Very Happy

1. Ist die IDE da?
Hotdocs prüft nach Eingabe eines Verzeichnisses, ob es das richtige ist, indem nach der BlitzMax IDE gesucht wird. Da der Code nur für Windows gedacht ist, wird nach MaxIDE.exe gesucht. Folgender Code ändert dies für Linux ab, er muss in hotdocs.bmx ab Zeile 413 statt dem, was da steht eingesetzt werden. (Was man für MacOS noch einsetzen muss, weiß ich nicht, ich glaub da heißen die Programme .app, aber sicher bin ich nicht)
BlitzMax: [AUSKLAPPEN]
	Local maxide_extension:String
?Win32
maxide_extension = ".exe"
?Linux
maxide_extension = ""
?
If FileType(blitzmax+"MaxIDE"+maxide_extension) <> 1 Then
Notify "MaxIDE not found"
End
EndIf

2. FileType Probleme
Dieses Problem tritt gleich 3Mal auf. Jedes Mal wird ein Ordner mir ReadDir geöffnet und mit NextFile ausgelesen. Wenn das Verzeichnis fertig ausgelesen ist, liefert NextFile einen leeren String.
Nun prüft hotdocs den FileType von Pfad+Dateiname. Ist das ein Ordner oder eine Datei, wird damit etwas gemacht. Ansonsten (-> Datei nicht vorhanden) wird aus der Schleife ausgestiegen.
Ist jetzt aber der Dateiname ein leerer String, wird nur der Pfad geprüft. Und dieser hat hinten einen "/". Und eine Überprüfung davon liefert anscheinend bei Windows das Ergebnis, dass die Datei nicht existiert, auf Linux aber erkennt FileType hier einen Ordner. Das kann zu Endlosschleifen führen.
Abhilfe schafft eine einfache If-Bedingung. Eingefügt werden muss sie in output.bmx, Zeile 125, Zeile 334 und Zeile 1815, am besten direkt nach dem Aufruf von NextFile.
BlitzMax: [AUSKLAPPEN]
If file = "" Then Exit
Nach diesen Änderungen klappt die Erstellung bei mir. Allerdings weigern sich die htmlviews der maxgui, die index.html anzuzeigen. Mad Aber im Browser siehts auch schön aus.
PS: Die Zeilenzaheln stimmen nur ungefähr, weil das sich ja verschiebt, wenn man was einfügt. Aber sollte alles zu finden sein.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group