はじまりの大地

このコミットが含まれているのは:
miteruzo
2024-07-08 03:32:47 +09:00
コミット c616a96f53
7749個のファイルの変更、478270行の追加、0行の削除
+29
ファイルの表示
@@ -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
?>
ファイル差分が大きすぎるため省略します 差分を読み込み
長すぎる行があるためファイル差分は表示されません
+55
ファイルの表示
@@ -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;
¡
&#161;
&iexcl;
¢
&#162;
&cent;
£
&#163;
&pound;
長すぎる行があるためファイル差分は表示されません
+948
ファイルの表示
@@ -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;
+61
ファイルの表示
@@ -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'] = ' ';
}
?>
+842
ファイルの表示
@@ -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
+27
ファイルの表示
@@ -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) ®
... …
+52
ファイルの表示
@@ -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>
+711
ファイルの表示
@@ -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
+718
ファイルの表示
@@ -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;
+231
ファイルの表示
@@ -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
+209
ファイルの表示
@@ -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
バイナリファイルは表示されません。
+45
ファイルの表示
@@ -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);
}
}
+50
ファイルの表示
@@ -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');
}
}
}
ファイル差分が大きすぎるため省略します 差分を読み込み
+491
ファイルの表示
@@ -0,0 +1,491 @@
<?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);
}
if (isset($_REQUEST["linkintbl"]) ) {
msg($this->getLang("list_in_table"),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',
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',
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,$ID;
$fn = $this->get_imgpaste_fname($ext);
if(!$fn) {
$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;
}
else {
$path = $conf["mediadir"] . "/$fn";
$path = str_replace(':','/',$path);
}
@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',
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',
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',
function($matches) {
return preg_replace("/\\\\\\\\/ms","\n",$matches[0]);
},
$TEXT
);
$TEXT = preg_replace_callback(
'|MULTI_PLUGIN_OPEN.*?MULTI_PLUGIN_CLOSE|ms',
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',
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',
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',
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',"\n <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 get_imgpaste_fname($ext) {
global $ID;
if(!$this->helper->has_plugin('imgpaste')) return;
if(!$this->getConf('imgpaste')) return;
$imgpaste = plugin_load('action','imgpaste');
$filename = $imgpaste->getConf('filename');
if(!$filename) return false;
$filename = str_replace(
array(
'@NS@',
'@ID@',
'@USER@',
'@PAGE@'
),
array(
getNS($ID),// getNS($INPUT->post->str('id')),
$ID,// $INPUT->post->str('id'),
$_SERVER['REMOTE_USER'],
noNS($ID) //noNS($INPUT->post->str('id'))
),
$filename
);
$filename = strftime($filename);
$filename = cleanID($filename);
return $filename . '.' . $ext;
}
function replace_entities() {
global $TEXT;
global $ents;
$serialized = FCK_ACTION_SUBDIR . 'ent.ser';
$ents = unserialize(file_get_contents($serialized));
$TEXT = preg_replace_callback(
'|(&(\w+);)|',
function($matches) {
global $ents; return $ents[$matches[2]];
},
$TEXT
);
}
function write_debug($data) {
return;
if (!$handle = fopen(DOKU_INC . '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
?>
+73
ファイルの表示
@@ -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;
}
}