add contents

This commit is contained in:
Trevor Batley
2025-10-09 15:04:29 +11:00
parent 170362eec1
commit bce7dd054a
2537 changed files with 301282 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
<?php
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../../').'/');
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'action.php');
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Pierre Spring <pierre.spring@liip.ch>
*/
class action_plugin_ckgedit_delete extends DokuWiki_Action_Plugin {
function register(Doku_Event_Handler $controller) {
$controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, 'ckgedit_delete_preprocess');
}
function ckgedit_delete_preprocess(Doku_Event $event){
global $ACT;
if (! is_array($ACT) || !(isset($ACT['delete']))) return;
global $TEXT;
$TEXT = NULL;
unset($ACT['delete']);
$ACT['save'] = "Speichern";
}
} //end of action class
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,55 @@
Adding Entities to the Entities Defintions Array.
You create an Entity definition file with the format illustrated below, and then run the php
script ents_seri.php
Name your definitions file add.ent
Then at the command line type:
php ents_seri.php
Alternatively, you can give your entity definition file any name you want and feed
the file name to the script at the command line:
php ents_seri.php your_entity_file
This creates a new entities file called ent.ser, which must then be copied to
the fckg/action subdirectory. You would be wise to first back up the original ent.ser
before over-writing it.
There are two definition files in the action/entities: ents.data and fcked-ents.data.
These are required and must not be removed from the directory.
The definition file has the following format:
character
entity numeric code
entity character code
character
entity numeric code
entity character code
etc.
There is one empty line between each definition. Here is an actual example.
<
&#60;
&lt;
>
&#62;
&gt;
<EFBFBD>
&#161;
&iexcl;
<EFBFBD>
&#162;
&cent;
<EFBFBD>
&#163;
&pound;

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,948 @@
&#8704;
&forall;
&#8706;
&part;
&#8707;
&exist;
&#8709;
&empty;
&#8711;
&nabla;
&#8712;
&isin;
&#8713;
&notin;
&#8715;
&ni;
&#8719;
&prod;
&#8721;
&sum;
&#8722;
&minus;
&#8727;
&lowast;
&#8730;
&radic;
&#8733;
&prop;
&#8734;
&infin;
&#8736;
&ang;
&#8743;
&and;
&#8744;
&or;
&#8745;
&cap;
&#8746;
&cup;
&#8747;
&int;
&#8756;
&there4;
&#8764;
&sim;
&#8773;
&cong;
&#8776;
&asymp;
&#8800;
&ne;
&#8801;
&equiv;
&#8804;
&le;
&#8805;
&ge;
&#8834;
&sub;
&#8835;
&sup;
&#8836;
&nsub;
&#8838;
&sube;
&#8839;
&supe;
&#8853;
&oplus;
&#8855;
&otimes;
&#8869;
&perp;
&#8901;
&sdot;
Α
&#913;
&Alpha;
Β
&#914;
&Beta;
Γ
&#915;
&Gamma;
Δ
&#916;
&Delta;
Ε
&#917;
&Epsilon;
Ζ
&#918;
&Zeta;
Η
&#919;
&Eta;
Θ
&#920;
&Theta;
Ι
&#921;
&Iota;
Κ
&#922;
&Kappa;
Λ
&#923;
&Lambda;
Μ
&#924;
&Mu;
Ν
&#925;
&Nu;
Ξ
&#926;
&Xi;
Ο
&#927;
&Omicron;
Π
&#928;
&Pi;
Ρ
&#929;
&Rho;
Σ
&#931;
&Sigma;
Τ
&#932;
&Tau;
Υ
&#933;
&Upsilon;
Φ
&#934;
&Phi;
Χ
&#935;
&Chi;
Ψ
&#936;
&Psi;
Ω
&#937;
&Omega;
α
&#945;
&alpha;
β
&#946;
&beta;
γ
&#947;
&gamma;
δ
&#948;
&delta;
ε
&#949;
&epsilon;
ζ
&#950;
&zeta;
η
&#951;
&eta;
θ
&#952;
&theta;
ι
&#953;
&iota;
κ
&#954;
&kappa;
λ
&#955;
&lambda;
μ
&#956;
&mu;
ν
&#957;
&nu;
ξ
&#958;
&xi;
ο
&#959;
&omicron;
π
&#960;
&pi;
ρ
&#961;
&rho;
ς
&#962;
&sigmaf;
σ
&#963;
&sigma;
τ
&#964;
&tau;
υ
&#965;
&upsilon;
φ
&#966;
&phi;
χ
&#967;
&chi;
ψ
&#968;
&psi;
ω
&#969;
&omega;
ϑ
&#977;
&thetasym;
ϒ
&#978;
&upsih;
ϖ
&#982;
&piv;
Œ
&#338;
&OElig;
œ
&#339;
&oelig;
Š
&#352;
&Scaron;
š
&#353;
&scaron;
Ÿ
&#376;
&Yuml;
ƒ
&#402;
&fnof;
ˆ
&#710;
&circ;
˜
&#732;
&tilde;
&#8194;
&ensp;
&#8195;
&emsp;
&#8201;
&thinsp;
&#8204;
&zwnj;
&#8205;
&zwj;
&#8206;
&lrm;
&#8207;
&rlm;
&#8211;
&ndash;
&#8212;
&mdash;
&#8216;
&lsquo;
&#8217;
&rsquo;
&#8218;
&sbquo;
&#8220;
&ldquo;
&#8221;
&rdquo;
&#8222;
&bdquo;
&#8224;
&dagger;
&#8225;
&Dagger;
&#8226;
&bull;
&#8230;
&hellip;
&#8240;
&permil;
&#8242;
&prime;
&#8243;
&Prime;
&#8249;
&lsaquo;
&#8250;
&rsaquo;
&#8254;
&oline;
&#8364;
&euro;
&#8482;
or
&#8592;
&larr;
&#8593;
&uarr;
&#8594;
&rarr;
&#8595;
&darr;
&#8596;
&harr;
&#8629;
&crarr;
&#8968;
&lceil;
&#8969;
&rceil;
&#8970;
&lfloor;
&#8971;
&rfloor;
&#9674;
&loz;
&#9824;
&spades;
&#9827;
&clubs;
&#9829;
&hearts;
&#9830;
&diams;
&#160;
&nbsp;
¡
&#161;
&iexcl;
¢
&#162;
&cent;
£
&#163;
&pound;
¤
&#164;
&curren;
¥
&#165;
&yen;
¦
&#166;
&brvbar;
§
&#167;
&sect;
¨
&#168;
&uml;
©
&#169;
&copy;
ª
&#170;
&ordf;
«
&#171;
&laquo;
¬
&#172;
&not;
­­
&#173;
&shy;
®
&#174;
&reg;
¯
&#175;
&macr;
°
&#176;
&deg;
±
&#177;
&plusmn;
²
&#178;
&sup2;
³
&#179;
&sup3;
´
&#180;
&acute;
µ
&#181;
&micro;
&#182;
&para;
·
&#183;
&middot;
¸
&#184;
&cedil;
¹
&#185;
&sup1;
º
&#186;
&ordm;
»
&#187;
&raquo;
¼
&#188;
&frac14;
½
&#189;
&frac12;
¾
&#190;
&frac34;
¿
&#191;
&iquest;
×
&#215;
&times;
÷
&#247;
&divide;
À
&#192;
&Agrave;
Á
&#193;
&Aacute;
Â
&#194;
&Acirc;
Ã
&#195;
&Atilde;
Ä
&#196;
&Auml;
Å
&#197;
&Aring;
Æ
&#198;
&AElig;
Ç
&#199;
&Ccedil;
È
&#200;
&Egrave;
É
&#201;
&Eacute;
Ê
&#202;
&Ecirc;
Ë
&#203;
&Euml;
Ì
&#204;
&Igrave;
Í
&#205;
&Iacute;
Î
&#206;
&Icirc;
Ï
&#207;
&Iuml;
Ð
&#208;
&ETH;
Ñ
&#209;
&Ntilde;
Ò
&#210;
&Ograve;
Ó
&#211;
&Oacute;
Ô
&#212;
&Ocirc;
Õ
&#213;
&Otilde;
Ö
&#214;
&Ouml;
Ø
&#216;
&Oslash;
Ù
&#217;
&Ugrave;
Ú
&#218;
&Uacute;
Û
&#219;
&Ucirc;
Ü
&#220;
&Uuml;
Ý
&#221;
&Yacute;
Þ
&#222;
&THORN;
ß
&#223;
&szlig;
à
&#224;
&agrave;
á
&#225;
&aacute;
â
&#226;
&acirc;
ã
&#227;
&atilde;
ä
&#228;
&auml;
å
&#229;
&aring;
æ
&#230;
&aelig;
ç
&#231;
&ccedil;
è
&#232;
&egrave;
é
&#233;
&eacute;
ê
&#234;
&ecirc;
ë
&#235;
&euml;
ì
&#236;
&igrave;
í
&#237;
&iacute;
î
&#238;
&icirc;
ï
&#239;
&iuml;
ð
&#240;
&eth;
ñ
&#241;
&ntilde;
ò
&#242;
&ograve;
ó
&#243;
&oacute;
ô
&#244;
&ocirc;
õ
&#245;
&otilde;
ö
&#246;
&ouml;
ø
&#248;
&oslash;
ù
&#249;
&ugrave;
ú
&#250;
&uacute;
û
&#251;
&ucirc;
ü
&#252;
&uuml;
ý
&#253;
&yacute;
þ
&#254;
&thorn;
ÿ
&#255;
&yuml;
&#8482;
&trade;

