fbdoc - FreeBASIC User's Manual Converter/Generator Copyright (C) 2006-2020 The FreeBASIC development team. License: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA. Purpose of fbdoc: The main purpose of fbdoc is for the conversion and generation of the FreeBASIC manual from https://www.freebasic.net/wiki to other formats. Secondary to this purpose is the creation of tools that will help maintain or format the wakka script located online. fbdoc is built both as an executable application and as a library. The executable application is used for the actual document conversion and generation. The library and headers are used for other tools that might help in the development and maintenance of the online manual. No real concern is made at the moment for backwards compatibility where fbdoc is used as a library since there are relatively few users of fbdoc as an application, and even fewer that use it as a library. This might change in future, but for now, the focus is on supporting the maintenance conversion and generation of the FreeBASIC manuaul. There will likely never be a binary distribution of fbdoc. It is built from sources. The doc converter is modified as needed to build the the on-line docs. Finally, aside from the FreeBASIC compiler itself, fbdoc serves as a test application written in FreeBASIC that helps to test making practical use of the language itself. While fbdoc does not test every feature available in the FreeBASIC language, fbdoc is a non-trivial application that must continue to work for years to come. Compiling: Type in a command prompt in the fbdoc directory: $ make This will generate the "fbdoc" executable. o Requirements: - FreeBASIC Compiler version 1.04.0 or greater and compatible build environment. - Windows or Linux OS (DOS not supported) - pcre - libcurl - internet connection ( optional, to download wiki pages not in git repository ) - make Running: o First time use: - type "fbdoc -help" for a list of options - In the directory where fbdoc executable was made, type "fbdoc -makeini" and this will create a default "fbdoc.ini". Edit the file to configure connection settings. However, this step is not required if building from git repository only. o Building the CHM from Git Repository: - In the directory where fbdoc executable was made, type "fbdoc -usecache -chm" - When the process is complete, use html help compiler to make the CHM using ./html/fbdoc.hhp as the project file. o Building the CHM from the wiki over the web: - In the directory where fbdoc executable was made, type "fbdoc -useweb -chm" - When the process is complete, use html help compiler to make the CHM using ../manual/html/fbdoc.hhp as the project file. o Building the CHM using an MySQL Database source: - fbdoc must be compiled with HAVE_MYSQL=1 option passed to make. - Edit "fbdoc.ini" to set the host name or ip address, user name, password, database name, and port number to use for the MySQL database connection. - In the directory where the fbdoc executable was made, type "fbdoc -usesql -chm" - When the process is complete, use html help compiler to make the CHM using ../manual/html/fbdoc.hhp as the project file. o Building the FBHELP.DAT format using the existing cache: - assuming that the cache is already filled, for example by previously making the CHM, additional formats can be generated by using the existing local cache only - type "fbdoc -usecache -fbhelp" - type "mkfbhelpfile" this will generate fbhelp.dat in the fbhelp folder. o Forcing a refresh of the cache and building multiple formats: - type "fbdoc -refresh -useweb -chm -fbhelp -txt" Credits: o Jeffery R. Marshall (coder[at]execulink.com): - main developer of fbdoc application o Andre Victor T. Vicentini (av1ctor[at]yahoo.com.br): - Created backend code for using PCRE and libCURL. - Ported the first version of the Wikka parser code from PHP sources to FreeBASIC. - created list.bas and list.bi - a generic linked list Links: o Official site: https://www.freebasic.net/ o External libraries: - Curl: https://curl.haxx.se/ - MySQL: https://dev.mysql.com/ - PCRE: http://www.pcre.org/ EOF