Revision 523
Added by Matthias almost 18 years ago
| trunk/wb/include/codepress/codepress.html | ||
|---|---|---|
| 1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
|
| 2 |
<html> |
|
| 3 |
<head> |
|
| 4 |
<title>CodePress - Real Time Syntax Highlighting Editor written in JavaScript</title> |
|
| 5 |
<meta name="description" content="CodePress - source code editor window" /> |
|
| 6 |
|
|
| 7 |
<script type="text/javascript"> |
|
| 8 |
var language = 'generic'; |
|
| 9 |
var engine = 'older'; |
|
| 10 |
var ua = navigator.userAgent; |
|
| 11 |
var ts = (new Date).getTime(); // timestamp to avoid cache |
|
| 12 |
var lh = location.href; |
|
| 13 |
|
|
| 14 |
if(ua.match('MSIE')) engine = 'msie';
|
|
| 15 |
else if(ua.match('KHTML')) engine = 'khtml';
|
|
| 16 |
else if(ua.match('Opera')) engine = 'opera';
|
|
| 17 |
else if(ua.match('Gecko')) engine = 'gecko';
|
|
| 18 |
|
|
| 19 |
if(lh.match('language=')) language = lh.replace(/.*language=(.*?)(&.*)?$/,'$1');
|
|
| 20 |
|
|
| 21 |
document.write('<link type="text/css" href="codepress.css?ts='+ts+'" rel="stylesheet" />');
|
|
| 22 |
document.write('<link type="text/css" href="languages/'+language+'.css?ts='+ts+'" rel="stylesheet" id="cp-lang-style" />');
|
|
| 23 |
document.write('<scr'+'ipt type="text/javascript" src="engines/'+engine+'.js?ts='+ts+'"></scr'+'ipt>');
|
|
| 24 |
document.write('<scr'+'ipt type="text/javascript" src="languages/'+language+'.js?ts='+ts+'"></scr'+'ipt>');
|
|
| 25 |
</script> |
|
| 26 |
|
|
| 27 |
</head> |
|
| 28 |
|
|
| 29 |
<script type="text/javascript"> |
|
| 30 |
if(engine == "msie" || engine == "gecko") document.write('<body><pre> </pre></body>');
|
|
| 31 |
else if(engine == "opera") document.write('<body></body>');
|
|
| 32 |
// else if(engine == "khtml") document.write('<body> </body>');
|
|
| 33 |
</script> |
|
| 34 |
|
|
| 35 |
</html> |
|
| 36 | 0 | |
| trunk/wb/include/codepress/license.txt | ||
|---|---|---|
| 1 |
GNU LESSER GENERAL PUBLIC LICENSE |
|
| 2 |
Version 2.1, February 1999 |
|
| 3 |
|
|
| 4 |
Copyright (C) 1991, 1999 Free Software Foundation, Inc. |
|
| 5 |
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
| 6 |
Everyone is permitted to copy and distribute verbatim copies |
|
| 7 |
of this license document, but changing it is not allowed. |
|
| 8 |
|
|
| 9 |
[This is the first released version of the Lesser GPL. It also counts |
|
| 10 |
as the successor of the GNU Library Public License, version 2, hence |
|
| 11 |
the version number 2.1.] |
|
| 12 |
|
|
| 13 |
Preamble |
|
| 14 |
|
|
| 15 |
The licenses for most software are designed to take away your |
|
| 16 |
freedom to share and change it. By contrast, the GNU General Public |
|
| 17 |
Licenses are intended to guarantee your freedom to share and change |
|
| 18 |
free software--to make sure the software is free for all its users. |
|
| 19 |
|
|
| 20 |
This license, the Lesser General Public License, applies to some |
|
| 21 |
specially designated software packages--typically libraries--of the |
|
| 22 |
Free Software Foundation and other authors who decide to use it. You |
|
| 23 |
can use it too, but we suggest you first think carefully about whether |
|
| 24 |
this license or the ordinary General Public License is the better |
|
| 25 |
strategy to use in any particular case, based on the explanations below. |
|
| 26 |
|
|
| 27 |
When we speak of free software, we are referring to freedom of use, |
|
| 28 |
not price. Our General Public Licenses are designed to make sure that |
|
| 29 |
you have the freedom to distribute copies of free software (and charge |
|
| 30 |
for this service if you wish); that you receive source code or can get |
|
| 31 |
it if you want it; that you can change the software and use pieces of |
|
| 32 |
it in new free programs; and that you are informed that you can do |
|
| 33 |
these things. |
|
| 34 |
|
|
| 35 |
To protect your rights, we need to make restrictions that forbid |
|
| 36 |
distributors to deny you these rights or to ask you to surrender these |
|
| 37 |
rights. These restrictions translate to certain responsibilities for |
|
| 38 |
you if you distribute copies of the library or if you modify it. |
|
| 39 |
|
|
| 40 |
For example, if you distribute copies of the library, whether gratis |
|
| 41 |
or for a fee, you must give the recipients all the rights that we gave |
|
| 42 |
you. You must make sure that they, too, receive or can get the source |
|
| 43 |
code. If you link other code with the library, you must provide |
|
| 44 |
complete object files to the recipients, so that they can relink them |
|
| 45 |
with the library after making changes to the library and recompiling |
|
| 46 |
it. And you must show them these terms so they know their rights. |
|
| 47 |
|
|
| 48 |
We protect your rights with a two-step method: (1) we copyright the |
|
| 49 |
library, and (2) we offer you this license, which gives you legal |
|
| 50 |
permission to copy, distribute and/or modify the library. |
|
| 51 |
|
|
| 52 |
To protect each distributor, we want to make it very clear that |
|
| 53 |
there is no warranty for the free library. Also, if the library is |
|
| 54 |
modified by someone else and passed on, the recipients should know |
|
| 55 |
that what they have is not the original version, so that the original |
|
| 56 |
author's reputation will not be affected by problems that might be |
|
| 57 |
introduced by others. |
|
| 58 |
|
|
| 59 |
Finally, software patents pose a constant threat to the existence of |
|
| 60 |
any free program. We wish to make sure that a company cannot |
|
| 61 |
effectively restrict the users of a free program by obtaining a |
|
| 62 |
restrictive license from a patent holder. Therefore, we insist that |
|
| 63 |
any patent license obtained for a version of the library must be |
|
| 64 |
consistent with the full freedom of use specified in this license. |
|
| 65 |
|
|
| 66 |
Most GNU software, including some libraries, is covered by the |
|
| 67 |
ordinary GNU General Public License. This license, the GNU Lesser |
|
| 68 |
General Public License, applies to certain designated libraries, and |
|
| 69 |
is quite different from the ordinary General Public License. We use |
|
| 70 |
this license for certain libraries in order to permit linking those |
|
| 71 |
libraries into non-free programs. |
|
| 72 |
|
|
| 73 |
When a program is linked with a library, whether statically or using |
|
| 74 |
a shared library, the combination of the two is legally speaking a |
|
| 75 |
combined work, a derivative of the original library. The ordinary |
|
| 76 |
General Public License therefore permits such linking only if the |
|
| 77 |
entire combination fits its criteria of freedom. The Lesser General |
|
| 78 |
Public License permits more lax criteria for linking other code with |
|
| 79 |
the library. |
|
| 80 |
|
|
| 81 |
We call this license the "Lesser" General Public License because it |
|
| 82 |
does Less to protect the user's freedom than the ordinary General |
|
| 83 |
Public License. It also provides other free software developers Less |
|
| 84 |
of an advantage over competing non-free programs. These disadvantages |
|
| 85 |
are the reason we use the ordinary General Public License for many |
|
| 86 |
libraries. However, the Lesser license provides advantages in certain |
|
| 87 |
special circumstances. |
|
| 88 |
|
|
| 89 |
For example, on rare occasions, there may be a special need to |
|
| 90 |
encourage the widest possible use of a certain library, so that it becomes |
|
| 91 |
a de-facto standard. To achieve this, non-free programs must be |
|
| 92 |
allowed to use the library. A more frequent case is that a free |
|
| 93 |
library does the same job as widely used non-free libraries. In this |
|
| 94 |
case, there is little to gain by limiting the free library to free |
|
| 95 |
software only, so we use the Lesser General Public License. |
|
| 96 |
|
|
| 97 |
In other cases, permission to use a particular library in non-free |
|
| 98 |
programs enables a greater number of people to use a large body of |
|
| 99 |
free software. For example, permission to use the GNU C Library in |
|
| 100 |
non-free programs enables many more people to use the whole GNU |
|
| 101 |
operating system, as well as its variant, the GNU/Linux operating |
|
| 102 |
system. |
|
| 103 |
|
|
| 104 |
Although the Lesser General Public License is Less protective of the |
|
| 105 |
users' freedom, it does ensure that the user of a program that is |
|
| 106 |
linked with the Library has the freedom and the wherewithal to run |
|
| 107 |
that program using a modified version of the Library. |
|
| 108 |
|
|
| 109 |
The precise terms and conditions for copying, distribution and |
|
| 110 |
modification follow. Pay close attention to the difference between a |
|
| 111 |
"work based on the library" and a "work that uses the library". The |
|
| 112 |
former contains code derived from the library, whereas the latter must |
|
| 113 |
be combined with the library in order to run. |
|
| 114 |
|
|
| 115 |
GNU LESSER GENERAL PUBLIC LICENSE |
|
| 116 |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|
| 117 |
|
|
| 118 |
0. This License Agreement applies to any software library or other |
|
| 119 |
program which contains a notice placed by the copyright holder or |
|
| 120 |
other authorized party saying it may be distributed under the terms of |
|
| 121 |
this Lesser General Public License (also called "this License"). |
|
| 122 |
Each licensee is addressed as "you". |
|
| 123 |
|
|
| 124 |
A "library" means a collection of software functions and/or data |
|
| 125 |
prepared so as to be conveniently linked with application programs |
|
| 126 |
(which use some of those functions and data) to form executables. |
|
| 127 |
|
|
| 128 |
The "Library", below, refers to any such software library or work |
|
| 129 |
which has been distributed under these terms. A "work based on the |
|
| 130 |
Library" means either the Library or any derivative work under |
|
| 131 |
copyright law: that is to say, a work containing the Library or a |
|
| 132 |
portion of it, either verbatim or with modifications and/or translated |
|
| 133 |
straightforwardly into another language. (Hereinafter, translation is |
|
| 134 |
included without limitation in the term "modification".) |
|
| 135 |
|
|
| 136 |
"Source code" for a work means the preferred form of the work for |
|
| 137 |
making modifications to it. For a library, complete source code means |
|
| 138 |
all the source code for all modules it contains, plus any associated |
|
| 139 |
interface definition files, plus the scripts used to control compilation |
|
| 140 |
and installation of the library. |
|
| 141 |
|
|
| 142 |
Activities other than copying, distribution and modification are not |
|
| 143 |
covered by this License; they are outside its scope. The act of |
|
| 144 |
running a program using the Library is not restricted, and output from |
|
| 145 |
such a program is covered only if its contents constitute a work based |
|
| 146 |
on the Library (independent of the use of the Library in a tool for |
|
| 147 |
writing it). Whether that is true depends on what the Library does |
|
| 148 |
and what the program that uses the Library does. |
|
| 149 |
|
|
| 150 |
1. You may copy and distribute verbatim copies of the Library's |
|
| 151 |
complete source code as you receive it, in any medium, provided that |
|
| 152 |
you conspicuously and appropriately publish on each copy an |
|
| 153 |
appropriate copyright notice and disclaimer of warranty; keep intact |
|
| 154 |
all the notices that refer to this License and to the absence of any |
|
| 155 |
warranty; and distribute a copy of this License along with the |
|
| 156 |
Library. |
|
| 157 |
|
|
| 158 |
You may charge a fee for the physical act of transferring a copy, |
|
| 159 |
and you may at your option offer warranty protection in exchange for a |
|
| 160 |
fee. |
|
| 161 |
|
|
| 162 |
2. You may modify your copy or copies of the Library or any portion |
|
| 163 |
of it, thus forming a work based on the Library, and copy and |
|
| 164 |
distribute such modifications or work under the terms of Section 1 |
|
| 165 |
above, provided that you also meet all of these conditions: |
|
| 166 |
|
|
| 167 |
a) The modified work must itself be a software library. |
|
| 168 |
|
|
| 169 |
b) You must cause the files modified to carry prominent notices |
|
| 170 |
stating that you changed the files and the date of any change. |
|
| 171 |
|
|
| 172 |
c) You must cause the whole of the work to be licensed at no |
|
| 173 |
charge to all third parties under the terms of this License. |
|
| 174 |
|
|
| 175 |
d) If a facility in the modified Library refers to a function or a |
|
| 176 |
table of data to be supplied by an application program that uses |
|
| 177 |
the facility, other than as an argument passed when the facility |
|
| 178 |
is invoked, then you must make a good faith effort to ensure that, |
|
| 179 |
in the event an application does not supply such function or |
|
| 180 |
table, the facility still operates, and performs whatever part of |
|
| 181 |
its purpose remains meaningful. |
|
| 182 |
|
|
| 183 |
(For example, a function in a library to compute square roots has |
|
| 184 |
a purpose that is entirely well-defined independent of the |
|
| 185 |
application. Therefore, Subsection 2d requires that any |
|
| 186 |
application-supplied function or table used by this function must |
|
| 187 |
be optional: if the application does not supply it, the square |
|
| 188 |
root function must still compute square roots.) |
|
| 189 |
|
|
| 190 |
These requirements apply to the modified work as a whole. If |
|
| 191 |
identifiable sections of that work are not derived from the Library, |
|
| 192 |
and can be reasonably considered independent and separate works in |
|
| 193 |
themselves, then this License, and its terms, do not apply to those |
|
| 194 |
sections when you distribute them as separate works. But when you |
|
| 195 |
distribute the same sections as part of a whole which is a work based |
|
| 196 |
on the Library, the distribution of the whole must be on the terms of |
|
| 197 |
this License, whose permissions for other licensees extend to the |
|
| 198 |
entire whole, and thus to each and every part regardless of who wrote |
|
| 199 |
it. |
|
| 200 |
|
|
| 201 |
Thus, it is not the intent of this section to claim rights or contest |
|
| 202 |
your rights to work written entirely by you; rather, the intent is to |
|
| 203 |
exercise the right to control the distribution of derivative or |
|
| 204 |
collective works based on the Library. |
|
| 205 |
|
|
| 206 |
In addition, mere aggregation of another work not based on the Library |
|
| 207 |
with the Library (or with a work based on the Library) on a volume of |
|
| 208 |
a storage or distribution medium does not bring the other work under |
|
| 209 |
the scope of this License. |
|
| 210 |
|
|
| 211 |
3. You may opt to apply the terms of the ordinary GNU General Public |
|
| 212 |
License instead of this License to a given copy of the Library. To do |
|
| 213 |
this, you must alter all the notices that refer to this License, so |
|
| 214 |
that they refer to the ordinary GNU General Public License, version 2, |
|
| 215 |
instead of to this License. (If a newer version than version 2 of the |
|
| 216 |
ordinary GNU General Public License has appeared, then you can specify |
|
| 217 |
that version instead if you wish.) Do not make any other change in |
|
| 218 |
these notices. |
|
| 219 |
|
|
| 220 |
Once this change is made in a given copy, it is irreversible for |
|
| 221 |
that copy, so the ordinary GNU General Public License applies to all |
|
| 222 |
subsequent copies and derivative works made from that copy. |
|
| 223 |
|
|
| 224 |
This option is useful when you wish to copy part of the code of |
|
| 225 |
the Library into a program that is not a library. |
|
| 226 |
|
|
| 227 |
4. You may copy and distribute the Library (or a portion or |
|
| 228 |
derivative of it, under Section 2) in object code or executable form |
|
| 229 |
under the terms of Sections 1 and 2 above provided that you accompany |
|
| 230 |
it with the complete corresponding machine-readable source code, which |
|
| 231 |
must be distributed under the terms of Sections 1 and 2 above on a |
|
| 232 |
medium customarily used for software interchange. |
|
| 233 |
|
|
| 234 |
If distribution of object code is made by offering access to copy |
|
| 235 |
from a designated place, then offering equivalent access to copy the |
|
| 236 |
source code from the same place satisfies the requirement to |
|
| 237 |
distribute the source code, even though third parties are not |
|
| 238 |
compelled to copy the source along with the object code. |
|
| 239 |
|
|
| 240 |
5. A program that contains no derivative of any portion of the |
|
| 241 |
Library, but is designed to work with the Library by being compiled or |
|
| 242 |
linked with it, is called a "work that uses the Library". Such a |
|
| 243 |
work, in isolation, is not a derivative work of the Library, and |
|
| 244 |
therefore falls outside the scope of this License. |
|
| 245 |
|
|
| 246 |
However, linking a "work that uses the Library" with the Library |
|
| 247 |
creates an executable that is a derivative of the Library (because it |
|
| 248 |
contains portions of the Library), rather than a "work that uses the |
|
| 249 |
library". The executable is therefore covered by this License. |
|
| 250 |
Section 6 states terms for distribution of such executables. |
|
| 251 |
|
|
| 252 |
When a "work that uses the Library" uses material from a header file |
|
| 253 |
that is part of the Library, the object code for the work may be a |
|
| 254 |
derivative work of the Library even though the source code is not. |
|
| 255 |
Whether this is true is especially significant if the work can be |
|
| 256 |
linked without the Library, or if the work is itself a library. The |
|
| 257 |
threshold for this to be true is not precisely defined by law. |
|
| 258 |
|
|
| 259 |
If such an object file uses only numerical parameters, data |
|
| 260 |
structure layouts and accessors, and small macros and small inline |
|
| 261 |
functions (ten lines or less in length), then the use of the object |
|
| 262 |
file is unrestricted, regardless of whether it is legally a derivative |
|
| 263 |
work. (Executables containing this object code plus portions of the |
|
| 264 |
Library will still fall under Section 6.) |
|
| 265 |
|
|
| 266 |
Otherwise, if the work is a derivative of the Library, you may |
|
| 267 |
distribute the object code for the work under the terms of Section 6. |
|
| 268 |
Any executables containing that work also fall under Section 6, |
|
| 269 |
whether or not they are linked directly with the Library itself. |
|
| 270 |
|
|
| 271 |
6. As an exception to the Sections above, you may also combine or |
|
| 272 |
link a "work that uses the Library" with the Library to produce a |
|
| 273 |
work containing portions of the Library, and distribute that work |
|
| 274 |
under terms of your choice, provided that the terms permit |
|
| 275 |
modification of the work for the customer's own use and reverse |
|
| 276 |
engineering for debugging such modifications. |
|
| 277 |
|
|
| 278 |
You must give prominent notice with each copy of the work that the |
|
| 279 |
Library is used in it and that the Library and its use are covered by |
|
| 280 |
this License. You must supply a copy of this License. If the work |
|
| 281 |
during execution displays copyright notices, you must include the |
|
| 282 |
copyright notice for the Library among them, as well as a reference |
|
| 283 |
directing the user to the copy of this License. Also, you must do one |
|
| 284 |
of these things: |
|
| 285 |
|
|
| 286 |
a) Accompany the work with the complete corresponding |
|
| 287 |
machine-readable source code for the Library including whatever |
|
| 288 |
changes were used in the work (which must be distributed under |
|
| 289 |
Sections 1 and 2 above); and, if the work is an executable linked |
|
| 290 |
with the Library, with the complete machine-readable "work that |
|
| 291 |
uses the Library", as object code and/or source code, so that the |
|
| 292 |
user can modify the Library and then relink to produce a modified |
|
| 293 |
executable containing the modified Library. (It is understood |
|
| 294 |
that the user who changes the contents of definitions files in the |
|
| 295 |
Library will not necessarily be able to recompile the application |
|
| 296 |
to use the modified definitions.) |
|
| 297 |
|
|
| 298 |
b) Use a suitable shared library mechanism for linking with the |
|
| 299 |
Library. A suitable mechanism is one that (1) uses at run time a |
|
| 300 |
copy of the library already present on the user's computer system, |
|
| 301 |
rather than copying library functions into the executable, and (2) |
|
| 302 |
will operate properly with a modified version of the library, if |
|
| 303 |
the user installs one, as long as the modified version is |
|
| 304 |
interface-compatible with the version that the work was made with. |
|
| 305 |
|
|
| 306 |
c) Accompany the work with a written offer, valid for at |
|
| 307 |
least three years, to give the same user the materials |
|
| 308 |
specified in Subsection 6a, above, for a charge no more |
|
| 309 |
than the cost of performing this distribution. |
|
| 310 |
|
|
| 311 |
d) If distribution of the work is made by offering access to copy |
|
| 312 |
from a designated place, offer equivalent access to copy the above |
|
| 313 |
specified materials from the same place. |
|
| 314 |
|
|
| 315 |
e) Verify that the user has already received a copy of these |
|
| 316 |
materials or that you have already sent this user a copy. |
|
| 317 |
|
|
| 318 |
For an executable, the required form of the "work that uses the |
|
| 319 |
Library" must include any data and utility programs needed for |
|
| 320 |
reproducing the executable from it. However, as a special exception, |
|
| 321 |
the materials to be distributed need not include anything that is |
|
| 322 |
normally distributed (in either source or binary form) with the major |
|
| 323 |
components (compiler, kernel, and so on) of the operating system on |
|
| 324 |
which the executable runs, unless that component itself accompanies |
|
| 325 |
the executable. |
|
| 326 |
|
|
| 327 |
It may happen that this requirement contradicts the license |
|
| 328 |
restrictions of other proprietary libraries that do not normally |
|
| 329 |
accompany the operating system. Such a contradiction means you cannot |
|
| 330 |
use both them and the Library together in an executable that you |
|
| 331 |
distribute. |
|
| 332 |
|
|
| 333 |
7. You may place library facilities that are a work based on the |
|
| 334 |
Library side-by-side in a single library together with other library |
|
| 335 |
facilities not covered by this License, and distribute such a combined |
|
| 336 |
library, provided that the separate distribution of the work based on |
|
| 337 |
the Library and of the other library facilities is otherwise |
|
| 338 |
permitted, and provided that you do these two things: |
|
| 339 |
|
|
| 340 |
a) Accompany the combined library with a copy of the same work |
|
| 341 |
based on the Library, uncombined with any other library |
|
| 342 |
facilities. This must be distributed under the terms of the |
|
| 343 |
Sections above. |
|
| 344 |
|
|
| 345 |
b) Give prominent notice with the combined library of the fact |
|
| 346 |
that part of it is a work based on the Library, and explaining |
|
| 347 |
where to find the accompanying uncombined form of the same work. |
|
| 348 |
|
|
| 349 |
8. You may not copy, modify, sublicense, link with, or distribute |
|
| 350 |
the Library except as expressly provided under this License. Any |
|
| 351 |
attempt otherwise to copy, modify, sublicense, link with, or |
|
| 352 |
distribute the Library is void, and will automatically terminate your |
|
| 353 |
rights under this License. However, parties who have received copies, |
|
| 354 |
or rights, from you under this License will not have their licenses |
|
| 355 |
terminated so long as such parties remain in full compliance. |
|
| 356 |
|
|
| 357 |
9. You are not required to accept this License, since you have not |
|
| 358 |
signed it. However, nothing else grants you permission to modify or |
|
| 359 |
distribute the Library or its derivative works. These actions are |
|
| 360 |
prohibited by law if you do not accept this License. Therefore, by |
|
| 361 |
modifying or distributing the Library (or any work based on the |
|
| 362 |
Library), you indicate your acceptance of this License to do so, and |
|
| 363 |
all its terms and conditions for copying, distributing or modifying |
|
| 364 |
the Library or works based on it. |
|
| 365 |
|
|
| 366 |
10. Each time you redistribute the Library (or any work based on the |
|
| 367 |
Library), the recipient automatically receives a license from the |
|
| 368 |
original licensor to copy, distribute, link with or modify the Library |
|
| 369 |
subject to these terms and conditions. You may not impose any further |
|
| 370 |
restrictions on the recipients' exercise of the rights granted herein. |
|
| 371 |
You are not responsible for enforcing compliance by third parties with |
|
| 372 |
this License. |
|
| 373 |
|
|
| 374 |
11. If, as a consequence of a court judgment or allegation of patent |
|
| 375 |
infringement or for any other reason (not limited to patent issues), |
|
| 376 |
conditions are imposed on you (whether by court order, agreement or |
|
| 377 |
otherwise) that contradict the conditions of this License, they do not |
|
| 378 |
excuse you from the conditions of this License. If you cannot |
|
| 379 |
distribute so as to satisfy simultaneously your obligations under this |
|
| 380 |
License and any other pertinent obligations, then as a consequence you |
|
| 381 |
may not distribute the Library at all. For example, if a patent |
|
| 382 |
license would not permit royalty-free redistribution of the Library by |
|
| 383 |
all those who receive copies directly or indirectly through you, then |
|
| 384 |
the only way you could satisfy both it and this License would be to |
|
| 385 |
refrain entirely from distribution of the Library. |
|
| 386 |
|
|
| 387 |
If any portion of this section is held invalid or unenforceable under any |
|
| 388 |
particular circumstance, the balance of the section is intended to apply, |
|
| 389 |
and the section as a whole is intended to apply in other circumstances. |
|
| 390 |
|
|
| 391 |
It is not the purpose of this section to induce you to infringe any |
|
| 392 |
patents or other property right claims or to contest validity of any |
|
| 393 |
such claims; this section has the sole purpose of protecting the |
|
| 394 |
integrity of the free software distribution system which is |
|
| 395 |
implemented by public license practices. Many people have made |
|
| 396 |
generous contributions to the wide range of software distributed |
|
| 397 |
through that system in reliance on consistent application of that |
|
| 398 |
system; it is up to the author/donor to decide if he or she is willing |
|
| 399 |
to distribute software through any other system and a licensee cannot |
|
| 400 |
impose that choice. |
|
| 401 |
|
|
| 402 |
This section is intended to make thoroughly clear what is believed to |
|
| 403 |
be a consequence of the rest of this License. |
|
| 404 |
|
|
| 405 |
12. If the distribution and/or use of the Library is restricted in |
|
| 406 |
certain countries either by patents or by copyrighted interfaces, the |
|
| 407 |
original copyright holder who places the Library under this License may add |
|
| 408 |
an explicit geographical distribution limitation excluding those countries, |
|
| 409 |
so that distribution is permitted only in or among countries not thus |
|
| 410 |
excluded. In such case, this License incorporates the limitation as if |
|
| 411 |
written in the body of this License. |
|
| 412 |
|
|
| 413 |
13. The Free Software Foundation may publish revised and/or new |
|
| 414 |
versions of the Lesser General Public License from time to time. |
|
| 415 |
Such new versions will be similar in spirit to the present version, |
|
| 416 |
but may differ in detail to address new problems or concerns. |
|
| 417 |
|
|
| 418 |
Each version is given a distinguishing version number. If the Library |
|
| 419 |
specifies a version number of this License which applies to it and |
|
| 420 |
"any later version", you have the option of following the terms and |
|
| 421 |
conditions either of that version or of any later version published by |
|
| 422 |
the Free Software Foundation. If the Library does not specify a |
|
| 423 |
license version number, you may choose any version ever published by |
|
| 424 |
the Free Software Foundation. |
|
| 425 |
|
|
| 426 |
14. If you wish to incorporate parts of the Library into other free |
|
| 427 |
programs whose distribution conditions are incompatible with these, |
|
| 428 |
write to the author to ask for permission. For software which is |
|
| 429 |
copyrighted by the Free Software Foundation, write to the Free |
|
| 430 |
Software Foundation; we sometimes make exceptions for this. Our |
|
| 431 |
decision will be guided by the two goals of preserving the free status |
|
| 432 |
of all derivatives of our free software and of promoting the sharing |
|
| 433 |
and reuse of software generally. |
|
| 434 |
|
|
| 435 |
NO WARRANTY |
|
| 436 |
|
|
| 437 |
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO |
|
| 438 |
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. |
|
| 439 |
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR |
|
| 440 |
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY |
|
| 441 |
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE |
|
| 442 |
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
| 443 |
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE |
|
| 444 |
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME |
|
| 445 |
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
|
| 446 |
|
|
| 447 |
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN |
|
| 448 |
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY |
|
| 449 |
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU |
|
| 450 |
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR |
|
| 451 |
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE |
|
| 452 |
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING |
|
| 453 |
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A |
|
| 454 |
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF |
|
| 455 |
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
|
| 456 |
DAMAGES. |
|
| 457 |
|
|
| 458 |
END OF TERMS AND CONDITIONS |
|
| 459 | 0 | |
| trunk/wb/include/codepress/codepress.css | ||
|---|---|---|
| 1 |
body {
|
|
| 2 |
margin-top:13px; |
|
| 3 |
_margin-top:14px; |
|
| 4 |
background:white; |
|
| 5 |
margin-left:32px; |
|
| 6 |
font-family:monospace; |
|
| 7 |
font-size:13px; |
|
| 8 |
white-space:pre; |
|
| 9 |
background-image:url("images/line-numbers.png");
|
|
| 10 |
background-repeat:repeat-y; |
|
| 11 |
background-position:0 3px; |
|
| 12 |
line-height:16px; |
|
| 13 |
height:100%; |
|
| 14 |
} |
|
| 15 |
pre {margin:0;}
|
|
| 16 |
html>body{background-position:0 2px;}
|
|
| 17 |
P {margin:0;padding:0;border:0;outline:0;display:block;white-space:pre;}
|
|
| 18 |
b, i, s, u, a, em, tt, ins, big, cite, strong, var, dfn {text-decoration:none;font-weight:normal;font-style:normal;font-size:13px;}
|
|
| 19 |
|
|
| 20 |
body.hide-line-numbers {background:white;margin-left:16px;}
|
|
| 21 |
body.show-line-numbers {background-image:url("images/line-numbers.png");margin-left:32px;}
|
|
| 22 | 0 | |
| trunk/wb/include/codepress/engines/gecko.js | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ |
|
| 3 |
* |
|
| 4 |
* Copyright (C) 2007 Fernando M.A.d.S. <fermads@gmail.com> |
|
| 5 |
* |
|
| 6 |
* Contributors : |
|
| 7 |
* |
|
| 8 |
* Michael Hurni <michael.hurni@gmail.com> |
|
| 9 |
* |
|
| 10 |
* This program is free software; you can redistribute it and/or modify it under the terms of the |
|
| 11 |
* GNU Lesser General Public License as published by the Free Software Foundation. |
|
| 12 |
* |
|
| 13 |
* Read the full licence: http://www.opensource.org/licenses/lgpl-license.php |
|
| 14 |
*/ |
|
| 15 |
|
|
| 16 |
|
|
| 17 |
CodePress = {
|
|
| 18 |
scrolling : false, |
|
| 19 |
autocomplete : true, |
|
| 20 |
|
|
| 21 |
// set initial vars and start sh |
|
| 22 |
initialize : function() {
|
|
| 23 |
if(typeof(editor)=='undefined' && !arguments[0]) return; |
|
| 24 |
chars = '|32|46|62|'; // charcodes that trigger syntax highlighting |
|
| 25 |
cc = '\u2009'; // control char |
|
| 26 |
editor = document.getElementsByTagName('body')[0];
|
|
| 27 |
document.designMode = 'on'; |
|
| 28 |
document.addEventListener('keypress', this.keyHandler, true);
|
|
| 29 |
window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false);
|
|
| 30 |
completeChars = this.getCompleteChars(); |
|
| 31 |
// CodePress.syntaxHighlight('init');
|
|
| 32 |
}, |
|
| 33 |
|
|
| 34 |
// treat key bindings |
|
| 35 |
keyHandler : function(evt) {
|
|
| 36 |
keyCode = evt.keyCode; |
|
| 37 |
charCode = evt.charCode; |
|
| 38 |
|
|
| 39 |
if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo)
|
|
| 40 |
CodePress.shortcuts(charCode?charCode:keyCode); |
|
| 41 |
} |
|
| 42 |
else if(completeChars.indexOf('|'+String.fromCharCode(charCode)+'|')!=-1 && CodePress.autocomplete) { // auto complete
|
|
| 43 |
CodePress.complete(String.fromCharCode(charCode)); |
|
| 44 |
} |
|
| 45 |
else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting
|
|
| 46 |
CodePress.syntaxHighlight('generic');
|
|
| 47 |
} |
|
| 48 |
else if(keyCode==9 || evt.tabKey) { // snippets activation (tab)
|
|
| 49 |
CodePress.snippets(evt); |
|
| 50 |
} |
|
| 51 |
else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed
|
|
| 52 |
CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML; |
|
| 53 |
} |
|
| 54 |
else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo
|
|
| 55 |
(charCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo(); |
|
| 56 |
evt.preventDefault(); |
|
| 57 |
} |
|
| 58 |
else if(keyCode==86 && evt.ctrlKey) { // paste
|
|
| 59 |
// TODO: pasted text should be parsed and highlighted |
|
| 60 |
} |
|
| 61 |
}, |
|
| 62 |
|
|
| 63 |
// put cursor back to its original position after every parsing |
|
| 64 |
findString : function() {
|
|
| 65 |
if(self.find(cc)) |
|
| 66 |
window.getSelection().getRangeAt(0).deleteContents(); |
|
| 67 |
}, |
|
| 68 |
|
|
| 69 |
// split big files, highlighting parts of it |
|
| 70 |
split : function(code,flag) {
|
|
| 71 |
if(flag=='scroll') {
|
|
| 72 |
this.scrolling = true; |
|
| 73 |
return code; |
|
| 74 |
} |
|
| 75 |
else {
|
|
| 76 |
this.scrolling = false; |
|
| 77 |
mid = code.indexOf(cc); |
|
| 78 |
if(mid-2000<0) {ini=0;end=4000;}
|
|
| 79 |
else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;}
|
|
| 80 |
else {ini=mid-2000;end=mid+2000;}
|
|
| 81 |
code = code.substring(ini,end); |
|
| 82 |
return code; |
|
| 83 |
} |
|
| 84 |
}, |
|
| 85 |
|
|
| 86 |
// syntax highlighting parser |
|
| 87 |
syntaxHighlight : function(flag) {
|
|
| 88 |
//if(document.designMode=='off') document.designMode='on' |
|
| 89 |
if(flag!='init') window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc)); |
|
| 90 |
|
|
| 91 |
o = editor.innerHTML; |
|
| 92 |
o = o.replace(/<br>/g,'\n'); |
|
| 93 |
o = o.replace(/<.*?>/g,''); |
|
| 94 |
x = z = this.split(o,flag); |
|
| 95 |
x = x.replace(/\n/g,'<br>'); |
|
| 96 |
|
|
| 97 |
if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]); |
|
| 98 |
|
|
| 99 |
for(i=0;i<Language.syntax.length;i++) |
|
| 100 |
x = x.replace(Language.syntax[i].input,Language.syntax[i].output); |
|
| 101 |
|
|
| 102 |
editor.innerHTML = this.actions.history[this.actions.next()] = (flag=='scroll') ? x : o.split(z).join(x); |
|
| 103 |
if(flag!='init') this.findString(); |
|
| 104 |
}, |
|
| 105 |
|
|
| 106 |
getLastWord : function() {
|
|
| 107 |
var rangeAndCaret = CodePress.getRangeAndCaret(); |
|
| 108 |
var words = rangeAndCaret[0].substring(rangeAndCaret[1]-40,rangeAndCaret[1]).split(/[\s\r\n\);]/); |
|
| 109 |
return words[words.length-1].replace(/_/g,''); |
|
| 110 |
}, |
|
| 111 |
|
|
| 112 |
snippets : function(evt) {
|
|
| 113 |
var snippets = Language.snippets; |
|
| 114 |
var trigger = this.getLastWord(); |
|
| 115 |
for (var i=0; i<snippets.length; i++) {
|
|
| 116 |
if(snippets[i].input == trigger) {
|
|
| 117 |
var content = snippets[i].output.replace(/</g,'<'); |
|
| 118 |
content = content.replace(/>/g,'>'); |
|
| 119 |
if(content.indexOf('$0')<0) content += cc;
|
|
| 120 |
else content = content.replace(/\$0/,cc); |
|
| 121 |
content = content.replace(/\n/g,'<br>'); |
|
| 122 |
var pattern = new RegExp(trigger+cc,'g'); |
|
| 123 |
evt.preventDefault(); // prevent the tab key from being added |
|
| 124 |
this.syntaxHighlight('snippets',pattern,content);
|
|
| 125 |
} |
|
| 126 |
} |
|
| 127 |
}, |
|
| 128 |
|
|
| 129 |
readOnly : function() {
|
|
| 130 |
document.designMode = (arguments[0]) ? 'off' : 'on'; |
|
| 131 |
}, |
|
| 132 |
|
|
| 133 |
complete : function(trigger) {
|
|
| 134 |
window.getSelection().getRangeAt(0).deleteContents(); |
|
| 135 |
var complete = Language.complete; |
|
| 136 |
for (var i=0; i<complete.length; i++) {
|
|
| 137 |
if(complete[i].input == trigger) {
|
|
| 138 |
var pattern = new RegExp('\\'+trigger+cc);
|
|
| 139 |
var content = complete[i].output.replace(/\$0/g,cc); |
|
| 140 |
parent.setTimeout(function () { CodePress.syntaxHighlight('complete',pattern,content)},0); // wait for char to appear on screen
|
|
| 141 |
} |
|
| 142 |
} |
|
| 143 |
}, |
|
| 144 |
|
|
| 145 |
getCompleteChars : function() {
|
|
| 146 |
var cChars = ''; |
|
| 147 |
for(var i=0;i<Language.complete.length;i++) |
|
| 148 |
cChars += '|'+Language.complete[i].input; |
|
| 149 |
return cChars+'|'; |
|
| 150 |
}, |
|
| 151 |
|
|
| 152 |
shortcuts : function() {
|
|
| 153 |
var cCode = arguments[0]; |
|
| 154 |
if(cCode==13) cCode = '[enter]'; |
|
| 155 |
else if(cCode==32) cCode = '[space]'; |
|
| 156 |
else cCode = '['+String.fromCharCode(charCode).toLowerCase()+']'; |
|
| 157 |
for(var i=0;i<Language.shortcuts.length;i++) |
|
| 158 |
if(Language.shortcuts[i].input == cCode) |
|
| 159 |
this.insertCode(Language.shortcuts[i].output,false); |
|
| 160 |
}, |
|
| 161 |
|
|
| 162 |
getRangeAndCaret : function() {
|
|
| 163 |
var range = window.getSelection().getRangeAt(0); |
|
| 164 |
var range2 = range.cloneRange(); |
|
| 165 |
var node = range.endContainer; |
|
| 166 |
var caret = range.endOffset; |
|
| 167 |
range2.selectNode(node); |
|
| 168 |
return [range2.toString(),caret]; |
|
| 169 |
}, |
|
| 170 |
|
|
| 171 |
insertCode : function(code,replaceCursorBefore) {
|
|
| 172 |
var range = window.getSelection().getRangeAt(0); |
|
| 173 |
var node = window.document.createTextNode(code); |
|
| 174 |
var selct = window.getSelection(); |
|
| 175 |
var range2 = range.cloneRange(); |
|
| 176 |
// Insert text at cursor position |
|
| 177 |
selct.removeAllRanges(); |
|
| 178 |
range.deleteContents(); |
|
| 179 |
range.insertNode(node); |
|
| 180 |
// Move the cursor to the end of text |
|
| 181 |
range2.selectNode(node); |
|
| 182 |
range2.collapse(replaceCursorBefore); |
|
| 183 |
selct.removeAllRanges(); |
|
| 184 |
selct.addRange(range2); |
|
| 185 |
}, |
|
| 186 |
|
|
| 187 |
// get code from editor |
|
| 188 |
getCode : function() {
|
|
| 189 |
var code = editor.innerHTML; |
|
| 190 |
code = code.replace(/<br>/g,'\n'); |
|
| 191 |
code = code.replace(/\u2009/g,''); |
|
| 192 |
code = code.replace(/<.*?>/g,''); |
|
| 193 |
code = code.replace(/</g,'<'); |
|
| 194 |
code = code.replace(/>/g,'>'); |
|
| 195 |
code = code.replace(/&/gi,'&'); |
|
| 196 |
return code; |
|
| 197 |
}, |
|
| 198 |
|
|
| 199 |
// put code inside editor |
|
| 200 |
setCode : function() {
|
|
| 201 |
var code = arguments[0]; |
|
| 202 |
code = code.replace(/\u2009/gi,''); |
|
| 203 |
code = code.replace(/&/gi,'&'); |
|
| 204 |
code = code.replace(/</g,'<'); |
|
| 205 |
code = code.replace(/>/g,'>'); |
|
| 206 |
editor.innerHTML = code; |
|
| 207 |
}, |
|
| 208 |
|
|
| 209 |
// undo and redo methods |
|
| 210 |
actions : {
|
|
| 211 |
pos : -1, // actual history position |
|
| 212 |
history : [], // history vector |
|
| 213 |
|
|
| 214 |
undo : function() {
|
|
| 215 |
if(editor.innerHTML.indexOf(cc)==-1){
|
|
| 216 |
window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc)); |
|
| 217 |
this.history[this.pos] = editor.innerHTML; |
|
| 218 |
} |
|
| 219 |
this.pos--; |
|
| 220 |
if(typeof(this.history[this.pos])=='undefined') this.pos++; |
|
| 221 |
editor.innerHTML = this.history[this.pos]; |
|
| 222 |
CodePress.findString(); |
|
| 223 |
}, |
|
| 224 |
|
|
| 225 |
redo : function() {
|
|
| 226 |
this.pos++; |
|
| 227 |
if(typeof(this.history[this.pos])=='undefined') this.pos--; |
|
| 228 |
editor.innerHTML = this.history[this.pos]; |
|
| 229 |
CodePress.findString(); |
|
| 230 |
}, |
|
| 231 |
|
|
| 232 |
next : function() { // get next vector position and clean old ones
|
|
| 233 |
if(this.pos>20) this.history[this.pos-21] = undefined; |
|
| 234 |
return ++this.pos; |
|
| 235 |
} |
|
| 236 |
} |
|
| 237 |
} |
|
| 238 |
|
|
| 239 |
Language={};
|
|
| 240 |
window.addEventListener('load', function() { CodePress.initialize('new'); }, true);
|
|
| 241 | 0 | |
| trunk/wb/include/codepress/engines/msie.js | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ |
|
| 3 |
* |
|
| 4 |
* Copyright (C) 2007 Fernando M.A.d.S. <fermads@gmail.com> |
|
| 5 |
* |
|
| 6 |
* Contributors : |
|
| 7 |
* |
|
| 8 |
* Michael Hurni <michael.hurni@gmail.com> |
|
| 9 |
* |
|
| 10 |
* This program is free software; you can redistribute it and/or modify it under the terms of the |
|
| 11 |
* GNU Lesser General Public License as published by the Free Software Foundation. |
|
| 12 |
* |
|
| 13 |
* Read the full licence: http://www.opensource.org/licenses/lgpl-license.php |
|
| 14 |
*/ |
|
| 15 |
|
|
| 16 |
|
|
| 17 |
CodePress = {
|
|
| 18 |
scrolling : false, |
|
| 19 |
autocomplete : true, |
|
| 20 |
|
|
| 21 |
// set initial vars and start sh |
|
| 22 |
initialize : function() {
|
|
| 23 |
if(typeof(editor)=='undefined' && !arguments[0]) return; |
|
| 24 |
chars = '|32|46|62|'; // charcodes that trigger syntax highlighting |
|
| 25 |
cc = '\u2009'; // control char |
|
| 26 |
editor = document.getElementsByTagName('body')[0];
|
|
| 27 |
editor.contentEditable = 'true'; |
|
| 28 |
document.getElementsByTagName('body')[0].onfocus = function() {editor.focus();}
|
|
| 29 |
document.attachEvent('onkeydown', this.metaHandler);
|
|
| 30 |
document.attachEvent('onkeypress', this.keyHandler);
|
|
| 31 |
window.attachEvent('onscroll', function() { if(!CodePress.scrolling) setTimeout(function(){CodePress.syntaxHighlight('scroll')},1)});
|
|
| 32 |
completeChars = this.getCompleteChars(); |
|
| 33 |
// CodePress.syntaxHighlight('init');
|
|
| 34 |
setTimeout(function() { window.scroll(0,0) },50); // scroll IE to top
|
|
| 35 |
}, |
|
| 36 |
|
|
| 37 |
// treat key bindings |
|
| 38 |
keyHandler : function(evt) {
|
|
| 39 |
charCode = evt.keyCode; |
|
| 40 |
if(completeChars.indexOf('|'+String.fromCharCode(charCode)+'|')!=-1 && CodePress.autocomplete) { // auto complete
|
|
| 41 |
CodePress.complete(String.fromCharCode(charCode)) |
|
| 42 |
} |
|
| 43 |
else if(chars.indexOf('|'+charCode+'|')!=-1||charCode==13) { // syntax highlighting
|
|
| 44 |
CodePress.syntaxHighlight('generic');
|
|
| 45 |
} |
|
| 46 |
}, |
|
| 47 |
|
|
| 48 |
metaHandler : function(evt) {
|
|
| 49 |
keyCode = evt.keyCode; |
|
| 50 |
if(keyCode==9 || evt.tabKey) {
|
|
| 51 |
CodePress.snippets(); |
|
| 52 |
} |
|
| 53 |
else if((keyCode==122||keyCode==121||keyCode==90) && evt.ctrlKey) { // undo and redo
|
|
| 54 |
(keyCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo(); |
|
| 55 |
evt.returnValue = false; |
|
| 56 |
} |
|
| 57 |
else if(keyCode==34||keyCode==33) { // handle page up/down for IE
|
|
| 58 |
self.scrollBy(0, (keyCode==34) ? 200 : -200); |
|
| 59 |
evt.returnValue = false; |
|
| 60 |
} |
|
| 61 |
else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed
|
|
| 62 |
CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML; |
|
| 63 |
} |
|
| 64 |
else if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && keyCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo)
|
|
| 65 |
CodePress.shortcuts(keyCode); |
|
| 66 |
evt.returnValue = false; |
|
| 67 |
} |
|
| 68 |
else if(keyCode==86 && evt.ctrlKey) { // paste
|
|
| 69 |
// TODO: pasted text should be parsed and highlighted |
|
| 70 |
} |
|
| 71 |
}, |
|
| 72 |
|
|
| 73 |
// put cursor back to its original position after every parsing |
|
| 74 |
findString : function() {
|
|
| 75 |
range = self.document.body.createTextRange(); |
|
| 76 |
if(range.findText(cc)){
|
|
| 77 |
range.select(); |
|
| 78 |
range.text = ''; |
|
| 79 |
} |
|
| 80 |
}, |
|
| 81 |
|
|
| 82 |
// split big files, highlighting parts of it |
|
| 83 |
split : function(code,flag) {
|
|
| 84 |
if(flag=='scroll') {
|
|
| 85 |
this.scrolling = true; |
|
| 86 |
return code; |
|
| 87 |
} |
|
| 88 |
else {
|
|
| 89 |
this.scrolling = false; |
|
| 90 |
mid = code.indexOf(cc); |
|
| 91 |
if(mid-2000<0) {ini=0;end=4000;}
|
|
| 92 |
else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;}
|
|
| 93 |
else {ini=mid-2000;end=mid+2000;}
|
|
| 94 |
code = code.substring(ini,end); |
|
| 95 |
return code.substring(code.indexOf('<P>'),code.lastIndexOf('</P>')+4);
|
|
| 96 |
} |
|
| 97 |
}, |
|
| 98 |
|
|
| 99 |
// syntax highlighting parser |
|
| 100 |
syntaxHighlight : function(flag) {
|
|
| 101 |
if(flag!='init') document.selection.createRange().text = cc; |
|
| 102 |
o = editor.innerHTML; |
|
| 103 |
o = o.replace(/<P>/g,'\n'); |
|
| 104 |
o = o.replace(/<\/P>/g,'\r'); |
|
| 105 |
o = o.replace(/<.*?>/g,''); |
|
| 106 |
o = o.replace(/ /g,''); |
|
| 107 |
o = '<PRE><P>'+o+'</P></PRE>'; |
|
| 108 |
o = o.replace(/\n\r/g,'<P></P>'); |
|
| 109 |
o = o.replace(/\n/g,'<P>'); |
|
| 110 |
o = o.replace(/\r/g,'<\/P>'); |
|
| 111 |
o = o.replace(/<P>(<P>)+/,'<P>'); |
|
| 112 |
o = o.replace(/<\/P>(<\/P>)+/,'</P>'); |
|
| 113 |
o = o.replace(/<P><\/P>/g,'<P><BR/></P>'); |
|
| 114 |
x = z = this.split(o,flag); |
|
| 115 |
|
|
| 116 |
if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]); |
|
| 117 |
|
|
| 118 |
for(i=0;i<Language.syntax.length;i++) |
|
| 119 |
x = x.replace(Language.syntax[i].input,Language.syntax[i].output); |
|
| 120 |
|
|
| 121 |
editor.innerHTML = this.actions.history[this.actions.next()] = (flag=='scroll') ? x : o.replace(z,x); |
|
| 122 |
if(flag!='init') this.findString(); |
|
| 123 |
}, |
|
| 124 |
|
|
| 125 |
snippets : function(evt) {
|
|
| 126 |
var snippets = Language.snippets; |
|
| 127 |
var trigger = this.getLastWord(); |
|
| 128 |
for (var i=0; i<snippets.length; i++) {
|
|
| 129 |
if(snippets[i].input == trigger) {
|
|
| 130 |
var content = snippets[i].output.replace(/</g,'<'); |
|
| 131 |
content = content.replace(/>/g,'>'); |
|
| 132 |
if(content.indexOf('$0')<0) content += cc;
|
|
| 133 |
else content = content.replace(/\$0/,cc); |
|
| 134 |
content = content.replace(/\n/g,'</P><P>'); |
|
| 135 |
var pattern = new RegExp(trigger+cc); |
|
| 136 |
this.syntaxHighlight('snippets',pattern,content);
|
|
| 137 |
} |
|
| 138 |
} |
|
| 139 |
}, |
|
| 140 |
|
|
| 141 |
readOnly : function() {
|
|
| 142 |
editor.contentEditable = (arguments[0]) ? 'true' : 'false'; |
|
| 143 |
}, |
|
| 144 |
|
|
| 145 |
complete : function(trigger) {
|
|
| 146 |
var complete = Language.complete; |
|
| 147 |
for (var i=0; i<complete.length; i++) {
|
|
| 148 |
if(complete[i].input == trigger) {
|
|
| 149 |
var pattern = new RegExp('\\'+trigger+cc);
|
|
| 150 |
var content = complete[i].output.replace(/\$0/g,cc); |
|
| 151 |
setTimeout(function () { CodePress.syntaxHighlight('complete',pattern,content)},0); // wait for char to appear on screen
|
|
| 152 |
} |
|
| 153 |
} |
|
| 154 |
}, |
|
| 155 |
|
|
| 156 |
getCompleteChars : function() {
|
|
| 157 |
var cChars = ''; |
|
| 158 |
for(var i=0;i<Language.complete.length;i++) |
|
| 159 |
cChars += '|'+Language.complete[i].input; |
|
| 160 |
return cChars+'|'; |
|
| 161 |
}, |
|
| 162 |
|
|
| 163 |
shortcuts : function() {
|
|
| 164 |
var cCode = arguments[0]; |
|
| 165 |
if(cCode==13) cCode = '[enter]'; |
|
| 166 |
else if(cCode==32) cCode = '[space]'; |
|
| 167 |
else cCode = '['+String.fromCharCode(keyCode).toLowerCase()+']'; |
|
| 168 |
for(var i=0;i<Language.shortcuts.length;i++) |
|
| 169 |
if(Language.shortcuts[i].input == cCode) |
|
| 170 |
this.insertCode(Language.shortcuts[i].output,false); |
|
| 171 |
}, |
|
| 172 |
|
|
| 173 |
getLastWord : function() {
|
|
| 174 |
var rangeAndCaret = CodePress.getRangeAndCaret(); |
|
| 175 |
words = rangeAndCaret[0].substring(rangeAndCaret[1]-40,rangeAndCaret[1]); |
|
| 176 |
words = words.replace(/[\s\r\);]/g,'\n').split('\n');
|
|
| 177 |
return words[words.length-1]; |
|
| 178 |
}, |
|
| 179 |
|
|
| 180 |
getRangeAndCaret : function() {
|
|
| 181 |
var range = document.selection.createRange(); |
|
| 182 |
var caret = Math.abs(range.moveStart('character', -1000000)+1);
|
|
| 183 |
range = this.getCode(); |
|
| 184 |
range = range.replace(/\n\r/gi,' '); |
|
| 185 |
range = range.replace(/\n/gi,''); |
|
| 186 |
return [range.toString(),caret]; |
|
| 187 |
}, |
|
| 188 |
|
|
| 189 |
insertCode : function(code,replaceCursorBefore) {
|
|
| 190 |
var repdeb = ''; |
|
| 191 |
var repfin = ''; |
|
| 192 |
|
|
| 193 |
if(replaceCursorBefore) { repfin = code; }
|
|
| 194 |
else { repdeb = code; }
|
|
| 195 |
|
|
| 196 |
if(typeof document.selection != 'undefined') {
|
|
| 197 |
var range = document.selection.createRange(); |
|
| 198 |
range.text = repdeb + repfin; |
|
| 199 |
range = document.selection.createRange(); |
|
| 200 |
range.move('character', -repfin.length);
|
|
| 201 |
range.select(); |
|
| 202 |
} |
|
| 203 |
}, |
|
| 204 |
|
|
| 205 |
// get code from editor |
|
| 206 |
getCode : function() {
|
|
| 207 |
var code = editor.innerHTML; |
|
| 208 |
code = code.replace(/<br>/g,'\n'); |
|
| 209 |
code = code.replace(/<\/p>/gi,'\r'); |
|
| 210 |
code = code.replace(/<p>/i,''); // IE first line fix |
|
| 211 |
code = code.replace(/<p>/gi,'\n'); |
|
| 212 |
code = code.replace(/ /gi,''); |
|
| 213 |
code = code.replace(/\u2009/g,''); |
|
| 214 |
code = code.replace(/<.*?>/g,''); |
|
| 215 |
code = code.replace(/</g,'<'); |
|
| 216 |
code = code.replace(/>/g,'>'); |
|
| 217 |
code = code.replace(/&/gi,'&'); |
|
| 218 |
return code; |
|
| 219 |
}, |
|
| 220 |
|
|
| 221 |
// put code inside editor |
|
| 222 |
setCode : function() {
|
|
| 223 |
var code = arguments[0]; |
|
| 224 |
code = code.replace(/\u2009/gi,''); |
|
| 225 |
code = code.replace(/&/gi,'&'); |
|
| 226 |
code = code.replace(/</g,'<'); |
|
| 227 |
code = code.replace(/>/g,'>'); |
|
| 228 |
editor.innerHTML = '<pre>'+code+'</pre>'; |
|
| 229 |
}, |
|
| 230 |
|
|
| 231 |
|
|
| 232 |
// undo and redo methods |
|
| 233 |
actions : {
|
|
| 234 |
pos : -1, // actual history position |
|
| 235 |
history : [], // history vector |
|
| 236 |
|
|
| 237 |
undo : function() {
|
|
| 238 |
if(editor.innerHTML.indexOf(cc)==-1){
|
|
| 239 |
document.selection.createRange().text = cc; |
|
| 240 |
this.history[this.pos] = editor.innerHTML; |
|
| 241 |
} |
|
| 242 |
this.pos--; |
|
| 243 |
if(typeof(this.history[this.pos])=='undefined') this.pos++; |
|
| 244 |
editor.innerHTML = this.history[this.pos]; |
|
| 245 |
CodePress.findString(); |
|
| 246 |
}, |
|
| 247 |
|
|
| 248 |
redo : function() {
|
|
| 249 |
this.pos++; |
|
| 250 |
if(typeof(this.history[this.pos])=='undefined') this.pos--; |
|
| 251 |
editor.innerHTML = this.history[this.pos]; |
|
| 252 |
CodePress.findString(); |
|
| 253 |
}, |
|
| 254 |
|
|
| 255 |
next : function() { // get next vector position and clean old ones
|
|
| 256 |
if(this.pos>20) this.history[this.pos-21] = undefined; |
|
| 257 |
return ++this.pos; |
|
| 258 |
} |
|
| 259 |
} |
|
| 260 |
} |
|
| 261 |
|
|
| 262 |
Language={};
|
|
| 263 |
window.attachEvent('onload', function() { CodePress.initialize('new');});
|
|
| 264 | 0 | |
| trunk/wb/include/codepress/languages/css.css | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress color styles for CSS syntax highlighting |
|
| 3 |
*/ |
|
| 4 |
|
|
| 5 |
b, b a, b u {color:#000080;} /* tags, ids, classes */
|
|
| 6 |
i, i b, i s, i a, i u {color:gray;} /* comments */
|
|
| 7 |
s, s b {color:#a0a0dd;} /* parameters */
|
|
| 8 |
a {color:#0000ff;} /* keys */
|
|
| 9 |
u {color:red;} /* values */
|
|
| 10 |
|
|
| 11 | 0 | |
| trunk/wb/include/codepress/languages/html.css | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress color styles for HTML syntax highlighting |
|
| 3 |
*/ |
|
| 4 |
|
|
| 5 |
b {color:#000080;} /* tags */
|
|
| 6 |
ins, ins b, ins s, ins em {color:gray;} /* comments */
|
|
| 7 |
s, s b {color:#7777e4;} /* attribute values */
|
|
| 8 |
a {color:green;} /* links */
|
|
| 9 |
u {color:#E67300;} /* forms */
|
|
| 10 |
big {color:#db0000;} /* images */
|
|
| 11 |
em, em b {color:#800080;} /* style */
|
|
| 12 |
strong {color:#800000;} /* script */
|
|
| 13 |
tt i {color:darkblue;font-weight:bold;} /* script reserved words */
|
|
| 14 | 0 | |
| trunk/wb/include/codepress/languages/php.js | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress regular expressions for PHP syntax highlighting |
|
| 3 |
*/ |
|
| 4 |
|
|
| 5 |
Language.syntax = [ // PHP |
|
| 6 |
{ input : /(<[^!\?]*?>)/g, output : '<b>$1</b>' }, // all tags
|
|
| 7 |
{ input : /(<style.*?>)(.*?)(<\/style>)/g, output : '<em>$1</em><em>$2</em><em>$3</em>' }, // style tags
|
|
| 8 |
{ input : /(<script.*?>)(.*?)(<\/script>)/g, output : '<ins>$1</ins><ins>$2</ins><ins>$3</ins>' }, // script tags
|
|
| 9 |
{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, // strings double quote
|
|
| 10 |
{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>'}, // strings single quote
|
|
| 11 |
{ input : /(<\?)/g, output : '<strong>$1' }, // <?.*
|
|
| 12 |
{ input : /(\?>)/g, output : '$1</strong>' }, // .*?>
|
|
| 13 |
{ input : /(<\?php|<\?=|<\?|\?>)/g, output : '<cite>$1</cite>' }, // php tags
|
|
| 14 |
{ input : /(\$[\w\.]*)/g, output : '<a>$1</a>' }, // vars
|
|
| 15 |
{ input : /\b(false|true|and|or|xor|__FILE__|exception|__LINE__|array|as|break|case|class|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|for|foreach|function|global|if|include|include_once|isset|list|new|print|require|require_once|return|static|switch|unset|use|while|__FUNCTION__|__CLASS__|__METHOD__|final|php_user_filter|interface|implements|extends|public|private|protected|abstract|clone|try|catch|throw|this)\b/g, output : '<u>$1</u>' }, // reserved words
|
|
| 16 |
{ input : /([^:])\/\/(.*?)(<br|<\/P)/g, output : '$1<i>//$2</i>$3' }, // php comments //
|
|
| 17 |
{ input : /\/\*(.*?)\*\//g, output : '<i>/*$1*/</i>' }, // php comments /* */
|
|
| 18 |
{ input : /(<!--.*?-->.)/g, output : '<big>$1</big>' } // html comments
|
|
| 19 |
] |
|
| 20 |
|
|
| 21 |
// activated with tab |
|
| 22 |
Language.snippets = [ |
|
| 23 |
{ input : 'if', output : 'if($0){\n\t\n}' },
|
|
| 24 |
{ input : 'ifelse', output : 'if($0){\n\t\n}\nelse{\n\t\n}' },
|
|
| 25 |
{ input : 'else', output : '}\nelse {\n\t' },
|
|
| 26 |
{ input : 'elseif', output : '}\nelseif($0) {\n\t' },
|
|
| 27 |
{ input : 'do', output : 'do{\n\t$0\n}\nwhile();' },
|
|
| 28 |
{ input : 'inc', output : 'include_once("$0");' },
|
|
| 29 |
{ input : 'fun', output : 'function $0(){\n\t\n}' },
|
|
| 30 |
{ input : 'func', output : 'function $0(){\n\t\n}' },
|
|
| 31 |
{ input : 'while', output : 'while($0){\n\t\n}' },
|
|
| 32 |
{ input : 'for', output : 'for($0,,){\n\t\n}' },
|
|
| 33 |
{ input : 'fore', output : 'foreach($0 as ){\n\t\n}' },
|
|
| 34 |
{ input : 'foreach', output : 'foreach($0 as ){\n\t\n}' },
|
|
| 35 |
{ input : 'echo', output : 'echo \'$0\';' },
|
|
| 36 |
{ input : 'switch', output : 'switch($0) {\n\tcase "": break;\n\tdefault: ;\n}' },
|
|
| 37 |
{ input : 'case', output : 'case "$0" : break;' },
|
|
| 38 |
{ input : 'ret0', output : 'return false;' },
|
|
| 39 |
{ input : 'retf', output : 'return false;' },
|
|
| 40 |
{ input : 'ret1', output : 'return true;' },
|
|
| 41 |
{ input : 'rett', output : 'return true;' },
|
|
| 42 |
{ input : 'ret', output : 'return $0;' },
|
|
| 43 |
{ input : 'def', output : 'define(\'$0\',\'\');' },
|
|
| 44 |
{ input : '<?', output : 'php\n$0\n?>' }
|
|
| 45 |
], |
|
| 46 |
|
|
| 47 |
// only 1 character auto-complete |
|
| 48 |
Language.complete = [ |
|
| 49 |
{ input : '\'', output : '\'$0\'' },
|
|
| 50 |
{ input : '"', output : '"$0"' },
|
|
| 51 |
{ input : '(', output : '\($0\)' },
|
|
| 52 |
{ input : '[', output : '\[$0\]' },
|
|
| 53 |
{ input : '{', output : '{\n\t$0\n}' }
|
|
| 54 |
] |
|
| 55 |
|
|
| 56 |
// ctrl+shift+inputKey |
|
| 57 |
Language.shortcuts = [ |
|
| 58 |
{ input : '[space]', output : ' ' },
|
|
| 59 |
{ input : '[enter]', output : '<br />' } ,
|
|
| 60 |
{ input : '[j]', output : 'testing' },
|
|
| 61 |
{ input : '[7]', output : '&' }
|
|
| 62 |
] |
|
| 63 | 0 | |
| trunk/wb/include/codepress/languages/sql.js | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress regular expressions for SQL syntax highlighting |
|
| 3 |
* By Merlin Moncure |
|
| 4 |
*/ |
|
| 5 |
|
|
| 6 |
Language.syntax = [ // SQL |
|
| 7 |
{ input : /\'(.*?)(\')/g, output : '<s>\'$1$2</s>' }, // strings single quote
|
|
| 8 |
{ input : /\b(add|after|aggregate|alias|all|and|as|authorization|between|by|cascade|cache|cache|called|case|check|column|comment|constraint|createdb|createuser|cycle|database|default|deferrable|deferred|diagnostics|distinct|domain|each|else|elseif|elsif|encrypted|except|exception|for|foreign|from|from|full|function|get|group|having|if|immediate|immutable|in|increment|initially|increment|index|inherits|inner|input|intersect|into|invoker|is|join|key|language|left|limit|local|loop|match|maxvalue|minvalue|natural|nextval|no|nocreatedb|nocreateuser|not|null|of|offset|oids|on|only|operator|or|order|outer|owner|partial|password|perform|plpgsql|primary|record|references|replace|restrict|return|returns|right|row|rule|schema|security|sequence|session|sql|stable|statistics|table|temp|temporary|then|time|to|transaction|trigger|type|unencrypted|union|unique|user|using|valid|value|values|view|volatile|when|where|with|without|zone)\b/gi, output : '<b>$1</b>' }, // reserved words
|
|
| 9 |
{ input : /\b(bigint|bigserial|bit|boolean|box|bytea|char|character|cidr|circle|date|decimal|double|float4|float8|inet|int2|int4|int8|integer|interval|line|lseg|macaddr|money|numeric|oid|path|point|polygon|precision|real|refcursor|serial|serial4|serial8|smallint|text|timestamp|varbit|varchar)\b/gi, output : '<u>$1</u>' }, // types
|
|
| 10 |
{ input : /\b(abort|alter|analyze|begin|checkpoint|close|cluster|comment|commit|copy|create|deallocate|declare|delete|drop|end|execute|explain|fetch|grant|insert|listen|load|lock|move|notify|prepare|reindex|reset|restart|revoke|rollback|select|set|show|start|truncate|unlisten|update)\b/gi, output : '<a>$1</a>' }, // commands
|
|
| 11 |
{ input : /([^:]|^)\-\-(.*?)(<br|<\/P)/g, output: '$1<i>--$2</i>$3' } // comments //
|
|
| 12 |
] |
|
| 13 |
|
|
| 14 |
// activated with tab |
|
| 15 |
Language.snippets = [ |
|
| 16 |
{ input : 'select', output : 'select $0 from where ' }
|
|
| 17 |
], |
|
| 18 |
|
|
| 19 |
// only 1 character auto-complete |
|
| 20 |
Language.complete = [ |
|
| 21 |
{ input : '\'', output : '\'$0\'' },
|
|
| 22 |
{ input : '"', output : '"$0"' },
|
|
| 23 |
{ input : '(', output : '\($0\)' },
|
|
| 24 |
{ input : '[', output : '\[$0\]' },
|
|
| 25 |
{ input : '{', output : '{\n\t$0\n}' }
|
|
| 26 |
] |
|
| 27 |
|
|
| 28 |
// ctrl+shift+inputKey |
|
| 29 |
Language.shortcuts = [ |
|
| 30 |
] |
|
| 31 |
|
|
| 32 |
|
|
| 33 |
|
|
| 34 | 0 | |
| trunk/wb/include/codepress/languages/html.js | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress regular expressions for HTML syntax highlighting |
|
| 3 |
*/ |
|
| 4 |
|
|
| 5 |
Language.syntax = [ // HTML |
|
| 6 |
{
|
|
| 7 |
input : /(<[^!]*?>)/g, |
|
| 8 |
output : '<b>$1</b>' // all tags |
|
| 9 |
},{
|
|
| 10 |
input : /(<a .*?>|<\/a>)/g, |
|
| 11 |
output : '<a>$1</a>' // links |
|
| 12 |
},{
|
|
| 13 |
input : /(<img .*?>)/g, |
|
| 14 |
output : '<big>$1</big>' // images |
|
| 15 |
},{
|
|
| 16 |
input : /(<\/?(button|textarea|form|input|select|option|label).*?>)/g, |
|
| 17 |
output : '<u>$1</u>' // forms |
|
| 18 |
},{
|
|
| 19 |
input : /(<style.*?>)(.*?)(<\/style>)/g, |
|
| 20 |
output : '<em>$1</em><em>$2</em><em>$3</em>' // style tags |
|
| 21 |
},{
|
|
| 22 |
input : /(<script.*?>)(.*?)(<\/script>)/g, |
|
| 23 |
output : '<strong>$1</strong><tt>$2</tt><strong>$3</strong>' // script tags |
|
| 24 |
},{
|
|
| 25 |
input : /=(".*?")/g,
|
|
| 26 |
output : '=<s>$1</s>' // atributes double quote |
|
| 27 |
},{
|
|
| 28 |
input : /=('.*?')/g,
|
|
| 29 |
output : '=<s>$1</s>' // atributes single quote |
|
| 30 |
},{
|
|
| 31 |
input : /(<!--.*?-->.)/g, |
|
| 32 |
output : '<ins>$1</ins>' // comments |
|
| 33 |
},{
|
|
| 34 |
input : /\b(alert|window|document|break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, |
|
| 35 |
output : '<i>$1</i>' // script reserved words |
|
| 36 |
} |
|
| 37 |
]; |
|
| 38 |
|
|
| 39 |
Language.snippets = [ |
|
| 40 |
{input : 'aref', output : '<a href="$0"></a>' },
|
|
| 41 |
{input : 'h1', output : '<h1>$0</h1>' },
|
|
| 42 |
{input : 'h2', output : '<h2>$0</h2>' },
|
|
| 43 |
{input : 'h3', output : '<h3>$0</h3>' },
|
|
| 44 |
{input : 'h4', output : '<h4>$0</h4>' },
|
|
| 45 |
{input : 'h5', output : '<h5>$0</h5>' },
|
|
| 46 |
{input : 'h6', output : '<h6>$0</h6>' },
|
|
| 47 |
{input : 'html', output : '<html>\n\t$0\n</html>' },
|
|
| 48 |
{input : 'head', output : '<head>\n\t<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n\t<title>$0</title>\n\t\n</head>' },
|
|
| 49 |
{input : 'img', output : '<img src="$0" alt="" />' },
|
|
| 50 |
{input : 'input', output : '<input name="$0" id="" type="" value="" />' },
|
|
| 51 |
{input : 'label', output : '<label for="$0"></label>' },
|
|
| 52 |
{input : 'legend', output : '<legend>\n\t$0\n</legend>' },
|
|
| 53 |
{input : 'link', output : '<link rel="stylesheet" href="$0" type="text/css" media="screen" charset="utf-8" />' },
|
|
| 54 |
{input : 'base', output : '<base href="$0" />' },
|
|
| 55 |
{input : 'body', output : '<body>\n\t$0\n</body>' },
|
|
| 56 |
{input : 'css', output : '<link rel="stylesheet" href="$0" type="text/css" media="screen" charset="utf-8" />' },
|
|
| 57 |
{input : 'div', output : '<div>\n\t$0\n</div>' },
|
|
| 58 |
{input : 'divid', output : '<div id="$0">\n\t\n</div>' },
|
|
| 59 |
{input : 'dl', output : '<dl>\n\t<dt>\n\t\t$0\n\t</dt>\n\t<dd></dd>\n</dl>' },
|
|
| 60 |
{input : 'fieldset', output : '<fieldset>\n\t$0\n</fieldset>' },
|
|
| 61 |
{input : 'form', output : '<form action="$0" method="" name="">\n\t\n</form>' },
|
|
| 62 |
{input : 'meta', output : '<meta name="$0" content="" />' },
|
|
| 63 |
{input : 'p', output : '<p>$0</p>' },
|
|
| 64 |
{input : 'script', output : '<script type="text/javascript" language="javascript" charset="utf-8">\n\t$0\t\n</script>' },
|
|
| 65 |
{input : 'scriptsrc', output : '<script src="$0" type="text/javascript" language="javascript" charset="utf-8"></script>' },
|
|
| 66 |
{input : 'span', output : '<span>$0</span>' },
|
|
| 67 |
{input : 'table', output : '<table border="$0" cellspacing="" cellpadding="">\n\t<tr><th></th></tr>\n\t<tr><td></td></tr>\n</table>' },
|
|
| 68 |
{input : 'style', output : '<style type="text/css" media="screen">\n\t$0\n</style>' }
|
|
| 69 |
]; |
|
| 70 |
|
|
| 71 |
Language.complete = [ // Auto complete only for 1 character |
|
| 72 |
{input : '\'',output : '\'$0\'' },
|
|
| 73 |
{input : '"', output : '"$0"' },
|
|
| 74 |
{input : '(', output : '\($0\)' },
|
|
| 75 |
{input : '[', output : '\[$0\]' },
|
|
| 76 |
{input : '{', output : '{\n\t$0\n}' }
|
|
| 77 |
]; |
|
| 78 |
|
|
| 79 |
Language.shortcuts = []; |
|
| 80 | 0 | |
| trunk/wb/include/codepress/languages/generic.css | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress color styles for generic syntax highlighting |
|
| 3 |
*/ |
|
| 4 |
|
|
| 5 |
b {color:#7F0055;font-weight:bold;} /* reserved words */
|
|
| 6 |
u {color:darkblue;font-weight:bold;} /* special words */
|
|
| 7 |
i, i b, i s, i u, i em {color:green;font-weight:normal;} /* comments */
|
|
| 8 |
s, s b, s em {color:#2A00FF;font-weight:normal;} /* strings */
|
|
| 9 |
em {font-weight:bold;} /* special chars */
|
|
| 10 | 0 | |
| trunk/wb/include/codepress/languages/ruby.css | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress color styles for Ruby syntax highlighting |
|
| 3 |
*/ |
|
| 4 |
|
|
| 5 |
b {color:#7F0055;font-weight:bold;} /* reserved words */
|
|
| 6 |
i, i b, i s, i em, i a, i u {color:gray;font-weight:normal;} /* comments */
|
|
| 7 |
s, s b, s a, s em, s u {color:#2A00FF;font-weight:normal;} /* strings */
|
|
| 8 |
a {color:#006700;font-weight:bold;} /* variables */
|
|
| 9 |
em {color:darkblue;font-weight:bold;} /* functions */
|
|
| 10 |
u {font-weight:bold;} /* special chars */
|
|
| 11 | 0 | |
| trunk/wb/include/codepress/languages/javascript.js | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress regular expressions for JavaScript syntax highlighting |
|
| 3 |
*/ |
|
| 4 |
|
|
| 5 |
Language.syntax = [ // JavaScript |
|
| 6 |
{
|
|
| 7 |
input : /\"(.*?)(\"|<br>|<\/P>)/g, |
|
| 8 |
output : '<s>"$1$2</s>' // strings double quote |
|
| 9 |
},{
|
|
| 10 |
input : /\'(.*?)(\'|<br>|<\/P>)/g, |
|
| 11 |
output : '<s>\'$1$2</s>' // strings single quote |
|
| 12 |
},{
|
|
| 13 |
input : /\b(break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, |
|
| 14 |
output : '<b>$1</b>' // reserved words |
|
| 15 |
},{
|
|
| 16 |
input : /\b(alert|isNaN|parent|Array|parseFloat|parseInt|blur|clearTimeout|prompt|prototype|close|confirm|length|Date|location|Math|document|element|name|self|elements|setTimeout|navigator|status|String|escape|Number|submit|eval|Object|event|onblur|focus|onerror|onfocus|onclick|top|onload|toString|onunload|unescape|open|valueOf|window|onmouseover)\b/g, |
|
| 17 |
output : '<u>$1</u>' // special words |
|
| 18 |
},{
|
|
| 19 |
input : /([^:]|^)\/\/(.*?)(<br|<\/P)/g, |
|
| 20 |
output : '$1<i>//$2</i>$3' // comments // |
|
| 21 |
},{
|
|
| 22 |
input : /\/\*(.*?)\*\//g, |
|
| 23 |
output : '<i>/*$1*/</i>' // comments /* */ |
|
| 24 |
} |
|
| 25 |
] |
|
| 26 |
|
|
| 27 |
Language.snippets = [ |
|
| 28 |
{ input : 'dw', output : 'document.write(\'$0\');' },
|
|
| 29 |
{ input : 'getid', output : 'document.getElementById(\'$0\')' },
|
|
| 30 |
{ input : 'fun', output : 'function $0(){\n\t\n}' },
|
|
| 31 |
{ input : 'func', output : 'function $0(){\n\t\n}' }
|
|
| 32 |
]; |
|
| 33 |
|
|
| 34 |
Language.complete = [ // Auto complete only for 1 character |
|
| 35 |
{input : '\'',output : '\'$0\'' },
|
|
| 36 |
{input : '"', output : '"$0"' },
|
|
| 37 |
{input : '(', output : '\($0\)' },
|
|
| 38 |
{input : '[', output : '\[$0\]' },
|
|
| 39 |
{input : '{', output : '{\n\t$0\n}' }
|
|
| 40 |
]; |
|
| 41 |
|
|
| 42 |
Language.shortcuts = []; |
|
| 43 | 0 | |
| trunk/wb/include/codepress/languages/java.css | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
* CodePress color styles for Java syntax highlighting |
|
| 3 |
*/ |
|
| 4 |
|
|
| 5 |
b {color:#7F0055;font-weight:bold;font-style:normal;} /* reserved words */
|
|
| 6 |
i, i b, i s {color:#3F7F5F;font-weight:bold;} /* comments */
|
|
| 7 |
s, s b {color:#2A00FF;font-weight:normal;} /* strings */
|
|
| 8 | 0 | |
| trunk/wb/include/codepress/languages/ruby.js | ||
|---|---|---|
| 1 |
/* |
|
Also available in: Unified diff
Delete codepress because of SVN errors