View File

@@ -0,0 +1,61 @@
<?php
define('FCK_ACTION_SUBDIR', realpath(dirname(__FILE__)) . '/');
$entities = array();
serialize_ents('ents.data');
serialize_ents('fcked-ents.data');
serialize_ents('ents.merge.data');
$file = "";
if(isset($argv[1])) {
$f = $argv[1];
if ($f && file_exists($f)) $file = $f;
}
elseif(file_exists('add.ent')) {
$file = 'add.ent';
}
if($file && file_exists($file)) {
echo "adding entities from $file\n";
serialize_ents($file);
}
$serialized = FCK_ACTION_SUBDIR . 'ent.ser';
file_put_contents($serialized,serialize($entities));
//$ents = unserialize(file_get_contents($serialized));
//print_r($ents);
exit;
function serialize_ents($file) {
global $entities;
$entities_file = FCK_ACTION_SUBDIR . $file;
if(!file_exists($entities_file)) return;
$lines = file_get_contents($entities_file);
$lines_array=preg_split('/^\n/ms',$lines);
foreach ($lines_array as $line) {
if(isset($line) && strlen($line)) {
list($icon, $numeric,$character) = @preg_split('/\s+/',$line);
if(!$icon || !$numeric || !$character) continue;
$numeric = trim($numeric,'&#;');
$character=trim($character,'&;');
$entities[$numeric] = $icon;
$entities[$character] = $icon;
}
}
$entities[32] = ' ';
$entities['nbsp'] = ' ';
}
?>

View File

@@ -0,0 +1,842 @@
¡
iexcl
161
¢
cent
162
£
pound
163
¤
curren
164
¥
yen
165
¦
brvbar
166
§
sect
167
¨
uml
168
©
copy
169
ª
ordf
170
«
laquo
171
¬
not
172
­
shy
173
®
reg
174
¯
macr
175
°
deg
176
±
plusmn
177
²
sup2
178
³
sup3
179
´
acute
180
µ
micro
181
para
182
·
middot
183
¸
cedil
184
¹
sup1
185
º
ordm
186
»
raquo
187
¼
frac14
188
½
frac12
189
¾
frac34
190
¿
iquest
191
à
agrave
192
á
aacute
193
â
acirc
194
ã
atilde
195
Ä
Auml
196
å
aring
197
æ
aelig
198
ç
ccedil
199
è
egrave
200
é
eacute
201
ê
ecirc
202
Ë
203
Euml;
ì
igrave
204
í
iacute
205
î
icirc
206
ï
iuml
207
ð
eth
208
ñ
ntilde
209
ò
ograve
210
ó
oacute
211
ô
ocirc
212
õ
otilde
213
Ö
Ouml
214
×
times
215
ø
oslash
216
ù
ugrave
217
ú
uacute
218
û
ucirc
219
Ü
Uuml
220
ý
yacute
221
þ
thorn
222
ß
szlig
223
à
agrave
224
á
aacute
225
â
acirc
226
ã
atilde
227
ä
auml
228
å
aring
229
æ
aelig
230
ç
ccedil
231
è
egrave
232
é
eacute
233
ê
ecirc
234
ë
euml
235
ì
igrave
236
í
iacute
237
î
icirc
238
ï
iuml
239
ð
eth
240
ñ
ntilde
241
ò
ograve
242
ó
oacute
243
ô
ocirc
244
õ
otilde
245
ö
ouml
246
÷
divide
247
ø
oslash
248
ù
ugrave
249
ú
uacute
250
û
ucirc
251
ü
uuml
252
ý
yacute
253
þ
thorn
254
ÿ
yuml
255
"
quot
34
&
amp
38
<
lt
60
>
gt
62
œ
oelig
338
œ
oelig
339
š
scaron
352
š
scaron
353
ÿ
yuml
376
ˆ
circ
710
˜
tilde
732
ensp
8194
emsp
8195
thinsp
8201
ndash
8211
mdash
8212
lsquo
8216
rsquo
8217
sbquo
8218
ldquo
8220
rdquo
8221
bdquo
8222
dagger
8224
dagger
8225
permil
8240
lsaquo
8249
rsaquo
8250
euro
8364
ƒ
fnof
402
α
alpha
913
β
beta
914
γ
gamma
915
δ
delta
916
ε
epsilon
917
ζ
zeta
918
η
eta
919
θ
theta
920
ι
iota
921
κ
kappa
922
λ
lambda
923
μ
mu
924
ν
nu
925
ξ
xi
926
ο
omicron
927
π
pi
928
ρ
rho
929
σ
sigma
931
τ
tau
932
υ
upsilon
933
φ
phi
934
χ
chi
935
ψ
psi
936
ω
omega
937
α
alpha
945
β
beta
946
γ
gamma
947
δ
delta
948
ε
epsilon
949
ζ
zeta
950
η
eta
951
θ
theta
952
ι
iota
953
κ
kappa
954
λ
lambda
955
μ
mu
956
ν
nu
957
ξ
xi
958
ο
omicron
959
π
pi
960
ρ
rho
961
ς
sigmaf
962
σ
sigma
963
τ
tau
964
υ
upsilon
965
φ
phi
966
χ
chi
967
ψ
psi
968
ω
omega
969
bull
8226
hellip
8230
prime
8242
prime
8243
oline
8254
frasl
8260
larr
8592
uarr
8593
rarr
8594
darr
8595
harr
8596
larr
8656
uarr
8657
rarr
8658
darr
8659
harr
8660
part
8706
prod
8719
sum
8721
minus
8722
radic
8730
infin
8734
cap
8745
int
8747
asymp
8776
ne
8800
equiv
8801
le
8804
ge
8805
loz
9674
spades
9824
clubs
9827
hearts
9829
diams
9830
8660
hArr
8658
rArr
8656
lArr

View File

@@ -0,0 +1,27 @@
# Typography replacements
#
# Order does matter!
#
# You can use HTML entities here, but it is not recommended because it may break
# non-HTML renderers. Use UTF-8 chars directly instead.
# This adds four entities that are needed by the ckgeditor. Before substituting this file for
# Dokuwiki's make sure all of the entities in Dokuwiki's entities.conf are listed here.
&lt;-> ↔
&lt;- ←
&lt;=> ⇔
&lt;= ⇐
<-> ↔
-> →
<- ←
<=> ⇔
=> ⇒
<= ⇐
>> »
<< «
--- —
--
(c) ©
(tm) ™
(r) ®
... …

View File

