[SOCPB 2006] Projet # 7 : Code Txt Doc -> Wiki
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
[SOCPB 2006] Projet # 7 : Code Txt Doc -> Wiki
Projet #7
Leader :Dr Dri
Membres :
Bon Code
Note :
Le Leader a pour but :
+ d'orienter le développement du projet
+ de regrouper les codes recus
+ de formater le code final (lisibilité, commentaire)
Donc ses paroles sont lettres d'évangiles
Leader :Dr Dri
Membres :
Bon Code
Note :
Le Leader a pour but :
+ d'orienter le développement du projet
+ de regrouper les codes recus
+ de formater le code final (lisibilité, commentaire)
Donc ses paroles sont lettres d'évangiles
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Pour commencer j'aurais quelques questions.
Serait-il possible d'avoir un fichier de doc qui contienne tous les cas de figure possibles ?
(je pense en particulier à la lib Gadget)
Est-ce qu'on inclue la coloration syntaxique ?
(sachant qu'il existe une lib officielle depuis la v4)
Est-ce qu'on propose la personnalisation des couleurs ?
Dri
Serait-il possible d'avoir un fichier de doc qui contienne tous les cas de figure possibles ?
(je pense en particulier à la lib Gadget)
Est-ce qu'on inclue la coloration syntaxique ?
(sachant qu'il existe une lib officielle depuis la v4)
Est-ce qu'on propose la personnalisation des couleurs ?
Dri
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Un conseil : vois avec Comtois vu que c'est lui qui a lancé le projet...
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
il y a une liste des commandes ici
André a commencé à renseigner un fichier word avec l'explication des commandes.
si tu as un accès au cvs tu peux le récupérer, sinon dis moi le , je le mettrai en ligne sur mon site.
Je pourrai aussi mettre à disposition le code que j'avais fait l'année dernière , c'est affreusement écrit et incomplet.
L'écrire à plusieurs ça pourra être l'occasion d'apprendre à mieux gérer ce genre de traitement
Par contre on peut construire le code en gardant à l'esprit la possibilité d'ajouter cette extension.
Par exemple tu peux comparer la mise en page de la doc sur ces deux sites :
Site 1
Site 2
André a commencé à renseigner un fichier word avec l'explication des commandes.
si tu as un accès au cvs tu peux le récupérer, sinon dis moi le , je le mettrai en ligne sur mon site.
Je pourrai aussi mettre à disposition le code que j'avais fait l'année dernière , c'est affreusement écrit et incomplet.
L'écrire à plusieurs ça pourra être l'occasion d'apprendre à mieux gérer ce genre de traitement

J'y avais songé à ce truc, pourquoi pas, mais dans un deuxième temps, faut pas voir trop gros pour commencer sous peine de ne rien finir .Est-ce qu'on inclue la coloration syntaxique ?
(sachant qu'il existe une lib officielle depuis la v4)
Par contre on peut construire le code en gardant à l'esprit la possibilité d'ajouter cette extension.
L'idéal serait de pouvoir construire un script de conversion de façon à personnaliser la page wiki.Est-ce qu'on propose la personnalisation des couleurs ?
Par exemple tu peux comparer la mise en page de la doc sur ces deux sites :
Site 1
Site 2
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
tiens voila un exemple pour une commande
Code : Tout sélectionner
@Function Resultat = ButtonGadget(#Gadget, x, y, Largeur, Hauteur, Texte$ [, Options])
@Description
Crée un bouton dans la GadgetList en cours.
Si @ReferenceLink "purebasic_objects" "#PB_Any" est utilisé pour le paramètre '#Gadget', le numéro du nouveau gadget sera renvoyé dans 'Resultat'.
#Gadget sera la valeur retournée par la fonction @Link "Window/EventGadget" "EventGadget()". x et y sont les coordonnées de la position du
bouton dans la fenêtre. 'Largeur' et 'Hauteur' sont ses dimensions, 'Texte$' contient
le texte qui sera affiché dans le bouton.
Pour créer une GadgetList, voir @Link "CreateGadgetList" "CreateGadgetList()".
@LineBreak
@LineBreak
Le paramètre facultatif 'Options' peut être une combinaison des constantes suivantes:
@FixedFont
@ConstantColor "#PB_Button_Right" : Aligne le texte du bouton à droite.
@ConstantColor "#PB_Button_Left" : Aligne le texte du bouton à gauche.
@ConstantColor "#PB_Button_Default" : Définit le bouton comme bouton par défaut (encadré en noir).
@ConstantColor "#PB_Button_MultiLine": Affiche le texte sur plusieurs lignes s'il est trop long.
@ConstantColor "#PB_Button_Toggle" : Crée un bouton de type 'Toogle'. Ce bouton alterne l'état 'appuyé' et 'normal'.
@EndFixedFont
Vous pouvez ajouter une 'mini aide' à ce gadget en utilisant @Link "GadgetToolTip" "GadgetToolTip()".
@LineBreak
@LineBreak
@OS Windows
@LineBreak
@LineBreak
@Underline "Pour Window uniquement":
@LineBreak
Vous pouvez utiliser le caractère '&' pour souligner une lettre particulière dans le 'Texte$'du bouton : "&Bouton" affichera : @Underline "B"outon
@LineBreak
(Note: Sous Windows XP le caractère souligné apparait seulement si cette option n'est pas désactivée.)
@LineBreak
@LineBreak
Vous pouvez associer un raccourci clavier au bouton avec la commande @Link "Window/AddKeyboardShortcut" "AddKeyboardShortcut()".
@EndOS
@LineBreak
@LineBreak
@Example
@Code
; Démonstration des options possibles pour le gadget bouton
;
If OpenWindow(0, 0, 0, 222, 200, "ButtonGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 200, 20, "Bouton standard")
ButtonGadget(1, 10, 40, 200, 20, "Texte aligné à gauche", #PB_Button_Left)
ButtonGadget(2, 10, 70, 200, 20, "Texte aligné à droite", #PB_Button_Right)
ButtonGadget(3, 10, 100, 200, 60, "Texte sur plusieurs lignes (les textes longs retournent automatiquement à la ligne)", #PB_Button_MultiLine)
ButtonGadget(4, 10, 170, 200, 20, "Bouton à bascule", #PB_Button_Toggle)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
@EndCode
@LineBreak
@Image buttongadget.png
@SupportedOS Windows, Linux, MacOS X
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
J'ai récupéré la liste des commandes (heureusement il me reste des notions d'allemand) mais je me pose des questions (la différence entre Code->EndCode et SourceExample->EndSourceExample par exemple ?)
Enfin bon je lirais ca plus tard... Sinon je n'ai pas d'acces au cvs (pas qu'je sache...) donc si tu pouvais me donner le fichier word je ne dirais pas non ^^
J'ai récupéré aussi ton example du ButtonGadget mais je voulais plutôt la page "Gadget" avec la nouvelle navigation par image maintenant ^^ (enfin bon je garde aussi l'exemple du bouton =)
Pour les deux exemples de sites, c'est pas assez parlant pour moi :oops;
Ca signifie qu'il faut pouvoir générer plusieurs codes wiki différents ? Ca me fait penser qu'il faut ke je dl une doc sur les specs du wiki -_-
Je commence un embryon dès que j'ai le temps
Dri
Enfin bon je lirais ca plus tard... Sinon je n'ai pas d'acces au cvs (pas qu'je sache...) donc si tu pouvais me donner le fichier word je ne dirais pas non ^^
J'ai récupéré aussi ton example du ButtonGadget mais je voulais plutôt la page "Gadget" avec la nouvelle navigation par image maintenant ^^ (enfin bon je garde aussi l'exemple du bouton =)
Pour les deux exemples de sites, c'est pas assez parlant pour moi :oops;
Ca signifie qu'il faut pouvoir générer plusieurs codes wiki différents ? Ca me fait penser qu'il faut ke je dl une doc sur les specs du wiki -_-
Je commence un embryon dès que j'ai le temps
Dri
Voila le fichier doc avec les explications des mots clés de docMaker, il n'est pas fini , mais l'essentiel y est. Et j'ai mis le fichier complet gadget.txt.
http://perso.wanadoo.fr/comtois/Doc/doc.zip
Pour avoir accès au cvs tu as juste à installer tortoise sur ton disque
http://perso.wanadoo.fr/comtois/Doc/doc.zip
Pour avoir accès au cvs tu as juste à installer tortoise sur ton disque

http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Après avoir un peu tout lu, voila ce que je propose:
Il y a plusieurs types de balises et qu'en plus ca peut évoluer. Donc je propose un système de fichiers de préférences.
Sinon une chose intéressante dans, un fichier peut contenir plusieurs fonctions, donc il faudrait une routine pour enumérer ces fonctions (et après laisser le choix de traiter une fonction en particulier ou toutes)
Dernier truc un peu gênant
(c'est pour ca que j'avais demandé la doc pour la lib gadget)
Il est possible d'insérer du code html dans la doc, dans le cas de la page Gadget ce n'est pas vital mais on ne sait pas comment ca va évoluer... Pour le moment on va être obligé de zapper le contenu de cette balise (@FormatIf)
Dri
Il y a plusieurs types de balises et qu'en plus ca peut évoluer. Donc je propose un système de fichiers de préférences.
Code : Tout sélectionner
[balises avec les guillemets]
Bold = code wiki au choix
Green = code wiki au choix
[balises avec une url]
Image = code wiki au choix
InternetLink = code wiki au choix
Dernier truc un peu gênant
(c'est pour ca que j'avais demandé la doc pour la lib gadget)
Il est possible d'insérer du code html dans la doc, dans le cas de la page Gadget ce n'est pas vital mais on ne sait pas comment ca va évoluer... Pour le moment on va être obligé de zapper le contenu de cette balise (@FormatIf)
Dri
tu as tout à fait raison Dri , il faudrait gérer un fichier préférence ,ça permet de personnaliser la page wiki.
Voici le code pourri que j'avais fait pour mettre en ligne la doc sur le site du GCN
y'a du boulot pour arranger le truc 
Enfin pas l'arranger mais en faire un autre en partant de zéro .
Voici le code pourri que j'avais fait pour mettre en ligne la doc sur le site du GCN

Code : Tout sélectionner
;Gérer
;@ReferenceLink
;@FastLink
;@ConstantColor
Declare SelectionMotCle(Ligne$,MotCle$)
Global Precedent$,Suivant$,Sommaire$
Global FixeFont.l,CodeEnCours.l
#CheminWiki="D:\Wiki\"
#RepertoireCVS="D:\CVSPureBasic\Documentation\French\"
Global NewList Tampon.s()
Global NewList ListeFonction.s()
Global NewList ListeBibliotheque.s()
Global NewList ListeFichier.s()
Global NomFonction$
;Charge la liste des biblio
;Ce fichier est généré manuellement en faisant un copier/coller du sommaire de l'aide
If OpenFile(0,"ListeBiblio.bib")
While Eof(0)=0
Ligne$=LTrim(ReadString(0))
AddElement(ListeBibliotheque())
ListeBibliotheque()=Ligne$
Wend
CloseFile(0)
EndIf
;Détection de tous les fichiers "*.txt" issus du CVS
If ExamineDirectory(0, #RepertoireCVS, "*.txt")
Repeat
FileType = NextDirectoryEntry(0)
If FileType
FileName$ = DirectoryEntryName(0)
If FileType = 1 ;
AddElement(ListeFichier())
ListeFichier()=FileName$
Debug filename$
EndIf
EndIf
Until FileType = 0
EndIf
ForEach ListeFichier()
;Mémorise le fichier
If OpenFile(0,#RepertoireCVS + ListeFichier())
ClearList(Tampon())
While Eof(0)=0
Ligne$=ReadString(0)
AddElement(Tampon())
Tampon()=Ligne$
Wend
CloseFile(0)
EndIf
;Création de la liste des fonctions de la bibliothèque
ClearList(ListeFonction())
ForEach Tampon()
If FindString(Tampon(),"@Function",1)
SyntaxeFonction$=RemoveString(Tampon(), "@Function")
;Fonction retournant une valeur
Position=FindString(SyntaxeFonction$,"=",1)
If Position
temp$=Trim(Mid(SyntaxeFonction$,Position+1,Len(SyntaxeFonction$)-Position))
Else
temp$=Trim(SyntaxeFonction$)
EndIf
NomFonction$=StringField(temp$,1,"(")
AddElement(ListeFonction())
ListeFonction()=NomFonction$
EndIf
Next
;Trie la liste des fonctions
SortList(ListeFonction(),0)
;Construction des fichiers
ForEach Tampon()
If CodeEnCours=0
Ligne$=LTrim(Tampon())
Else
Ligne$=Tampon()
EndIf
;C'est pas un commentaire et pas une ligne vide
If Left(Ligne$,1)<>";" And Len(Trim(Ligne$))>0
;Cherche un mot clé
Position=FindString(Ligne$,"@",1)
;Si un mot clé est trouvé
If Position
;Recupere le MotCle
temp$=Mid(Ligne$,Position+1,Len(Ligne$)-Position)
MotCle$=StringField(temp$,1," ")
If MotCle$="OS"
MotCle$=RemoveString(Ligne$,"@",1)
EndIf
SelectionMotCle(Ligne$,MotCle$)
Else
If FixeFont
WriteString(0,"* ")
EndIf
WriteStringN(0,Ligne$)
EndIf
EndIf
Next
Next
End
Procedure SelectionMotCle(Ligne$,MotCle$)
Select MotCle$
Case "Library"
If IsFile(0)
CloseFile(0)
EndIf
;Récupère le nom de la bibliothèque
NomBibliotheque$=Trim(RemoveString(Ligne$, "@Library"))
;Création d'un fichier avec le nom de la bibliothèque
If CreateFile(0,#CheminWiki+"Lib_"+NomBibliotheque$)=0
MessageRequester("Création fichier wiki","Erreur à la création du fichier " + NomBibliotheque$,0)
End
EndIf
;Mémorise le nom du sommaire
Sommaire$="PureBasic:"+NomBibliotheque$
;écriture du menu
;Cherche la biblio dans la liste
ForEach ListeBibliotheque()
If ListeBibliotheque()=NomBibliotheque$
index=ListIndex(ListeBibliotheque())
If index>0
SelectElement(ListeBibliotheque(),index-1)
Else
LastElement(ListeBibliotheque())
EndIf
LibPrecedent$="PureBasic:"+ListeBibliotheque()
If index<CountList(ListeBibliotheque())-1
SelectElement(ListeBibliotheque(),index+1)
Else
FirstElement(ListeBibliotheque())
EndIf
LibSuivant$="PureBasic:"+ListeBibliotheque()
Break
EndIf
Next
WriteStringN(0,"{{ArticlesPlusieursPages|Sommaire=PureBasic:Manuel"+"|Précédent="+LibPrecedent$+"|Suivant="+LibSuivant$+"}} ")
Case "Overview"
WriteStringN(0,"==General==")
Case "CommandList"
WriteStringN(0,"==Sommaire des commandes==")
ForEach ListeFonction()
WriteStringN(0,"* [[PureBasic:"+ListeFonction()+" | "+ListeFonction()+"()]]")
Next
Case "Function"
;Termine le fichier en cours
If IsFile(0)
CloseFile(0)
EndIf
SyntaxeFonction$=RemoveString(Ligne$, "@Function")
;Fonction retournant une valeur
Position=FindString(SyntaxeFonction$,"=",1)
If Position
temp$=Trim(Mid(SyntaxeFonction$,Position+1,Len(SyntaxeFonction$)-Position))
Else
temp$=Trim(SyntaxeFonction$)
EndIf
NomFonction$=StringField(temp$,1,"(")
;Cherche la fonction dans la liste
ForEach ListeFonction()
If ListeFonction()=NomFonction$
index=ListIndex(ListeFonction())
If index>0
SelectElement(ListeFonction(),index-1)
Else
LastElement(ListeFonction())
EndIf
Precedent$="PureBasic:"+ListeFonction()
If index<CountList(ListeFonction())-1
SelectElement(ListeFonction(),index+1)
Else
FirstElement(ListeFonction())
EndIf
Suivant$="PureBasic:"+ListeFonction()
Break
EndIf
Next
If CreateFile(0,#CheminWiki+NomFonction$)=0
MessageRequester("Création fichier wiki","Erreur à la création du fichier " + NomFonction$,0)
End
EndIf
WriteStringN(0,"{{ArticlesPlusieursPages|Sommaire="+Sommaire$+"|Précédent="+Precedent$+"|Suivant="+Suivant$+"}} ")
WriteStringN(0,"==Syntaxe==")
New$=ReplaceString(SyntaxeFonction$,NomFonction$,"'''"+NomFonction$+"'''")
WriteStringN(0,RTrim(LTrim(New$)))
Case "Description"
WriteStringN(0,"==Description==")
Case "ConstantColor"
Ligne$=RemoveString(Ligne$,"@ConstantColor",1)
WriteStringN(0, "* " + Ligne$)
Case "ReturnValue"
WriteStringN(0, "==Valeur de retour==")
Case "Parameters"
WriteStringN(0, "==Arguments==")
Case "Image"
NomImage$=LTrim(RemoveString(Ligne$,"@Image"))
WriteStringN(0, "[[Image:PB_"+NomImage$+"]]")
Case "ExampleFile"
WriteStringN(0, "'''<big>Exemple</big>'''")
Case "Code"
CodeEnCours=1
WriteStringN(0, "<pre>")
Case "EndCode"
CodeEnCours=0
WriteStringN(0, "</pre>")
Case "FixedFont"
FixeFont=1
Case "EndFixedFont"
FixeFont=0
Case "LineBreak"
WriteStringN(0, "<br>")
Case "Link"
Position=FindString(Ligne$,"@Link",1)
While Position
Position1=FindString(Ligne$,Chr(34),Position)
Position2=FindString(Ligne$,Chr(34),Position1+1)
Position3=FindString(Ligne$,Chr(34),Position2+1)
Position4=FindString(Ligne$,Chr(34),Position3+1)
Deb$=Left(Ligne$,Position-1)
Suite$=Mid(Ligne$,Position3+1,Len(Ligne$)-Position3)
Champ$=StringField(Suite$,1,"(")
Champ1$="PureBasic:"+Champ$
Suite$=Mid(Ligne$,Position4+1,Len(Ligne$)-Position4)
Ligne$=Deb$+"[["+Champ1$+" | "+Champ$+"()]]"+Suite$
Position=FindString(Ligne$,"@Link",1)
Wend
WriteStringN(0,Ligne$)
Case "ReferenceLink"
Position=FindString(Ligne$,"@ReferenceLink",1)
;While Position
Position1=FindString(Ligne$,Chr(34),Position)
Position2=FindString(Ligne$,Chr(34),Position1+1)
Position3=FindString(Ligne$,Chr(34),Position2+1)
Position4=FindString(Ligne$,Chr(34),Position3+1)
Deb$=Left(Ligne$,Position-1)
Suite$=Mid(Ligne$,Position3+1,Len(Ligne$)-Position3)
Champ$=StringField(Suite$,1,"(")
Champ1$="PureBasic:"+Champ$
Suite$=Mid(Ligne$,Position4+1,Len(Ligne$)-Position4)
Ligne$=Deb$+"[["+Champ1$+" | "+Champ$+"()]]"+Suite$
Position=FindString(Ligne$,"@ReferenceLink",1)
;Wend
WriteStringN(0,Ligne$)
Case "OS Windows"
WriteStringN(0,"==OS Windows==")
Case "OS Amiga"
WriteStringN(0,"==OS Amiga==")
Case "OS Linux"
WriteStringN(0,"==OS Linux==")
Case "OS Mac"
WriteStringN(0,"==OS Mac==")
Case "SupportedOS"
WriteStringN(0,"==OS supportés==")
OS$=RemoveString(Ligne$, "@SupportedOS")
If FindString(OS$,"All",1)
WriteStringN(0,"Windows, AmigaOS, Linux, MacOS X")
Else
WriteStringN(0,LTrim(OS$))
EndIf
EndSelect
EndProcedure

Enfin pas l'arranger mais en faire un autre en partant de zéro .
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
News au 10 Juillet ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Bonne anniversaire :p
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
voila un début de fichier ini, il est loin d'être fini... si y'en a qui veulent participer, bah postez, sinon je vais continuer quand j'aurais le temps et éditer au fur et à mesure.
Dri
Code : Tout sélectionner
[TYPES]
NOPARAM = Balises qui n'ont pas de paramètre
DQUOTE = Balises suivies d'un mot entre guillemets
DQUOTE2 = Balises suivies de deux mots entre guillemets
LINE = Une balise par ligne, avec au moins un paramètre
[NOPARAM]
Code
EndCode
CommandList
Description
Example
FixedFont
EndFixedFont
FormatEndIf
Indent
EndIndent
LineBreak
EndOS
Overview
[DQUOTE]
Bold = Met le texte en gras
Green = Colore le texte en vert
Keyword = Met le texte en gras avec la couleur des mots-clé
Orange = Colore le texte en orange
Red = Colore le texte en rouge
Underline = Souligne le texte
ConstantColor = Colore le texte avec la couleur des constantes
FastLink = Crée un lien vers une fonction de la même bibliothèque
FunctionColor = Colore le texte avec la couleur des fonctions
[DQUOTE2]
InternetLink = Crée un lien vers une ressource sur internet
[LINE]
ExampleFile = Crée un lien vers un fichier PureBasic (dans le dossier Examples)
SupportedOS = Donne la liste des systèmes d'exploitations qui supportent la fonction
;à classer...
;
;@ElseOs
;@EndSourceExample
;@FormatElse
;@FormatIf
;@Function
;@Image
;@Library
;@LibraryLink
;@Link
;@MainGuideLink (noparam ?)
;@Os
;@Parameter
;@Parameters
;@ReferenceLink
;@ReturnValue
;@Section
;@SourceExample
;@Syntax
;@Title
Dernière modification par Dr. Dri le lun. 17/juil./2006 12:20, modifié 2 fois.
Voici le fichier ini pour le wiki du GCN , je ne sais pas si c'est comme ça que tu avais prévu ?
Code : Tout sélectionner
[TAGS]
NOPARAM = Balises qui n'ont pas de paramètre
DQUOTE = Balises suivies d'un mot entre guillemets
DQUOTE2 = Balises suivies de deux mots entre guillemets
LINE = Une balise par ligne, avec au moins un paramètre
[NOPARAM]
Code = <pre>
EndCode = </pre>
CommandList = ==Sommaire des commandes==
Description = == Description ==
Example = '''<big>Exemple : </big>'''
ExampleFile = ''<big>Exemple</big>'''
FixedFont = Je ne sais pas
EndFixedFont
FormatEndIf
Indent = Rechercher la syntaxe wiki
EndIndent
LineBreak = <br>
Os Amiga = == OS Amiga ==
Os Linux = == OS Linux ==
Os Mac = == OS Mac ==
Os Windows = == OS Windows ==
EndOS =
Overview = == Général ==
[DQUOTE]
Bold = Met le texte en gras
Green = Colore le texte en vert
Keyword = Met le texte en gras avec la couleur des mots-clé
Orange = Colore le texte en orange
Red = Colore le texte en rouge
Underline = Souligne le texte
ConstantColor = Colore le texte avec la couleur des constantes
FastLink = Crée un lien vers une fonction de la même bibliothèque
FunctionColor = Colore le texte avec la couleur des fonctions
[DQUOTE2]
[LINE]
[à classer...]
MainGuideLink (noparam ?)
Parameter
Parameters = ==Arguments==
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
En fait comtois tu as une longueur d'avance, je fais d'abord un fichier ini contenant la desctiption des balises. Ensuite un autre fichier de prefs pour la conversion en wiki.
Pour éviter d'avoir deux fichiers l'idéal aurait été un fichier xml mais bon c'est un détail ^^
(par exemple pour Code
Code = Début d'un listing PB)
[edit]
j'ai programmé un morceau du programe final, un explorateur de balises. Je vais le modifier pour ajouter les possibilités d'ajouter/modifier les informations des prefs. Et le tout devrait représenter une boîte de dialogue.
Dri
Pour éviter d'avoir deux fichiers l'idéal aurait été un fichier xml mais bon c'est un détail ^^
(par exemple pour Code
Code = Début d'un listing PB)
[edit]
j'ai programmé un morceau du programe final, un explorateur de balises. Je vais le modifier pour ajouter les possibilités d'ajouter/modifier les informations des prefs. Et le tout devrait représenter une boîte de dialogue.
Code : Tout sélectionner
;Gestion des préférences sous forme de listes
Structure Preference
Group.s
Key.s
Value.s
EndStructure
Procedure.l LoadPreferences(File.s, Preferences.Preference())
Protected Load.l = #False
If OpenPreferences(File)
If ExaminePreferenceGroups()
While NextPreferenceGroup()
If ExaminePreferenceKeys()
While NextPreferenceKey()
AddElement( Preferences() )
Preferences()\Group = PreferenceGroupName()
Preferences()\Key = PreferenceKeyName()
Preferences()\Value = PreferenceKeyValue()
Wend
EndIf
Wend
EndIf
ClosePreferences()
SortStructuredList(Preferences(), 0|2, OffsetOf(Preference\Group), #PB_Sort_String)
Load = #True
EndIf
ProcedureReturn Load
EndProcedure
;---------------------------------------------------------------------
Global NewList Description.Preference()
Enumeration
#ComboBox_Types
#ComboBox_Tags
#Text_Description
EndEnumeration
Procedure FindGroup()
Index = GetGadgetState(#ComboBox_Types)
;trouve le nom du groupe
ResetList( Description() )
While Index >= 0 And NextElement( Description() )
If Description()\Group = "TYPES"
Index - 1
EndIf
Wend
Group.s = Description()\Key
;trouve le groupe
ResetList( Description() )
While NextElement( Description() ) And Description()\Group <> Group
Wend
If Description()\Group = Group
FindGroup = #True
EndIf
ProcedureReturn FindGroup
EndProcedure
Procedure ChangeTag()
If FindGroup()
Index = GetGadgetState(#ComboBox_Tags)
While Index > 0 And NextElement( Description() )
Index - 1
Wend
If Index = 0
SetGadgetText(#Text_Description, Description()\Value)
EndIf
EndIf
EndProcedure
Procedure ChangeGroup()
If FindGroup()
Group.s = Description()\Group
ClearGadgetItemList(#ComboBox_Tags)
;refresh les balises
Repeat
AddGadgetItem(#ComboBox_Tags, #PB_Default, "@" + Description()\Key)
Until Not NextElement( Description() ) Or Description()\Group <> Group
SetGadgetState(#ComboBox_Tags, 0)
ChangeTag()
EndIf
EndProcedure
If LoadPreferences("description.ini", Description())
OpenWindow(0, 0, 0, 270, 140, "Doc->Wiki Tag Explorer", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
EndIf
If is window(0) And UseGadgetList( WindowID(0) )
ComboBoxGadget(#ComboBox_Types, 10, 10, 250, 100)
ComboBoxGadget(#ComboBox_Tags, 10, 40, 250, 100)
TextGadget(#Text_Description, 10, 70, 250, 100, "")
;liste les groupes
ResetList( Description() )
While NextElement( Description() )
If Description()\Group = "TYPES"
AddGadgetItem(#ComboBox_Types, #PB_Default, Description()\Value)
EndIf
Wend
SetGadgetState(#ComboBox_Types, 0)
ChangeGroup()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #ComboBox_Types
ChangeGroup()
Case #ComboBox_Tags
ChangeTag()
EndSelect
Case #PB_Event_CloseWindow
Quit = #True
EndSelect
Until Quit
EndIf