Readme wont display if no JavaScript language enabled in your browser.
To display a readme, turn JavaScript on.
tp readme. Draft.
#@title@# is a #@description@#.
It can be distributed as
this entire folder.
Version: #@version@#
Date: #@date@#
License: #@license@#
Copyright: #@copyright@#
EMail: #@email@#
WebSite: #@web_site@#
F e a t u r e s a r e:
... there are no css files and no images used, all is dynamic
... no HTML5, no XHTML stuff ... HTML4 is sufficient
... JavaScript globals footprint is four:
window.jQuery,
window.$,
window.tp$,
window.cccc
... CSS footprint is zero except to CSS-ids: CSS-selector names use is minimal.
They ends with _btp like: in ... id="javascript_warning_btb" ...
... some of subplugins like tp$.core or tp$.gui are really libraries and
... only one call ...tp$('select') is really jQuery modifier of a dom-element
C O D I N G S T Y L E
S y n t a x i f i e d C o m m e n t s
Following conventions may apply
1. comments scope is defined like
//.
//:
///
if control characters are omitted, scope is unspecified. Scope may be
deducted or guessed from the content of comment;
2. a verb should be the first word of comment unless comment describes declaration of the variable;
3. comment should start on a new line unless comment describes data in function call or in block literal;
// //\\ LOGICAL SECTION OF THE CODE. This line begins "LOGICAL SECTION". It has //\\ token.
//. comments only the following line. in other words: scope of comment is the following line
var me = is_commented;
//: comments only the lines till the first empty line
var first_continuos = 1;
var second_continuos = 2;
/// comments till the end of the nest. Nest can be if, function call, function definition, block literal.
var some = 1;
if( open_if ) {
var beginning_of_the_nest = true;
}else{
//:: comments block A till the end of indent
var more_work = 3;
var more_work = 3;
// Text next to "//.." describes context of the section or current state of execution.
// This may be necessary when section is too long:
//.. //\\ LOGICAL SECTION
var more_work = 3;
var end_of_the_nest = true;
// end of block A. This comment has unspecified scope.
}
/// comments till the end of the nest. Nest can be if, function call, function definition, block literal.
var x = function () {
return "job is done";
}
// \\// LOGICAL SECTION OF THE CODE. This line actually terminates "LOGICAL SECTION". It has \\// token.
//\\// COMMENTS THE REST OF ENTIRE FILE
D o c u m e n t a t i o n a n c h o r s
They are denoted with dot in the middle of "cap"-comment like this
//.\\ XXXXX
The same anchor must exist in documentation text.
1. It is a warning to a programmer who modifies anchored source code: changes in the
code must be reflected in documentaion-anchor. Misleading outdated documentation is worse
than lack of documentation. If this burden is too high, put //TODO\\ to make fix later.
2. HTML documentation is able to put link back to source code based on anchor.
The depricated commenting style possibly is:
// * for //.
// ** for //:
//' for //:
//| for //::
P o s t f i x e s
__eff - effective
__own - own
__cur - current
F l a g s
name_bflag, name_bf - this variable is used as a booleable flag, flag which is cast to true or false.
name_flag - has specified values, like VALUE1, VALUE2, ...
name_raised - flag with life-scope inside the loop
T a b ..
.. has 4 characters length.
W o r k v a r i a b l e s
Globals: jQuery, $, tp$;
if debug.js is attached, then global w i n d o w .c c c c is added;
c c c c is a shortcut for c o n s o l e . l o g
Spaces are put here to avoid catching above lines by grep when checkig for stray c o n s o l e;
Variables w, ww are reserved for short-living variables.
The same way, variables beginning with w are shortcuts for short-livers.
"Long living variables should not begin with "w".
R e s t r i c t i o n s o n c o d i n g
"length" is a "reserved" property. Nothing should be explicitly assigned to this property.
It is used in arrays and as an indicator of object beeng an array.
H I N T S
U s a g e
To learn or find file of specific feature, start from demos.
D e m o s a r e
located here. Chrome will possibly restrict them in local mode.
P h i l o s o p h y.
Project is based on jQuery, but it is always kept in mind the possibility to depart
from jQ at first opportunity. jQ is important for binding to events and dom-manipulation.
M a i n t e n a n c e
Keep browser detection code updated in tp$.core.
C r e d i t s
Following development tools we found highly effective:
FireBug in FireFox
Ubuntu Linux 10.04
Meld 1.30 http://meld.sourceforge.net/
regexxer 0.9 http://regexxer.sourceforge.net/
gimp
console grep
Y o u a r e w e l c o m e