@@ -0,0 +1,52 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
var arr1 = new Array('&nbsp;','&iexcl;','&cent;','&pound;','&curren;','&yen;','&brvbar;','&sect;','&uml;','&copy;','&ordf;','&laquo;','&not;','&shy;','&reg;','&macr;','&deg;','&plusmn;','&sup2;','&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;','&sup1;','&ordm;','&raquo;','&frac14;','&frac12;','&frac34;','&iquest;','&agrave;','&aacute;','&acirc;','&atilde;','&Auml;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&Ouml;','&times;','&oslash;','&ugrave;','&uacute;','&ucirc;','&Uuml;','&yacute;','&thorn;','&szlig;','&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&ouml;','&divide;','&oslash;','&ugrave;','&uacute;','&ucirc;','&uuml;','&yacute;','&thorn;','&yuml;','&quot;','&amp;','&lt;','&gt;','&oelig;','&oelig;','&scaron;','&scaron;','&yuml;','&circ;','&tilde;','&ensp;','&emsp;','&thinsp;','&zwnj;','&zwj;','&lrm;','&rlm;','&ndash;','&mdash;','&lsquo;','&rsquo;','&sbquo;','&ldquo;','&rdquo;','&bdquo;','&dagger;','&dagger;','&permil;','&lsaquo;','&rsaquo;','&euro;','&fnof;','&alpha;','&beta;','&gamma;','&delta;','&epsilon;','&zeta;','&eta;','&theta;','&iota;','&kappa;','&lambda;','&mu;','&nu;','&xi;','&omicron;','&pi;','&rho;','&sigma;','&tau;','&upsilon;','&phi;','&chi;','&psi;','&omega;','&alpha;','&beta;','&gamma;','&delta;','&epsilon;','&zeta;','&eta;','&theta;','&iota;','&kappa;','&lambda;','&mu;','&nu;','&xi;','&omicron;','&pi;','&rho;','&sigmaf;','&sigma;','&tau;','&upsilon;','&phi;','&chi;','&psi;','&omega;','&thetasym;','&upsih;','&piv;','&bull;','&hellip;','&prime;','&prime;','&oline;','&frasl;','&weierp;','&image;','&real;','&trade;','&alefsym;','&larr;','&uarr;','&rarr;','&darr;','&harr;','&crarr;','&larr;','&uarr;','&rarr;','&darr;','&harr;','&forall;','&part;','&exist;','&empty;','&nabla;','&isin;','&notin;','&ni;','&prod;','&sum;','&minus;','&lowast;','&radic;','&prop;','&infin;','&ang;','&and;','&or;','&cap;','&cup;','&int;','&there4;','&sim;','&cong;','&asymp;','&ne;','&equiv;','&le;','&ge;','&sub;','&sup;','&nsub;','&sube;','&supe;','&oplus;','&otimes;','&perp;','&sdot;','&lceil;','&rceil;','&lfloor;','&rfloor;','&lang;','&rang;','&loz;','&spades;','&clubs;','&hearts;','&diams;');
var arr2 = new Array('&#160;','&#161;','&#162;','&#163;','&#164;','&#165;','&#166;','&#167;','&#168;','&#169;','&#170;','&#171;','&#172;','&#173;','&#174;','&#175;','&#176;','&#177;','&#178;','&#179;','&#180;','&#181;','&#182;','&#183;','&#184;','&#185;','&#186;','&#187;','&#188;','&#189;','&#190;','&#191;','&#192;','&#193;','&#194;','&#195;','&#196;','&#197;','&#198;','&#199;','&#200;','&#201;','&#202;','&#203;','&#204;','&#205;','&#206;','&#207;','&#208;','&#209;','&#210;','&#211;','&#212;','&#213;','&#214;','&#215;','&#216;','&#217;','&#218;','&#219;','&#220;','&#221;','&#222;','&#223;','&#224;','&#225;','&#226;','&#227;','&#228;','&#229;','&#230;','&#231;','&#232;','&#233;','&#234;','&#235;','&#236;','&#237;','&#238;','&#239;','&#240;','&#241;','&#242;','&#243;','&#244;','&#245;','&#246;','&#247;','&#248;','&#249;','&#250;','&#251;','&#252;','&#253;','&#254;','&#255;','&#34;','&#38;','&#60;','&#62;','&#338;','&#339;','&#352;','&#353;','&#376;','&#710;','&#732;','&#8194;','&#8195;','&#8201;','&#8204;','&#8205;','&#8206;','&#8207;','&#8211;','&#8212;','&#8216;','&#8217;','&#8218;','&#8220;','&#8221;','&#8222;','&#8224;','&#8225;','&#8240;','&#8249;','&#8250;','&#8364;','&#402;','&#913;','&#914;','&#915;','&#916;','&#917;','&#918;','&#919;','&#920;','&#921;','&#922;','&#923;','&#924;','&#925;','&#926;','&#927;','&#928;','&#929;','&#931;','&#932;','&#933;','&#934;','&#935;','&#936;','&#937;','&#945;','&#946;','&#947;','&#948;','&#949;','&#950;','&#951;','&#952;','&#953;','&#954;','&#955;','&#956;','&#957;','&#958;','&#959;','&#960;','&#961;','&#962;','&#963;','&#964;','&#965;','&#966;','&#967;','&#968;','&#969;','&#977;','&#978;','&#982;','&#8226;','&#8230;','&#8242;','&#8243;','&#8254;','&#8260;','&#8472;','&#8465;','&#8476;','&#8482;','&#8501;','&#8592;','&#8593;','&#8594;','&#8595;','&#8596;','&#8629;','&#8656;','&#8657;','&#8658;','&#8659;','&#8660;','&#8704;','&#8706;','&#8707;','&#8709;','&#8711;','&#8712;','&#8713;','&#8715;','&#8719;','&#8721;','&#8722;','&#8727;','&#8730;','&#8733;','&#8734;','&#8736;','&#8743;','&#8744;','&#8745;','&#8746;','&#8747;','&#8756;','&#8764;','&#8773;','&#8776;','&#8800;','&#8801;','&#8804;','&#8805;','&#8834;','&#8835;','&#8836;','&#8838;','&#8839;','&#8853;','&#8855;','&#8869;','&#8901;','&#8968;','&#8969;','&#8970;','&#8971;','&#9001;','&#9002;','&#9674;','&#9824;','&#9827;','&#9829;','&#9830;');
var arr_c = new Array('nbsp','iexcl','cent','pound','curren','yen','brvbar','sect','uml','copy','ordf','laquo','not','shy','reg','macr','deg','plusmn','sup2','sup3','acute','micro','para','middot','cedil','sup1','ordm','raquo','frac14','frac12','frac34','iquest','agrave','aacute','acirc','atilde','Auml','aring','aelig','ccedil','egrave','eacute','ecirc','euml','igrave','iacute','icirc','iuml','eth','ntilde','ograve','oacute','ocirc','otilde','Ouml','times','oslash','ugrave','uacute','ucirc','Uuml','yacute','thorn','szlig','agrave','aacute','acirc','atilde','auml','aring','aelig','ccedil','egrave','eacute','ecirc','euml','igrave','iacute','icirc','iuml','eth','ntilde','ograve','oacute','ocirc','otilde','ouml','divide','oslash','ugrave','uacute','ucirc','uuml','yacute','thorn','yuml','quot','amp','lt','gt','oelig','oelig','scaron','scaron','yuml','circ','tilde','ensp','emsp','thinsp','zwnj','zwj','lrm','rlm','ndash','mdash','lsquo','rsquo','sbquo','ldquo','rdquo','bdquo','dagger','dagger','permil','lsaquo','rsaquo','euro','fnof','alpha','beta','gamma','delta','epsilon','zeta','eta','theta','iota','kappa','lambda','mu','nu','xi','omicron','pi','rho','sigma','tau','upsilon','phi','chi','psi','omega','alpha','beta','gamma','delta','epsilon','zeta','eta','theta','iota','kappa','lambda','mu','nu','xi','omicron','pi','rho','sigmaf','sigma','tau','upsilon','phi','chi','psi','omega','thetasym','upsih','piv','bull','hellip','prime','prime','oline','frasl','weierp','image','real','trade','alefsym','larr','uarr','rarr','darr','harr','crarr','larr','uarr','rarr','darr','harr','forall','part','exist','empty','nabla','isin','notin','ni','prod','sum','minus','lowast','radic','prop','infin','ang','and','or','cap','cup','int','there4','sim','cong','asymp','ne','equiv','le','ge','sub','sup','nsub','sube','supe','oplus','otimes','perp','sdot','lceil','rceil','lfloor','rfloor','lang','rang','loz','spades','clubs','hearts','diams')
var arr_n = new Array('160','161','162','163','164','165','166','167','168','169','170','171','172','173','174','175','176','177','178','179','180','181','182','183','184','185','186','187','188','189','190','191','192','193','194','195','196','197','198','199','200','201','202','203','204','205','206','207','208','209','210','211','212','213','214','215','216','217','218','219','220','221','222','223','224','225','226','227','228','229','230','231','232','233','234','235','236','237','238','239','240','241','242','243','244','245','246','247','248','249','250','251','252','253','254','255','34','38','60','62','338','339','352','353','376','710','732','8194','8195','8201','8204','8205','8206','8207','8211','8212','8216','8217','8218','8220','8221','8222','8224','8225','8240','8249','8250','8364','402','913','914','915','916','917','918','919','920','921','922','923','924','925','926','927','928','929','931','932','933','934','935','936','937','945','946','947','948','949','950','951','952','953','954','955','956','957','958','959','960','961','962','963','964','965','966','967','968','969','977','978','982','8226','8230','8242','8243','8254','8260','8472','8465','8476','8482','8501','8592','8593','8594','8595','8596','8629','8656','8657','8658','8659','8660','8704','8706','8707','8709','8711','8712','8713','8715','8719','8721','8722','8727','8730','8733','8734','8736','8743','8744','8745','8746','8747','8756','8764','8773','8776','8800','8801','8804','8805','8834','8835','8836','8838','8839','8853','8855','8869','8901','8968','8969','8970','8971','9001','9002','9674','9824','9827','9829','9830')
</script>
</head>
<body>
<Table border=0>
<script type="text/javascript">
var cols = 1 ;
var i = 0 ;
while (i < arr1.length)
{
document.write("<TR>") ;
for(var j = 0 ; j < cols ; j++)
{
if (arr1[i])
{
document.write('<TD width="1%"align="center" style="font-size: 11pt; font-weight:bold;">') ;
document.write(arr1[i]) ;
document.write("<\/TD>") ;
document.write('<TD width="1%" align="center" style="font-size: 10pt; ">') ;
document.write(arr_c[i]) ;
document.write("<\/TD>") ;
document.write('<TD width="1%" align="center" style="font-size: 10pt;">') ;
document.write(arr_n[i]) ;
document.write("<\/TD>") ;
document.write("<TD>&nbsp;<\/TD>");
}
else
document.write("<TD>&nbsp;<\/TD><TD>&nbsp;<\/TD><TD>&nbsp;<\/TD><TD style='font-size: 10pt; border-right:blue;'>&nbsp;<\/TD>") ;
i++ ;
}
document.write("<\/TR>") ;
}
</script>
</table>
</body>
<html>

