PhiDo (aka φ道) is a Fidonet browser with a GUI.
-
Its name means “the Golden Path”, where “φ” represents the golden ratio and “道” means “path”.
-
Its name sounds like the Russian “Фидо” that means “Fido” (as in “Fidonet”).
Note: the application is currently in an early phase of its development and thus does not have even minimal feature completeness. However, it already supports some FGHI URLs and Fidonet avatars.
-
PhiDo is written in HTML5 + CSS + JavaScript and requires node-webkit to run.
-
Have 2 Gb RAM (or more). When PhiDo renders large Fidonet echomail areas (thousands of messages) and Firefox is running in background, if the system has only 1 Gb RAM (or less), swapping occurs inevitably.
-
PhiDo currently requires Node.js and npm for installation of dependencies. For futher versions of PhiDo the distribution of complete packages (with dependencies included) is planned.
-
PhiDo currently supports only the JAM (Joaquim-Andrew-Mats) type of Fidonet message bases.
-
PhiDo currently uses HPT's area configuration file as the description of echomail areas.
-
PhiDo does not currently create any lock files, not does it lock files in use. Users themselves have to prevent their echoprocessors (tossers) or mail editors from running when PhiDo is active.
-
Make sure that Node.js and npm are installed. (Follow the “Installation” article in the Node's wiki. You may prefer installing without building, especially on Windows.)
-
Download the ZIP-packed source code of PhiDo and unpack it to some directory. Then run
npm install --production
in that directory. -
Download node-webkit. Either unpack it to the PhiDo's directory or put in some other directory. In the latter case, add the node-webkit's directory to your system's
PATH
variable's value (unless you plan to use the verbose node-webkit's path when you launch PhiDo).
Copy phido.conf-example
to phido.conf
and edit in your favourite text editor.
The following configuration options are supported (in arbitrary order):
-
ConfigGoldED
— path to the configuration file of GoldED (or GoldED+, or GoldED-NSF). This setting allows to use PhiDo alongside the popular Fidonet mail editor (GoldED) when the former uses some settings of the latter. -
EncodingGoldED
— the encoding of non-ASCII characters in the GoldED config file. By default,utf8
is used. You may use any encoding provided by the singlebyte module. -
AreasHPT
— path to the area configuration file of HPT. This setting is necessary for PhiDo to know where the echomail resides.- The configuration lines for echomail are exprected to start with
EchoArea
(literally), then a whitespace-separated echotag (such asRu.FTN.Develop
for example), then a whitespace-separated full path (without the extensions) to the echomail files of the area, in that order. (A sequence of several whitespaces is also a supported separator.) The rest of the configuration line is also whitespace-separated from the path. - If the
-d "some description"
is found on the line, it is used as the echomail area's description. - Only JAM echomail areas are supported. Names of echo base files are generated by appending lowercase extensions (
.jhr
,.jdt
,.jdx
,.jlr
) to the given path.
- The configuration lines for echomail are exprected to start with
-
EncodingHPT
— the encoding of non-ASCII characters in the HPT areafile. By default,utf8
is used. You may use any encoding provided by the singlebyte module. -
UserName
— the user's name. May be borrowed from GoldED's configuration if omitted in PhiDo's. -
AreaSep
— descriptions of separators between areas in the arealist. May be borrowed from GoldED's configuration if omitted in PhiDo's. Each separator consists of the following elements (separated with one or more spaces):AreaSep
(literally)- areatag (such as
Ru.FTN.Develop
for example) "separator text"
(in double quotes)- group ID (number, currently ignored)
- group type (currently only
Echo
separators are displayed)
An alpha version of PhiDo, meant for testing, may display developer's toolbar at the top of its window. You may change "toolbar": true
to "toolbar": false
in package.json
to hide the toolbar.
Run nw .
in the PhiDo's directory.
Note: if node-webkit resides in another directory and you won't add that directory to your system's PATH
variable's value, then you should use a verbose (absolute or relative) path to the node-webkit's executable. (On Windows you may use the start.bat
file as an example and edit it according to your circumstances.)
It is necessary to install JSHint for testing.
- You may install JSHint globally (
npm install jshint -g
) or locally (npm install jshint
in the directory of PhiDo).
After that you may run npm test
(in the directory of PhiDo). Only the JS code issues are caught.
The source code is MIT-licensed (see LICENSE
), with the following exceptions:
-
The file
jq/$.js
contains jQuery which is also MIT-licensed but has its own authors (jQuery Foundation and other contributors).- The file
jq/jquery.color.min.js
contains jQuery Color plugin by jQuery Foundation and other contributors, MIT-licensed. - The file
jq/jquery.hotkeys.js
contains jQuery Hotkeys Plugin by John Resig (dual licensed under the MIT or GPL Version 2 licenses). - The file
jq/scrollspy.js
contains scrollSpy, a jQuery plugin by John Smart (MIT-licensed). - The file
jq/jquery.scrollTo.min.js
contains jQuery.scrollTo, a jQuery plugin by Ariel Flesler (MIT-licensed).
- The file
-
Fonts in the
paratype
directory are published by ParaType on the terms of ParaType Free Font Licensing Agreement. (See thePT Free Font License*.txt
files in the same folder.) -
The directory
bootstrap
contains Bootstrap licensed under Apache License v2.0. It is used in a hope that a newer version becomes MIT-licensed eventually (as planned) and replaces the current version. -
The directory
awesome
contains Font Awesome, licensed under SIL OFL 1.1. -
This product uses the JAM(mbp) API — Copyright 1993 Joaquim Homrighausen, Andrew Milner, Mats Birch, Mats Wallin. ALL RIGHTS RESERVED. (JAM may be used by any developer as long as its specifications are followed exactly. JAM may be used free-of-charge by any developer for any purpose, commercially or otherwise.)
-
Node.js modules (installed in the
node_modules
directory) belong to their respective owners.