VBNET:WikiCompiler
From GPWiki
The wiki is now hosted by GameDev.NET at wiki.gamedev.net. All gpwiki.org content has been moved to the new server. However, the GPWiki forums are still active! Come say hello.
[edit] IntroductionThis is the project page for the WikiCompiler app. The WikiCompiler app uses "wiki power" to compile community driven programming projects. WikiCompiler.zip 69Kb (Release 3 - April 9, 2005) NOTE: I (Created by: X) have been absent from this project for a little while but now I am back. But I my or may not continue to update this project. If I do update it I will be quite different then it is now. I still find the idea quite interesting. [edit] Application overview[edit] First RunThis is what you will see when you first start the app... Source URL: The source url refers to the project page on the web. This url does not even have to be a Wiki page it can be any type of html web page. [edit] The Output TabOutput Tab: When you click the "Compile" button WikiCompiler will automatically show this tab. When the app is compiling it will write compile information into the text box. [edit] The Options TabDestination Folder: Allows you to specify the location that you would like to place the compiled assembly files. If you do not specify a folder then any compiled assemblies will be placed in the same folder as the WikiCompiler app. [edit] Compiler Tags[edit] FormattingThe WikiCompiler regognizes tags that are structured as fallows... All tags are wrapped in [[[ and ]]] that define an individual tag. Following the [[[ is the name of the tag. The compiler determins the end of the tags name by looking for a colon ":" character. The colon ":" character is used to separate the name of the tag from the tags parameters. Everything defined between the colon ":" and ]]] will be the tags parameters. Tag parameters are separated by three colons ":::". [edit] Currently Implemented Tags
The PROJECTSTART and PROJECTEND tags define the start and end of a project. A PROJECTSTART tag also must contain two parameters. The first parameter is the name of the project. The second parameter defines the type of assembly the project will be compiled into. The second "Project Type" parameter must be EXE, DLL, or CON. EXE=Windows app DLL=Library CON=Console app. The PROJECTEND tag must contain one parameter, and it must be the same as the first parameter defined in the PROJECTSTART tags. This is how the compiler knows where a project starts and ends within a web page.
The REFERENCE tags define the start and end of a project reference and must reside between a PROJECTSTART tag and the first decloration of a FILESTART tags. It is beast to add any REFERENCE tags immediatly fallowing a PROJECTSTART tag. A REFERENCE tag also must contain one parameter. The parameter will be the filename of a assembly file that the project will need in order to successfully compile. Most often then not you will need to add a reference to the System.dll assembly. For example [[[REFERENCE:System.dll]]]
The FILESTART and FILEEND tags define the start and end of a code file for the project and must reside between PROJECTSTART and PROJECTEND tags. A FILESTART tag also must contain one parameter. The parameter will be the filename of the code file. So for example if the code was written in vb.net the file should end with a .vb extention. The FILEEND tag must contain one parameter, and it must be the same as the first parameter defined in the FILESTART tag. This is how the compiler knows where a code file starts and ends within the web page. In order for the code to be parsed and compiled properly the compiler will only compile the code that it finds within the first defined <pre> </pre> tag. This is to ensure that the code does not get malformed. And allows it to stand out as code within the wiki page. [edit] Tags that Still Need Implementing[edit] Source Pages[[[SOURCE:http://www.someurl.com/ProjectPage1.htm]]] <-- not yet implemented [[[SOURCE:http://www.someurl.com/ProjectPage2.htm]]] <-- not yet implemented Source pages will allow a project to exist across multiple web pages. [edit] Entry Point[[[ENTRYPOINT: ]]] <-- not yet implemented The entry point tag will allow people to specify what method should be the project entry point. [edit] Embedded Resources[[[EMBEDRESOURCE: ]]] <-- not yet implemented Will allow additional files to be embedded into the compiled project as a embeded resource. [edit] Content Files[[[CONTENT: ]]] <-- not yet implemented Will allow additional files to be associated with the project. Such as doumentation files or media files etc. [edit] The Language Tag[[[LANGUAGE: ]]] <-- not yet implemented Will allow users to specify what programming language the project is written in. Currently only VB.NET is supported but C# will be added at a later time as well. (This is not a difficult task) [edit] The Additional Files Tag[[[ADDITIONALFILE: ]]] <-- not yet implemented Will allow additional files to be associated with the project. This tag will probably not be added. users whould use a CONTENT tag to include any additional files with the project. [edit] A "Bin" folder Tag[[[BINFOLDER: ]]] <-- not yet implemented Will allow users to specify where the compiled assemblies will be placed. [edit] Example Project[edit] Source Pages[[[SOURCE:http://www.someurl.com/ProjectPage1.htm]]] <-- not yet implemented [[[SOURCE:http://www.someurl.com/ProjectPage2.htm]]] <-- not yet implemented [edit] Project Blockanoidz
[edit] Project file Main.vb[[[FILESTART:Main.vb]]]
imports Microsoft.VisualBasic
imports System
public module General
public sub Main()
msgbox("Test") 'test code
NewMethod()
end sub
end module
[[[FILEEND:Main.vb]]] [edit] Project file SecondFile.vb[[[FILESTART:SubFolder\SecondFile.vb]]]
imports Microsoft.VisualBasic
imports System
public module SecondaryModule
public sub NewMethod()
msgbox("Cool Idea!")
end sub
end module
[[[FILEEND:SubFolder\SecondFile.vb]]] [edit] Project file AssemblyInfo.vb[[[FILESTART:AssemblyInfo.vb]]]
Imports System.Reflection
Imports System.Runtime.InteropServices
imports Microsoft.VisualBasic
imports System
' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
' Review the values of the assembly attributes
<Assembly: AssemblyTitle("")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("")>
<Assembly: AssemblyCopyright("")>
<Assembly: AssemblyTrademark("")>
<Assembly: CLSCompliant(True)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("B0445D6B-96FB-4717-95BA-45F524449255")>
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
<Assembly: AssemblyVersion("1.0.*")>
[[[FILEEND:AssemblyInfo.vb]]]
[edit] Projects that use the WikiCompiler
[edit] Future Additions
|