View File

@@ -0,0 +1,711 @@
use strict;
my $count = 0;
my $skip = 0;
while(<DATA>) {
next if /^\s+/;
if ($skip) {
$skip=0;
next;
}
$count++ if /^&#/;
$count++ if /^&\w/;
# print "$count: ";
print;
if($count == 2) {
$count = 0;
print "\n";
$skip = 1;
}
}
# print $count, "\n";
__DATA__
"
&#34;
&quot;
quotation mark
'
&#39;
&apos;
apostrophe 
&
&#38;
&amp;
ampersand
<
&#60;
&lt;
less-than
>
&#62;
&gt;
greater-than
¡
&#161;
&iexcl;
inverted exclamation mark
¢
&#162;
&cent;
cent
£
&#163;
&pound;
pound
¤
&#164;
&curren;
currency
¥
&#165;
&yen;
yen
¦
&#166;
&brvbar;
broken vertical bar
§
&#167;
&sect;
section
¨
&#168;
&uml;
spacing diaeresis
©
&#169;
&copy;
copyright
ª
&#170;
&ordf;
feminine ordinal indicator
«
&#171;
&laquo;
angle quotation mark (left)
¬
&#172;
&not;
negation
­
&#173;
&shy;
soft hyphen
®
&#174;
&reg;
registered trademark
¯
&#175;
&macr;
spacing macron
°
&#176;
&deg;
degree
±
&#177;
&plusmn;
plus-or-minus 
²
&#178;
&sup2;
superscript 2
³
&#179;
&sup3;
superscript 3
´
&#180;
&acute;
spacing acute
µ
&#181;
&micro;
micro
&#182;
&para;
paragraph
·
&#183;
&middot;
middle dot
¸
&#184;
&cedil;
spacing cedilla
¹
&#185;
&sup1;
superscript 1
º
&#186;
&ordm;
masculine ordinal indicator
»
&#187;
&raquo;
angle quotation mark (right)
¼
&#188;
&frac14;
fraction 1/4
½
&#189;
&frac12;
fraction 1/2
¾
&#190;
&frac34;
fraction 3/4
¿
&#191;
&iquest;
inverted question mark
×
&#215;
&times;
multiplication
÷
&#247;
&divide;
division
&#8704;
&forall;
for all
&#8706;
&part;
part
&#8719;
&prod;
prod
&#8721;
&sum;
sum
&#8722;
&minus;
minus
&#8734;
&infin;
infinity
&#8745;
&cap;
cap
&#8747;
&int;
integral
&#8776;
&asymp;
almost equal
&#8800;
&ne;
not equal
&#8801;
&equiv;
equivalent
&#8804;
&le;
less or equal
&#8805;
&ge;
greater or equal
Α
&#913;
&Alpha;
Alpha
Β
&#914;
&Beta;
Beta
Γ
&#915;
&Gamma;
Gamma
Δ
&#916;
&Delta;
Delta
Ε
&#917;
&Epsilon;
Epsilon
Ζ
&#918;
&Zeta;
Zeta
Η
&#919;
&Eta;
Eta
Θ
&#920;
&Theta;
Theta
Ι
&#921;
&Iota;
Iota
Κ
&#922;
&Kappa;
Kappa
Λ
&#923;
&Lambda;
Lambda
Μ
&#924;
&Mu;
Mu
Ν
&#925;
&Nu;
Nu
Ξ
&#926;
&Xi;
Xi
Ο
&#927;
&Omicron;
Omicron
Π
&#928;
&Pi;
Pi
Ρ
&#929;
&Rho;
Rho
Σ
&#931;
&Sigma;
Sigma
Τ
&#932;
&Tau;
Tau
Υ
&#933;
&Upsilon;
Upsilon
Φ
&#934;
&Phi;
Phi
Χ
&#935;
&Chi;
Chi
Ψ
&#936;
&Psi;
Psi
Ω
&#937;
&Omega;
Omega
 
α
&#945;
&alpha;
alpha
β
&#946;
&beta;
beta
γ
&#947;
&gamma;
gamma
δ
&#948;
&delta;
delta
ε
&#949;
&epsilon;
epsilon
ζ
&#950;
&zeta;
zeta
η
&#951;
&eta;
eta
θ
&#952;
&theta;
theta
ι
&#953;
&iota;
iota
κ
&#954;
&kappa;
kappa
λ
&#955;
&lambda;
lambda
μ
&#956;
&mu;
mu
ν
&#957;
&nu;
nu
ξ
&#958;
&xi;
xi
ο
&#959;
&omicron;
omicron
π
&#960;
&pi;
pi
ρ
&#961;
&rho;
rho
ς
&#962;
&sigmaf;
sigmaf
σ
&#963;
&sigma;
sigma
τ
&#964;
&tau;
tau
υ
&#965;
&upsilon;
upsilon
φ
&#966;
&phi;
phi
χ
&#967;
&chi;
chi
ψ
&#968;
&psi;
psi
ω
&#969;
&omega;
omega
Œ
&#338;
&OElig;
capital ligature OE
œ
&#339;
&oelig;
small ligature oe
Š
&#352;
&Scaron;
capital S with caron
š
&#353;
&scaron;
small S with caron
Ÿ
&#376;
&Yuml;
capital Y with diaeres
ƒ
&#402;
&fnof;
f with hook
ˆ
&#710;
&circ;
modifier letter circumflex accent
˜
&#732;
&tilde;
small tilde
&#8204;
&zwnj;
zero width non-joiner
&#8205;
&zwj;
zero width joiner
&#8206;
&lrm;
left-to-right mark
&#8207;
&rlm;
right-to-left mark
&#8211;
&ndash;
en dash
&#8212;
&mdash;
em dash
&#8216;
&lsquo;
left single quotation mark
&#8217;
&rsquo;
right single quotation mark
&#8218;
&sbquo;
single low-9 quotation mark
&#8220;
&ldquo;
left double quotation mark
&#8221;
&rdquo;
right double quotation mark
&#8222;
&bdquo;
double low-9 quotation mark
&#8224;
&dagger;
dagger
&#8225;
&Dagger;
double dagger
&#8226;
&bull;
bullet
&#8230;
&hellip;
horizontal ellipsis
&#8240;
&permil;
per mille 
&#8242;
&prime;
minutes
&#8243;
&Prime;
seconds
&#8249;
&lsaquo;
single left angle quotation
&#8250;
&rsaquo;
single right angle quotation
&#8254;
&oline;
overline
&#8364;
&euro;
euro
&#8482;
&trade;
trademark
&#8592;
&larr;
left arrow
&#8593;
&uarr;
up arrow
&#8594;
&rarr;
right arrow
&#8595;
&darr;
down arrow
&#8596;
&harr;
left right arrow
&#9674;
&loz;
lozenge
&#9824;
&spades;
spade
&#9827;
&clubs;
club
&#9829;
&hearts;
heart
&#9830;
&diams;
diamond

View File

@@ -0,0 +1,718 @@
"
&#34;
&quot;
quotation mark
'
&#39;
&apos; (does not work in IE)
apostrophe 
&
&#38;
&amp;
ampersand
<
&#60;
&lt;
less-than
>
&#62;
&gt;
greater-than
Note: Entity names are case sensitive!
¡
&#161;
&iexcl;
inverted exclamation mark
¢
&#162;
&cent;
cent
£
&#163;
&pound;
pound
¤
&#164;
&curren;
currency
¥
&#165;
&yen;
yen
¦
&#166;
&brvbar;
broken vertical bar
§
&#167;
&sect;
section
¨
&#168;
&uml;
spacing diaeresis
©
&#169;
&copy;
copyright
ª
&#170;
&ordf;
feminine ordinal indicator
«
&#171;
&laquo;
angle quotation mark (left)
¬
&#172;
&not;
negation
­
&#173;
&shy;
soft hyphen
®
&#174;
&reg;
registered trademark
¯
&#175;
&macr;
spacing macron
°
&#176;
&deg;
degree
±
&#177;
&plusmn;
plus-or-minus 
²
&#178;
&sup2;
superscript 2
³
&#179;
&sup3;
superscript 3
´
&#180;
&acute;
spacing acute
µ
&#181;
&micro;
micro
&#182;
&para;
paragraph
·
&#183;
&middot;
middle dot
¸
&#184;
&cedil;
spacing cedilla
¹
&#185;
&sup1;
superscript 1
º
&#186;
&ordm;
masculine ordinal indicator
»
&#187;
&raquo;
angle quotation mark (right)
¼
&#188;
&frac14;
fraction 1/4
½
&#189;
&frac12;
fraction 1/2
¾
&#190;
&frac34;
fraction 3/4
¿
&#191;
&iquest;
inverted question mark
×
&#215;
&times;
multiplication
÷
&#247;
&divide;
division
&#8704;
&forall;
for all
&#8706;
&part;
part
&#8719;
&prod;
prod
&#8721;
&sum;
sum
&#8722;
&minus;
minus
&#8734;
&infin;
infinity
&#8745;
&cap;
cap
&#8747;
&int;
integral
&#8776;
&asymp;
almost equal
&#8800;
&ne;
not equal
&#8801;
&equiv;
equivalent
&#8804;
&le;
less or equal
&#8805;
&ge;
greater or equal
Α
&#913;
&Alpha;
Alpha
Β
&#914;
&Beta;
Beta
Γ
&#915;
&Gamma;
Gamma
Δ
&#916;
&Delta;
Delta
Ε
&#917;
&Epsilon;
Epsilon
Ζ
&#918;
&Zeta;
Zeta
Η
&#919;
&Eta;
Eta
Θ
&#920;
&Theta;
Theta
Ι
&#921;
&Iota;
Iota
Κ
&#922;
&Kappa;
Kappa
Λ
&#923;
&Lambda;
Lambda
Μ
&#924;
&Mu;
Mu
Ν
&#925;
&Nu;
Nu
Ξ
&#926;
&Xi;
Xi
Ο
&#927;
&Omicron;
Omicron
Π
&#928;
&Pi;
Pi
Ρ
&#929;
&Rho;
Rho
Σ
&#931;
&Sigma;
Sigma
Τ
&#932;
&Tau;
Tau
Υ
&#933;
&Upsilon;
Upsilon
Φ
&#934;
&Phi;
Phi
Χ
&#935;
&Chi;
Chi
Ψ
&#936;
&Psi;
Psi
Ω
&#937;
&Omega;
Omega
 
α
&#945;
&alpha;
alpha
β
&#946;
&beta;
beta
γ
&#947;
&gamma;
gamma
δ
&#948;
&delta;
delta
ε
&#949;
&epsilon;
epsilon
ζ
&#950;
&zeta;
zeta
η
&#951;
&eta;
eta
θ
&#952;
&theta;
theta
ι
&#953;
&iota;
iota
κ
&#954;
&kappa;
kappa
λ
&#955;
&lambda;
lambda
μ
&#956;
&mu;
mu
ν
&#957;
&nu;
nu
ξ
&#958;
&xi;
xi
ο
&#959;
&omicron;
omicron
π
&#960;
&pi;
pi
ρ
&#961;
&rho;
rho
ς
&#962;
&sigmaf;
sigmaf
σ
&#963;
&sigma;
sigma
τ
&#964;
&tau;
tau
υ
&#965;
&upsilon;
upsilon
φ
&#966;
&phi;
phi
χ
&#967;
&chi;
chi
ψ
&#968;
&psi;
psi
ω
&#969;
&omega;
omega
 
 
 
 
ϑ
&#977;
&thetasym;
theta symbol
ϒ
&#978;
&upsih;
upsilon symbol
ϖ
&#982;
&piv;
pi symbol
Other Entities Supported by HTML
Character
Entity Number
Entity Name
Description
Œ
&#338;
&OElig;
capital ligature OE
œ
&#339;
&oelig;
small ligature oe
Š
&#352;
&Scaron;
capital S with caron
š
&#353;
&scaron;
small S with caron
Ÿ
&#376;
&Yuml;
capital Y with diaeres
ƒ
&#402;
&fnof;
f with hook
ˆ
&#710;
&circ;
modifier letter circumflex accent
˜
&#732;
&tilde;
small tilde
&#8204;
&zwnj;
zero width non-joiner
&#8205;
&zwj;
zero width joiner
&#8206;
&lrm;
left-to-right mark
&#8207;
&rlm;
right-to-left mark
&#8211;
&ndash;
en dash
&#8212;
&mdash;
em dash
&#8216;
&lsquo;
left single quotation mark
&#8217;
&rsquo;
right single quotation mark
&#8218;
&sbquo;
single low-9 quotation mark
&#8220;
&ldquo;
left double quotation mark
&#8221;
&rdquo;
right double quotation mark
&#8222;
&bdquo;
double low-9 quotation mark
&#8224;
&dagger;
dagger
&#8225;
&Dagger;
double dagger
&#8226;
&bull;
bullet
&#8230;
&hellip;
horizontal ellipsis
&#8240;
&permil;
per mille 
&#8242;
&prime;
minutes
&#8243;
&Prime;
seconds
&#8249;
&lsaquo;
single left angle quotation
&#8250;
&rsaquo;
single right angle quotation
&#8254;
&oline;
overline
&#8364;
&euro;
euro
&#8482;
&trade;
trademark
&#8592;
&larr;
left arrow
&#8593;
&uarr;
up arrow
&#8594;
&rarr;
right arrow
&#8595;
&darr;
down arrow
&#8596;
&harr;
left right arrow
&#9674;
&loz;
lozenge
&#9824;
&spades;
spade
&#9827;
&clubs;
club
&#9829;
&hearts;
heart
&#9830;
&diams;
diamond
&#8660;
&hArr;
&#8658;
&rArr;
&#8656;
&lArr;
&8592;
&larr;

View File

@@ -0,0 +1,231 @@
use strict;
while(<DATA>) {
chomp;
my($icon, $num, $character) = split;
next if !$icon || !$num || ! $character;
# $icon = trim($icon);
# $num = trim($num);
# $character=trim($character);
print "$icon\n$num\n$character\n\n";
}
sub trim {
my $str = shift;
$str =~ s/^\s+//;
$str =~ s/\s+$//;
return $str;
}
__DATA__
nbsp 160
¡ iexcl 161
¢ cent 162
£ pound 163
¤ curren 164
¥ yen 165
¦ brvbar 166
§ sect 167
¨ uml 168
© copy 169
ª ordf 170
« laquo 171
¬ not 172
­ shy 173
® reg 174
¯ macr 175
° deg 176
± plusmn 177
² sup2 178
³ sup3 179
´ acute 180
µ micro 181
para 182
· middot 183
¸ cedil 184
¹ sup1 185
º ordm 186
» raquo 187
¼ frac14 188
½ frac12 189
¾ frac34 190
¿ iquest 191
à agrave 192
á aacute 193
â acirc 194
ã atilde 195
Ä Auml 196
å aring 197
æ aelig 198
ç ccedil 199
è egrave 200
é eacute 201
ê ecirc 202
ë euml 203
ì igrave 204
í iacute 205
î icirc 206
ï iuml 207
ð eth 208
ñ ntilde 209
ò ograve 210
ó oacute 211
ô ocirc 212
õ otilde 213
Ö Ouml 214
× times 215
ø oslash 216
ù ugrave 217
ú uacute 218
û ucirc 219
Ü Uuml 220
ý yacute 221
þ thorn 222
ß szlig 223
à agrave 224
á aacute 225
â acirc 226
ã atilde 227
ä auml 228
å aring 229
æ aelig 230
ç ccedil 231
è egrave 232
é eacute 233
ê ecirc 234
ë euml 235
ì igrave 236
í iacute 237
î icirc 238
ï iuml 239
ð eth 240
ñ ntilde 241
ò ograve 242
ó oacute 243
ô ocirc 244
õ otilde 245
ö ouml 246
÷ divide 247
ø oslash 248
ù ugrave 249
ú uacute 250
û ucirc 251
ü uuml 252
ý yacute 253
þ thorn 254
ÿ yuml 255
" quot 34
& amp 38
< lt 60
> gt 62
œ oelig 338
œ oelig 339
š scaron 352
š scaron 353
ÿ yuml 376
ˆ circ 710
˜ tilde 732
ensp 8194
emsp 8195
thinsp 8201
ndash 8211
mdash 8212
lsquo 8216
rsquo 8217
sbquo 8218
ldquo 8220
rdquo 8221
bdquo 8222
dagger 8224
dagger 8225
permil 8240
lsaquo 8249
rsaquo 8250
euro 8364
ƒ fnof 402
α alpha 913
β beta 914
γ gamma 915
δ delta 916
ε epsilon 917
ζ zeta 918
η eta 919
θ theta 920
ι iota 921
κ kappa 922
λ lambda 923
μ mu 924
ν nu 925
ξ xi 926
ο omicron 927
π pi 928
ρ rho 929
σ sigma 931
τ tau 932
υ upsilon 933
φ phi 934
χ chi 935
ψ psi 936
ω omega 937
α alpha 945
β beta 946
γ gamma 947
δ delta 948
ε epsilon 949
ζ zeta 950
η eta 951
θ theta 952
ι iota 953
κ kappa 954
λ lambda 955
μ mu 956
ν nu 957
ξ xi 958
ο omicron 959
π pi 960
ρ rho 961
ς sigmaf 962
σ sigma 963
τ tau 964
υ upsilon 965
φ phi 966
χ chi 967
ψ psi 968
ω omega 969
bull 8226
hellip 8230
prime 8242
prime 8243
oline 8254
frasl 8260
larr 8592
uarr 8593
rarr 8594
darr 8595
harr 8596
larr 8656
uarr 8657
rarr 8658
darr 8659
harr 8660
part 8706
prod 8719
sum 8721
minus 8722
radic 8730
infin 8734
cap 8745
int 8747
asymp 8776
ne 8800
equiv 8801
le 8804
ge 8805
loz 9674
spades 9824
clubs 9827
hearts 9829
diams 9830

View File

@@ -0,0 +1,209 @@
nbsp 160
¡ iexcl 161
¢ cent 162
£ pound 163
¤ curren 164
¥ yen 165
¦ brvbar 166
§ sect 167
¨ uml 168
© copy 169
ª ordf 170
« laquo 171
¬ not 172
­ shy 173
® reg 174
¯ macr 175
° deg 176
± plusmn 177
² sup2 178
³ sup3 179
´ acute 180
µ micro 181
¶ para 182
· middot 183
¸ cedil 184
¹ sup1 185
º ordm 186
» raquo 187
¼ frac14 188
½ frac12 189
¾ frac34 190
¿ iquest 191
à agrave 192
á aacute 193
â acirc 194
ã atilde 195
Ä Auml 196
å aring 197
æ aelig 198
ç ccedil 199
è egrave 200
é eacute 201
ê ecirc 202
ë euml 203
ì igrave 204
í iacute 205
î icirc 206
ï iuml 207
ð eth 208
ñ ntilde 209
ò ograve 210
ó oacute 211
ô ocirc 212
õ otilde 213
Ö Ouml 214
× times 215
ø oslash 216
ù ugrave 217
ú uacute 218
û ucirc 219
Ü Uuml 220
ý yacute 221
þ thorn 222
ß szlig 223
à agrave 224
á aacute 225
â acirc 226
ã atilde 227
ä auml 228
å aring 229
æ aelig 230
ç ccedil 231
è egrave 232
é eacute 233
ê ecirc 234
ë euml 235
ì igrave 236
í iacute 237
î icirc 238
ï iuml 239
ð eth 240
ñ ntilde 241
ò ograve 242
ó oacute 243
ô ocirc 244
õ otilde 245
ö ouml 246
÷ divide 247
ø oslash 248
ù ugrave 249
ú uacute 250
û ucirc 251
ü uuml 252
ý yacute 253
þ thorn 254
ÿ yuml 255
" quot 34
& amp 38
< lt 60
> gt 62
œ oelig 338
œ oelig 339
š scaron 352
š scaron 353
ÿ yuml 376
ˆ circ 710
˜ tilde 732
ensp 8194
emsp 8195
thinsp 8201
ndash 8211
— mdash 8212
lsquo 8216
rsquo 8217
sbquo 8218
“ ldquo 8220
” rdquo 8221
„ bdquo 8222
† dagger 8224
† dagger 8225
‰ permil 8240
lsaquo 8249
rsaquo 8250
€ euro 8364
ƒ fnof 402
α alpha 913
β beta 914
γ gamma 915
δ delta 916
ε epsilon 917
ζ zeta 918
η eta 919
θ theta 920
ι iota 921
κ kappa 922
λ lambda 923
μ mu 924
ν nu 925
ξ xi 926
ο omicron 927
π pi 928
ρ rho 929
σ sigma 931
τ tau 932
υ upsilon 933
φ phi 934
χ chi 935
ψ psi 936
ω omega 937
α alpha 945
β beta 946
γ gamma 947
δ delta 948
ε epsilon 949
ζ zeta 950
η eta 951
θ theta 952
ι iota 953
κ kappa 954
λ lambda 955
μ mu 956
ν nu 957
ξ xi 958
ο omicron 959
π pi 960
ρ rho 961
ς sigmaf 962
σ sigma 963
τ tau 964
υ upsilon 965
φ phi 966
χ chi 967
ψ psi 968
ω omega 969
• bull 8226
… hellip 8230
prime 8242
prime 8243
‾ oline 8254
frasl 8260
← larr 8592
↑ uarr 8593
→ rarr 8594
↓ darr 8595
↔ harr 8596
← larr 8656
↑ uarr 8657
→ rarr 8658
↓ darr 8659
↔ harr 8660
∂ part 8706
∏ prod 8719
∑ sum 8721
minus 8722
√ radic 8730
∞ infin 8734
∩ cap 8745
∫ int 8747
≈ asymp 8776
≠ ne 8800
≡ equiv 8801
≤ le 8804
≥ ge 8805
◊ loz 9674
♠ spades 9824
♣ clubs 9827
♥ hearts 9829
♦ diams 9830

View File

@@ -0,0 +1,45 @@
<?php
/**
*
* @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
* @author
*/
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
include_once (DOKU_INC . 'inc/confutils.php');
class action_plugin_ckgedit_iwiki extends DokuWiki_Action_Plugin {
private $interlinks = null;
/**
* Registers a callback function for a given event
*
* @param Doku_Event_Handler $controller DokuWiki's event controller object
* @return void
*/
public function register(Doku_Event_Handler $controller) {
$controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax_call_unknown');
}
/**
* @param Doku_Event $event event object by reference
* @param mixed $param [the parameters passed as fifth argument to register_hook() when this
* handler was registered]
* @return void
*/
public function handle_ajax_call_unknown(Doku_Event &$event, $param) {
if ($event->data !== 'iwiki_list') {
return;
}
$event->stopPropagation();
$event->preventDefault();
$a = getInterwiki();
ksort($a);
echo json_encode($a);
}
}

View File

@@ -0,0 +1,50 @@
<?php
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../../').'/');
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'action.php');
require_once(DOKU_PLUGIN.'ckgedit/scripts/setsamesite.php');
class action_plugin_ckgedit_mediamanager extends DokuWiki_Action_Plugin {
function __construct()
{
$this->setupLocale();
}
function register(Doku_Event_Handler $controller)
{
$controller->register_hook('MEDIAMANAGER_STARTED', 'AFTER', $this, 'mediaman_started');
$controller->register_hook('MEDIA_UPLOAD_FINISH', 'BEFORE', $this, 'upload_finish');
$controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handle_metafile');
}
function handle_metafile(Doku_Event $event) {
$event->data['script'][] =
array(
'type'=>'text/javascript',
'charset'=>'utf-8',
'_data'=>'',
'src'=>DOKU_BASE.'lib/plugins/ckgedit/scripts/mediamgr.js'
) + ([ 'defer' => 'defer']);
}
function upload_finish(Doku_Event $event) {
if(!preg_match("#^image/#",$event->data[3]) && $_COOKIE['ckgFbType'] == 'image') {
if(!empty($event->data[3]) && strlen($event->data[3]) >30) {
$fname = substr($event->data[3],0,29) . '. . .';
}
else $fname = $event->data[3];
msg($this->getLang('mediamgr_imgonly') . $fname);
setcookieSameSite('ckgFbType', 'image',time()-10);
$event->preventDefault();
}
}
function mediaman_started(Doku_Event $event) {
if ($_GET["onselect"] == "ckg_edit_mediaman_insert") {
setcookieSameSite('ckgFbType', 'image');
} else if ($_GET["onselect"] == "ckg_edit_mediaman_insertlink") {
setcookieSameSite('ckgFbType', 'link');
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,464 @@
<?php
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../../').'/');
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
if(!defined('DOKU_MEDIA')) define('DOKU_MEDIA',DOKU_INC.'data/media/');
define ('BROKEN_IMAGE', DOKU_BASE . 'lib/plugins/ckgedit/fckeditor/userfiles/blink.jpg?nolink&33x34');
require_once(DOKU_PLUGIN.'action.php');
if(!defined('FCK_ACTION_SUBDIR')) define('FCK_ACTION_SUBDIR', realpath(dirname(__FILE__)) . '/');
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
class action_plugin_ckgedit_save extends DokuWiki_Action_Plugin {
var $helper = false;
function register(Doku_Event_Handler $controller) {
$controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, 'ckgedit_save_preprocess');
}
function ckgedit_save_preprocess(Doku_Event $event){
global $ACT,$INPUT;
$this->helper = $this->loadhelper('ckgedit');
if (!isset($_REQUEST['ckgedit']) || ! is_array($ACT) || !(isset($ACT['save']) || isset($ACT['preview']))) return;
if (isset($_REQUEST["fontdel"]) ) {
msg($this->getLang("fontdel"),1);
}
if (isset($_REQUEST["formatdel"]) ) {
msg($this->getLang("formatdel"),1);
}
$img_size = $INPUT->int('broken_image');
if($img_size) msg($this->getLang('broken_image') . $img_size/1000000 . 'M' );
global $TEXT, $conf;
if (!$TEXT) return;
$preserve_enc = $this->getConf('preserve_enc');
$deaccent = $conf['deaccent'] == 0 ? false : true;
$TEXT = $_REQUEST['fck_wikitext'];
if(!preg_match('/^\s+(\-|\*)/',$TEXT)) {
$TEXT = trim($TEXT);
}
$TEXT = preg_replace_callback(
'|\{\{data:(.*?);base64|ms',
create_function(
'$matches',
'if(!preg_match("/image/",$matches[1])) {
return "{{data:image/jpeg;base64";
}
return $matches[0];'
),$TEXT);
if(strpos($TEXT,'data:image') !== false) {
$TEXT = preg_replace_callback(
'|\{\{(\s*)data:image\/(\w+;base64,\s*)(.*?)\?nolink&(\s*)\}\}|ms',
create_function(
'$matches',
'list($ext,$base) = explode(";",$matches[2]);
if($ext == "jpeg" || $ext == "tiff") $ext = "jpg";
if(function_exists("imagecreatefromstring") && !imagecreatefromstring (base64_decode($matches[3]))) {
msg("Clipboard paste: invalid $ext image format");
return "{{" . BROKEN_IMAGE . "}}";
}
global $INFO,$conf;
$ns = getNS($INFO["id"]);
$ns = trim($ns);
if(!empty($ns)) {
$ns = ":$ns:";
$dir = str_replace(":","/",$ns);
}
else { // root namespace
$dir = "/";
$ns = ":";
}
$fn = md5($matches[3]) . ".$ext";
$path = $conf["mediadir"] . $dir . $fn;
@io_makeFileDir($path);
if(!file_exists($path)) {
@file_put_contents($path, base64_decode($matches[3]));
global $lang;
$id = $dir . $fn;
$id = str_replace("/",":",$id);
addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_CREATE, $lang["created"],"", null, strlen(base64_decode($matches[3])));
}
else {
msg("file for this image previousely saved",2);
}
$left = "{{";
$right = "}}";
if($matches[1]) $left .= $matches[1];
if($matches[4]) $right = $matches[4] . $right;
$retv = "$left" . $ns. $fn . "$right";
return $retv;'
),
$TEXT
);
}
$TEXT = str_replace('%%', "FCKGPERCENTESC", $TEXT);
if($deaccent || $preserve_enc) {
$TEXT = preg_replace_callback('/^(.*?)(\[\[.*?\]\])*(.*?)$/ms',
create_function(
'$matches',
'$matches[1] = preg_replace("/%([A-F0-9]{1,3})/i", "URLENC_PERCENT$1", $matches[1]);
$matches[2] = preg_replace("/%([A-F0-9]{1,3})/i", "URLENC_PERCENT$1", $matches[2]);
$matches[3] = preg_replace("/%([A-F0-9]{1,3})/i", "URLENC_PERCENT$1", $matches[3]);
return $matches[1].$matches[2].$matches[3];'
),
$TEXT
);
}
$TEXT = rawurldecode($TEXT);
$TEXT = preg_replace('/NOWIKI_%_NOWIKI_%_/', '%%',$TEXT);
$TEXT = preg_replace('/URLENC_PERCENT/', '%',$TEXT);
$TEXT = preg_replace('/NOWIKI_(.)_/', '$1',$TEXT);
/* preserve newlines in code blocks */
$TEXT = preg_replace_callback(
'/(<code>|<file>)(.*?)(<\/code>|<\/file>)/ms',
create_function(
'$matches',
'return str_replace("\n", "__code_NL__",$matches[0]);'
),
$TEXT
);
$TEXT = preg_replace('/^\s*[\r\n]$/ms',"__n__", $TEXT);
$TEXT = preg_replace('/oIWIKIo|cIWIKIc/ms',"", $TEXT);
$TEXT = preg_replace('/\r/ms',"", $TEXT);
$TEXT = preg_replace('/^\s+(?=\^|\|)/ms',"", $TEXT);
$TEXT = preg_replace('/__n__/',"\n", $TEXT);
$TEXT = str_replace("__code_NL__","\n", $TEXT);
$TEXT = str_replace("FCKGPERCENTESC", '%%', $TEXT);
if($this->getConf('complex_tables')) {
$TEXT = str_replace('~~COMPLEX_TABLES~~','',$TEXT);
}
$TEXT .= "\n";
// Removes relics of markup characters left over after acronym markup has been removed
//$TEXT = preg_replace('/([\*\/_]{2})\s+\\1\s*([A-Z]+)\s*\\1+/ms',"$2",$TEXT);
$pos = strpos($TEXT, 'MULTI_PLUGIN_OPEN');
if($pos !== false) {
$TEXT = preg_replace_callback(
'|MULTI_PLUGIN_OPEN.*?MULTI_PLUGIN_CLOSE|ms',
create_function(
'$matches',
'return preg_replace("/\\\\\\\\/ms","\n",$matches[0]);'
),
$TEXT
);
$TEXT = preg_replace_callback(
'|MULTI_PLUGIN_OPEN.*?MULTI_PLUGIN_CLOSE|ms',
create_function(
'$matches',
'return preg_replace("/^\s+/ms","",$matches[0]);'
),
$TEXT
);
$TEXT = str_replace("~~MULTI_PLUGIN_OPEN~~","~~MULTI_PLUGIN_OPEN~~\n",$TEXT);
}
if(strpos($TEXT,'L_PARgr') !== false) {
$TEXT = preg_replace_callback(
'|\(\((.*?)\)\)|ms',
create_function(
'$matches',
'return "((" . trim($matches[1]) . "))"; '
),
$TEXT
);
$TEXT = str_replace('L_PARgr', '(',$TEXT);
$TEXT = str_replace('R_PARgr', ')',$TEXT);
}
/*
Restructure numbered syntax highlighting 13/09/2019
*/
$TEXT = preg_replace_callback("#<code\s+(\w+)>.*?(\[enable_line_numbers.*?\])\s*\*\/#ms",
function($matches) {
return '<code ' . $matches[1] .' ' . $matches[2] .'>';
}, $TEXT
) ;
$this->replace_entities();
/*Remove urls from linkonly images inserted after second and additional saves, resulting in multiple urls corrupting HTML output */
$TEXT = preg_replace("/\{\{http:\/\/.*?fetch.php\?media=(.*?linkonly.*?)\}\}/",'{{' . "$1" .'}}',$TEXT);
$TEXT = str_replace('< nowiki >', '%%<nowiki>%%',$TEXT);
$TEXT = preg_replace_callback(
'#\[\[(.*?)\]\]#ms',
function($matches){
if($this->helper->has_plugin('button') && strpos($matches[0], '[[{') === 0) {
return $matches[0];
}
if(preg_match('/[\w\.]+\s*>/',$matches[0])) {
return $matches[0];
}
if(preg_match('/([\w\.\-]+@[\w\.\-]+\.\w{2,3})\?.*?\|\1/i',$matches[0])) {
return $matches[0];
}
global $ID, $conf;
$qs = "";
if(preg_match("/\[\[http/",$matches[0])) return $matches[0]; //not an internal link
if(preg_match("#\[\[.*?\|\{\{.*?\}\}\]\]#", $matches[0],$matches_1)) { // media file
if(!$this->getConf('rel_links')) {
return $matches[0];
}
$link = explode('?',$matches[1]);
list($link_id,$linktext) = explode('|', $link[0]);
$current_id = $this->abs2rel($link_id,$ID);
return preg_replace("#$link_id#",$current_id, $matches[0]);
}
$link = explode('?',$matches[1]);
if($link[1]) {
$link_id = $link[0];
list($qs,$linktext) = explode('|', $link[1]);
}
else list($link_id,$linktext) = explode('|', $link[0]);
if($this->getConf('rel_links'))
$current_id = $this->abs2rel($link_id,$ID);
else $current_id = $link_id;
if($qs) $current_id .= "?$qs";
//as in _getLinkTitle in xhtml.php
if(useHeading('content')) {
$tmp_linktext = p_get_first_heading($link_id);
if(trim($linktext) == trim($tmp_linktext)) {
$linktext = "";
}
}
$tmp_ar = explode(':',$link_id);
$tmp_id = array_pop($tmp_ar);
if(!useHeading('content') && (trim($linktext,'.: ' ) == trim($tmp_id,'.: ')))
$linktext = "";
$current_id = $current_id.'|'.$linktext;
return '[[' . $current_id .']]';
},
$TEXT
);
if($this->getConf('rel_links')) {
$TEXT = preg_replace_callback(
'#\{\{(\s*)(.*?)(\s*)\}\}#ms',
function($matches) {
global $ID;
$link = explode('?',$matches[2]);
list($link_id,$linktext) = explode('|', $link[0]);
$rel = $this->abs2rel($link_id,$ID);
if(!empty($link[1])) $rel .= '?' . $link[1];
if(!empty($linktext)) $rel = $rel.'|'.$linktext;
return '{{' .$matches[1] . $rel . $matches[3] .'}}';
},
$TEXT
);
}
/* 11 Dec 2013 see comment below
Remove discarded font syntax
*/
$TEXT = preg_replace_callback(
'|_REMOVE_FONTS_START_(.*?)_REMOVE_FONTS_END_|ms',
create_function(
'$matches',
'$matches[1] = preg_replace("/<font.*?>/ms","",$matches[1]);
return preg_replace("/<\/font>/ms","",$matches[1]);'
),
$TEXT
);
/*
6 April 2013
Removed newlines and spaces from beginnings and ends of text enclosed by font tags. Too subtle for javascript.
*/
$TEXT = preg_replace_callback(
'|(<font.*?>)(.*?)(?=</font>)|ms',
create_function(
'$matches',
'$matches[2]=preg_replace("/^\s+/ms","",$matches[2]);
$matches[2]=preg_replace("/\s+$/ms","",$matches[2]);
return $matches[1]. $matches[2];'
),
$TEXT
);
/* insure space before and after ckgedit font oprning and closing tags*/
$TEXT = preg_replace("/<font.*?>\s+<\/font>/","", $TEXT);
$TEXT = preg_replace("/<font/ms"," <font", $TEXT); // add space
$TEXT = preg_replace("/<\/font>/ms","</font> ", $TEXT);
$TEXT = preg_replace('/\s{2,}<font/ms',' <font',$TEXT); // remove duplicate spaces
$TEXT = preg_replace('/font>{2,}/ms',' font> ',$TEXT);
$TEXT = preg_replace('/__QUOTE__/ms',">",$TEXT);
$TEXT = preg_replace('/[\t\x20]+$/ms',"",$TEXT);
$TEXT = preg_replace('/\n{4,}/ms',"\n\n",$TEXT);
$TEXT = preg_replace('/\n{3,}/ms',"\n\n",$TEXT);
/*first pass for blockquotes*/
$TEXT = preg_replace_callback(
"#^>+(.*?)\\\\\\\\#ms",
function($matches) {
return str_replace('\\',"",$matches[0]);
},
$TEXT
);
/* remove extra line-feeds following in-table code blocks
make sure cell-ending pipe not mistaken for a following link divider
*/
$TEXT = preg_replace_callback(
'#(/code|/file)\>.*?\n\|#ms',
function($matches) {
$matches[0] = preg_replace("/([\S\s\w\:])\\\\\\\\(\w)/ms","$1@#@$2",$matches[0]); //retain backslashes inside code blocks
$matches[0] = preg_replace("/(\w+)\\\\\\\\(\w)/ms","$1@#@",$matches[0]);
$matches[0] = preg_replace("/\\\\(\w+)/ms","@!@$1",$matches[0]);
$matches[0] = preg_replace("/(\w+)\\\\/ms","@!@$1",$matches[0]);
$matches[0] = str_replace("\\", "",$matches[0]);
$matches[0] = str_replace("@!@",'\\',$matches[0]);
return str_replace("@#@", "\\\\",$matches[0]);
},
$TEXT
);
/* reformat table cell after removing extra line-feeds, above */
$TEXT = preg_replace_callback(
'#\|[\s\n]+(\<file.*?\>)(.*?)(\<\/file>\s*.*?)\n?\|#ms',
function($matches) {
//$ret = '</' . $matches[1] . '>' . str_replace('\\',"",$matches[2]) . '|';
$matches[3] = preg_replace('/\n+/',"",$matches[3] );
$matches[3] = preg_replace('/\s+$/',"",$matches[3] ) . '|';
return '|' . $matches[1] . $matches[2] . str_replace("\\ ","",$matches[3]);
},
$TEXT
);
/* Feb 23 2019
remove spaces and line feeds between beginning of table cell and start of code block
*/
$TEXT = preg_replace_callback(
'#\|(.*?)[\s\n]+\<(code|file)\>#ms',
function($matches) {
return '|' . $matches[1] ."\n<". $matches[2] .'>' . "\n";
},$TEXT
);
/*remove line feeds following block */
$TEXT = preg_replace_callback(
'#\<\/(code|file)\>([^\w\|]+)#ms',
function($matches) {
$matches[2] = str_replace(':\\', '~~WIN__DIR~~',$matches[2]);
$matches[2] = preg_replace('#([\w;.:=\:])\\\\#ms', "$1_bSL_",$matches[2]); //protect backslashes in Windows paths
$ret = '</' . $matches[1] . '>' . str_replace("\\","",$matches[2]);
$ret = str_replace( '_bSL_', '\\',$ret);
$ret = str_replace( '~~WIN__DIR~~', ':\\',$ret);
return "\n" .$ret;
},$TEXT
);
$TEXT = str_replace('CBL__Bksl','\\',$TEXT);
$TEXT = preg_replace("/<code\s+file/ms",'<code ',$TEXT);
$TEXT = preg_replace('#((\\\\){2}\s*)$#', "",$TEXT);
return;
}
function replace_entities() {
global $TEXT;
global $ents;
$serialized = FCK_ACTION_SUBDIR . 'ent.ser';
$ents = unserialize(file_get_contents($serialized));
$TEXT = preg_replace_callback(
'|(&(\w+);)|',
create_function(
'$matches',
'global $ents; return $ents[$matches[2]];'
),
$TEXT
);
}
function write_debug($data) {
return;
if (!$handle = fopen('save.txt', 'a')) {
return;
}
// Write $somecontent to our opened file.
fwrite($handle, "save.php: $data\n");
fclose($handle);
}
/* @auth Sergey Kotov */
//linkPath is the link in the page
//pagePath is absolute path of the page (ns1:ns2:....:page or :ns1:ns2:....:page)
function abs2rel($linkPath,$pagePath){
if ($linkPath[0]==='.'){
// It's already relative
return $linkPath;
}
$aLink=explode(':',$linkPath);
$nLink=count($aLink);
if ($nLink<2){
return $linkPath;
}
$aPage=explode(':',$pagePath);
if(empty($aLink[0])) {
// If linkPath is started by ':'
// Make canonical absolute path ns1:ns2:.....:pageLink (strip leading :)
array_shift($aLink);
if (--$nLink<2) {
return $linkPath;
}
}
if(empty($aPage[0])) {
// If pagePath is started by ':'
// Make canonical absolute path ns1:ns2:.....:page (strip leading :)
array_shift($aPage);
}
$nPage=count($aPage);
$nslEqual=0; // count of equal namespaces from left to right
// Minimal length of these two arrays, page name is not included
$nMin=($nLink<$nPage ? $nLink : $nPage)-1 ;
for ($i=0;$i<$nMin;++$i){
if ($aLink[$i]===$aPage[$i]){
++$nslEqual;
}
else {
break;
}
}
if ($nslEqual==0){
// Link and page from different root namespaces
return $linkPath;
}
// Truncate equal lef namespaces
$aPageDiff=array_slice($aPage,$nslEqual);
$nPageDiff=count($aPageDiff);
$aLinkDiff=array_slice($aLink,$nslEqual);
// Now we have to go up to nPageDiff-1 levels
$aResult=array();
if ($nPageDiff>1){
$aResult=array_fill(0,$nPageDiff-1,'..');
}
else if($nPageDiff == 1) {
$aResult[] = '.';
}
$aResult=array_merge($aResult,$aLinkDiff);
return implode(':', $aResult);
}
} //end of action class
?>

View File

@@ -0,0 +1,73 @@
<?php
/**
*
* @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
* @author Andreas Valder <valder@isf.rwth-aachen.de>
*/
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
class action_plugin_ckgedit_tagapi extends DokuWiki_Action_Plugin {
private $tagplugin = null;
/**
* Registers a callback function for a given event
*
* @param Doku_Event_Handler $controller DokuWiki's event controller object
* @return void
*/
public function register(Doku_Event_Handler $controller) {
$controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax_call_unknown');
}
/**
* @param Doku_Event $event event object by reference
* @param mixed $param [the parameters passed as fifth argument to register_hook() when this
* handler was registered]
* @return void
*/
public function handle_ajax_call_unknown(Doku_Event &$event, $param) {
if ($event->data !== 'tagapi_list') {
return;
}
$event->stopPropagation();
$event->preventDefault();
if ($this->tagplugin = $this->loadHelper('tag')) {
$tags = $this->tagplugin->tagOccurrences(array(), NULL, true);
$a = print_r($tags,true);
// file_put_contents(DOKU_INC . 'tags.txt', $a);
} else {
$tags = array();
}
// sort tags by name ($tags is in the form $tag => $count)
ksort($tags);
echo '{"tags":[';
$firstelement = true;
foreach (array_keys($tags) as $tag) {
if ($firstelement) {
$firstelement = false;
} else {
echo ',';
}
echo '{"name":"'.$this->tagToName($tag).'","id":"'.$tag.'"}';
}
echo']}';
}
private function tagToName($t) {
$exists = false;
$id = $t;
resolve_pageID($this->tagplugin->namespace, $id, $exists);
$name = p_get_first_heading($id, false);
if (empty($name)) {
$name = $t;
} else {
$name = $name;
}
return $name;
}
}