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,62 @@
<?php
/**
* Changes Plugin: List the most recent changes of the wiki
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Andreas Gohr <andi@splitbrain.org>
* @author Mykola Ostrovskyy <spambox03@mail.ru>
*/
/**
* Class action_plugin_changes
*/
class action_plugin_changes extends DokuWiki_Action_Plugin
{
/**
* Register callbacks
* @param Doku_Event_Handler $controller
*/
public function register(Doku_Event_Handler $controller)
{
$controller->register_hook('PARSER_CACHE_USE', 'BEFORE', $this, 'beforeParserCacheUse');
}
/**
* Handle PARSER_CACHE_USE:BEFORE event
* @param Doku_Event $event
*/
public function beforeParserCacheUse($event)
{
global $ID;
$cache = $event->data;
if (isset($cache->mode) && ($cache->mode == 'xhtml')) {
$depends = p_get_metadata($ID, 'relation depends');
if (!empty($depends) && isset($depends['rendering'])) {
$this->addDependencies($cache, array_keys($depends['rendering']));
}
}
}
/**
* Add extra dependencies to the cache
*/
protected function addDependencies($cache, $depends)
{
// Prevent "Warning: in_array() expects parameter 2 to be array, null given"
if (!is_array($cache->depends)) {
$cache->depends = array();
}
if (!array_key_exists('files', $cache->depends)) {
$cache->depends['files'] = array();
}
foreach ($depends as $file) {
if (!in_array($file, $cache->depends['files']) && @file_exists($file)) {
$cache->depends['files'][] = $file;
}
}
}
}
//Setup VIM: ex: et ts=4 enc=utf-8 :

View File

@@ -0,0 +1,4 @@
<?php
$conf['dayheaderfmt'] = '%Y-%m-%d';
$conf['listmedia'] = 0;

View File

@@ -0,0 +1,4 @@
<?php
$meta['dayheaderfmt'] = array('string');
$meta['listmedia'] = array('onoff');

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Quark66 <mkucera66@seznam.cz>
*/
$lang['dayheaderfmt'] = 'Formát datumů v záhlaví dnů (formát strftime)';
$lang['listmedia'] = 'Zahrnout změny souborů médií';

View File

@@ -0,0 +1,4 @@
<?php
$lang['dayheaderfmt'] = 'Datumsformat der Überschrift bei Verwendung des dayheaders-Parameters. (strftime format)';
$lang['listmedia'] = 'Änderungen in den Medien-Dateien einbinden?';

View File

@@ -0,0 +1,4 @@
<?php
$lang['dayheaderfmt'] = 'Date format for the day headers. (strftime format)';
$lang['listmedia'] = 'Include changes of media files.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Robert Bogenschneider <bogi@uea.org>
*/
$lang['dayheaderfmt'] = 'Dat-formato por la tago-kapoj. (strftime-formato)';
$lang['listmedia'] = 'Inkludi ŝanĝojn de aŭdvidaĵ-dosieroj.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Sam01 <m.sajad079@gmail.com>
*/
$lang['dayheaderfmt'] = 'تاریخ فرمت برای هدر روز. (فرمت strftime)';
$lang['listmedia'] = 'شامل تغییرات فایل‌های رسانه‌ای.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author NicolasFriedli <nicolas@theologique.ch>
*/
$lang['dayheaderfmt'] = 'Format de date pour les entêtes de jour. (format strftime)';
$lang['listmedia'] = 'Inclure les modifications apportées aux fichiers média.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Davor Turkalj <turki.bsc@gmail.com>
*/
$lang['dayheaderfmt'] = 'Format datuma za datumska zaglavlja. (strftime format)';
$lang['listmedia'] = 'Prikaži i promjene na medijskim datotekama.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Serenity87HUN <anikototh87@gmail.com>
*/
$lang['dayheaderfmt'] = 'Dátum formátum a naphoz. (strftime formátum)';
$lang['listmedia'] = 'Tartalmazza a médiafájlok változását is.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Hideaki SAWADA <chuno@live.jp>
*/
$lang['dayheaderfmt'] = '日付見出しの日付形式。 strftimeフォーマット';
$lang['listmedia'] = 'メディアファイルの変更を含む。';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Myeongjin <aranet100@gmail.com>
*/
$lang['dayheaderfmt'] = '날짜 헤더에 대한 날짜 형식. (strftime 형식)';
$lang['listmedia'] = '미디어 파일의 바뀜 포함.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Mark Prins <mprins@users.sf.net>
*/
$lang['dayheaderfmt'] = 'Datum formaat voor de dag koppen. (strftime format)';
$lang['listmedia'] = 'Aanpassingen van media bestanden ook tonen.';

View File

@@ -0,0 +1,10 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Aleksander Setlak <http://alek.magazynek.org>
* @author Mati <mackosa@wp.pl>
*/
$lang['dayheaderfmt'] = 'Format daty dla nagłówków dnia (w formacie strftime).';
$lang['listmedia'] = 'Dołącz zmiany plików multimedialnych';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Aleksey.I.Maksimov <aleksey.i.maksimov@yandex.ru>
*/
$lang['dayheaderfmt'] = 'Формат даты для заголовков дня. (В формате PHP-фукции STRFTIME)';
$lang['listmedia'] = 'Учитывать изменения медиа-файлов.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Tor Härnqvist <tor@harnqvist.se>
*/
$lang['dayheaderfmt'] = 'Datumformat för datumrubrikerna. (strftime-format)';
$lang['listmedia'] = 'Inkluderar ändringar av mediafiler.';

View File

@@ -0,0 +1,9 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author İlker Rifat Kapaç <irifat@gmail.com>
*/
$lang['dayheaderfmt'] = 'Gün başlıkları için tarih biçimi. (strftime biçimi)';
$lang['listmedia'] = 'Ortam dosyalarındaki değişiklikleri de dahil et.';

View File

@@ -0,0 +1,4 @@
<?php
$lang['dayheaderfmt'] = '日期标题日期格式。strftime 格式)';
$lang['listmedia'] = '包括媒体文件的修改。';

View File

@@ -0,0 +1,9 @@
# General Plugin Info do not edit
base changes
author Andreas Gohr
email dokuwiki@cosmocode.de
date 2021-01-25
name Changes Plugin
desc List the most recent changes of the wiki
url http://www.dokuwiki.org/plugin:changes

View File

@@ -0,0 +1,516 @@
<?php
/**
* Changes Plugin: List the most recent changes of the wiki
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Andreas Gohr <andi@splitbrain.org>
* @author Mykola Ostrovskyy <spambox03@mail.ru>
*/
/**
* Class syntax_plugin_changes
*/
class syntax_plugin_changes extends DokuWiki_Syntax_Plugin
{
/**
* What kind of syntax are we?
*/
public function getType()
{
return 'substition';
}
/**
* What type of XHTML do we create?
*/
public function getPType()
{
return 'block';
}
/**
* Where to sort in?
*/
public function getSort()
{
return 105;
}
/**
* Connect pattern to lexer
* @param string $mode
*/
public function connectTo($mode)
{
$this->Lexer->addSpecialPattern('\{\{changes>[^}]*\}\}', $mode, 'plugin_changes');
}
/**
* Handler to prepare matched data for the rendering process
*
* @param string $match The text matched by the patterns
* @param int $state The lexer state for the match
* @param int $pos The character position of the matched text
* @param Doku_Handler $handler The Doku_Handler object
* @return array Return an array with all data you want to use in render
*/
public function handle($match, $state, $pos, Doku_Handler $handler)
{
$match = substr($match, 10, -2);
$data = [
'ns' => [],
'excludedpages' => [],
'count' => 10,
'type' => [],
'render' => 'list',
'render-flags' => [],
'maxage' => null,
'reverse' => false,
'user' => [],
'excludedusers' => [],
];
$match = explode('&', $match);
foreach ($match as $m) {
if (is_numeric($m)) {
$data['count'] = (int) $m;
} else {
if (preg_match('/(\w+)\s*=(.+)/', $m, $temp) == 1) {
$this->handleNamedParameter($temp[1], trim($temp[2]), $data);
} else {
$this->addNamespace($data, trim($m));
}
}
}
return $data;
}
/**
* Handle parameters that are specified using <name>=<value> syntax
* @param string $name
* @param $value
* @param array $data
*/
protected function handleNamedParameter($name, $value, &$data)
{
global $ID;
static $types = array('edit' => 'E', 'create' => 'C', 'delete' => 'D', 'minor' => 'e');
static $renderers = array('list', 'pagelist');
switch ($name) {
case 'count':
case 'maxage':
$data[$name] = intval($value);
break;
case 'ns':
foreach (preg_split('/\s*,\s*/', $value) as $value) {
$this->addNamespace($data, $value);
}
break;
case 'type':
foreach (preg_split('/\s*,\s*/', $value) as $value) {
if (array_key_exists($value, $types)) {
$data[$name][] = $types[$value];
}
}
break;
case 'render':
// parse "name(flag1, flag2)" syntax
if (preg_match('/(\w+)(?:\((.*)\))?/', $value, $match) == 1) {
if (in_array($match[1], $renderers)) {
$data[$name] = $match[1];
$flags = trim($match[2]);
if ($flags != '') {
$data['render-flags'] = preg_split('/\s*,\s*/', $flags);
}
}
}
break;
case 'user':
case 'excludedusers':
foreach (preg_split('/\s*,\s*/', $value) as $value) {
$data[$name][] = $value;
}
break;
case 'excludedpages':
foreach (preg_split('/\s*,\s*/', $value) as $page) {
if (!empty($page)) {
resolve_pageid(getNS($ID), $page, $exists);
$data[$name][] = $page;
}
}
break;
case 'reverse':
$data[$name] = (bool)$value;
break;
}
}
/**
* Clean-up the namespace name and add it (if valid) into the $data array
* @param array $data
* @param string $namespace
*/
protected function addNamespace(&$data, $namespace)
{
if (empty($namespace)) return;
$action = ($namespace[0] == '-') ? 'exclude' : 'include';
$namespace = cleanID(preg_replace('/^[+-]/', '', $namespace));
if (!empty($namespace)) {
$data['ns'][$action][] = $namespace;
}
}
/**
* Handles the actual output creation.
*
* @param string $mode output format being rendered
* @param Doku_Renderer $R the current renderer object
* @param array $data data created by handler()
* @return boolean rendered correctly?
*/
public function render($mode, Doku_Renderer $R, $data)
{
if ($mode === 'xhtml') {
/* @var Doku_Renderer_xhtml $R */
$R->info['cache'] = false;
$changes = $this->getChanges(
$data['count'],
$data['ns'],
$data['excludedpages'],
$data['type'],
$data['user'],
$data['maxage'],
$data['excludedusers'],
$data['reverse']
);
if (!count($changes)) return true;
switch ($data['render']) {
case 'list':
$this->renderSimpleList($changes, $R, $data['render-flags']);
break;
case 'pagelist':
$this->renderPageList($changes, $R, $data['render-flags']);
break;
}
return true;
} elseif ($mode === 'metadata') {
/* @var Doku_Renderer_metadata $R */
global $conf;
$R->meta['relation']['depends']['rendering'][$conf['changelog']] = true;
return true;
}
return false;
}
/**
* Based on getRecents() from inc/changelog.php
*
* @param int $num
* @param array $ns
* @param array $excludedpages
* @param array $type
* @param array $user
* @param int $maxage
* @return array
*/
protected function getChanges($num, $ns, $excludedpages, $type, $user, $maxage, $excludedusers, $reverse)
{
global $conf;
$changes = array();
$seen = array();
$count = 0;
$lines = array();
// Get global changelog
if (file_exists($conf['changelog']) && is_readable($conf['changelog'])) {
$lines = @file($conf['changelog']);
}
// Merge media changelog
if ($this->getConf('listmedia')) {
if (file_exists($conf['media_changelog']) && is_readable($conf['media_changelog'])) {
$linesMedia = @file($conf['media_changelog']);
// Add a tag to identiy the media lines
foreach ($linesMedia as $key => $value) {
$value = parseChangelogLine($value);
$value['extra'] = 'media';
$linesMedia[$key] = implode("\t", $value) . "\n";
}
$lines = array_merge($lines, $linesMedia);
}
}
if (is_null($maxage)) {
$maxage = (int) $conf['recent_days'] * 60 * 60 * 24;
}
for ($i = count($lines) - 1; $i >= 0; $i--) {
$change = $this->handleChangelogLine(
$lines[$i],
$ns,
$excludedpages,
$type,
$user,
$maxage,
$seen,
$excludedusers
);
if ($change !== false) {
$changes[] = $change;
// break when we have enough entries
if (++$count >= $num) break;
}
}
// Date sort merged page and media changes
if ($this->getConf('listmedia') || $reverse) {
$dates = array();
foreach ($changes as $change) {
$dates[] = $change['date'];
}
array_multisort($dates, ($reverse ? SORT_ASC : SORT_DESC), $changes);
}
return $changes;
}
/**
* Based on _handleRecent() from inc/changelog.php
*
* @param string $line
* @param array $ns
* @param array $excludedpages
* @param array $type
* @param array $user
* @param int $maxage
* @param array $seen
* @return array|bool
*/
protected function handleChangelogLine($line, $ns, $excludedpages, $type, $user, $maxage, &$seen, $excludedusers)
{
// split the line into parts
$change = parseChangelogLine($line);
if ($change === false) return false;
// skip seen ones
if (isset($seen[$change['id']])) return false;
// filter type
if (!empty($type) && !in_array($change['type'], $type)) return false;
// filter user
if (!empty($user) && (empty($change['user']) || !in_array($change['user'], $user))) return false;
// remember in seen to skip additional sights
$seen[$change['id']] = 1;
// show only not existing pages for delete
if ($change['extra'] != 'media' && $change['type'] != 'D' && !page_exists($change['id'])) return false;
// filter maxage
if ($maxage && $change['date'] < (time() - $maxage)) {
return false;
}
// check if it's a hidden page
if (isHiddenPage($change['id'])) return false;
// filter included namespaces
if (isset($ns['include'])) {
if (!$this->isInNamespace($ns['include'], $change['id'])) return false;
}
// filter excluded namespaces
if (isset($ns['exclude'])) {
if ($this->isInNamespace($ns['exclude'], $change['id'])) return false;
}
// exclude pages
if (!empty($excludedpages)) {
foreach ($excludedpages as $page) {
if ($change['id'] == $page) return false;
}
}
// exclude users
if (!empty($excludedusers)) {
foreach ($excludedusers as $user) {
if ($change['user'] == $user) return false;
}
}
// check ACL
$change['perms'] = auth_quickaclcheck($change['id']);
if ($change['perms'] < AUTH_READ) return false;
return $change;
}
/**
* Check if page belongs to one of namespaces in the list
*
* @param array $namespaces
* @param string $id page id
* @return bool
*/
protected function isInNamespace($namespaces, $id)
{
foreach ($namespaces as $ns) {
if ((strpos($id, $ns . ':') === 0)) return true;
}
return false;
}
/**
* Render via the Pagelist plugin
*
* @param $changes
* @param Doku_Renderer_xhtml $R
* @param $flags
*/
protected function renderPageList($changes, &$R, $flags)
{
/** @var helper_plugin_pagelist $pagelist */
$pagelist = @plugin_load('helper', 'pagelist');
if ($pagelist) {
$pagelist->setFlags($flags);
$pagelist->startList();
foreach ($changes as $change) {
if ($change['extra'] == 'media') continue;
$page['id'] = $change['id'];
$page['date'] = $change['date'];
$page['user'] = $this->getUserName($change);
$page['desc'] = $change['sum'];
$pagelist->addPage($page);
}
$R->doc .= $pagelist->finishList();
} else {
// Fallback to the simple list renderer
$this->renderSimpleList($changes, $R);
}
}
/**
* Render the day header
*
* @param Doku_Renderer $R
* @param int $date
*/
protected function dayheader(&$R, $date)
{
if ($R->getFormat() == 'xhtml') {
/* @var Doku_Renderer_xhtml $R */
$R->doc .= '<h3 class="changes">';
$R->cdata(dformat($date, $this->getConf('dayheaderfmt')));
$R->doc .= '</h3>';
} else {
$R->header(dformat($date, $this->getConf('dayheaderfmt')), 3, 0);
}
}
/**
* Render with a simple list render
*
* @param array $changes
* @param Doku_Renderer_xhtml $R
* @param null $flags
*/
protected function renderSimpleList($changes, &$R, $flags = null)
{
global $conf;
$flags = $this->parseSimpleListFlags($flags);
$dayheaders_date = '';
if ($flags['dayheaders']) {
$dayheaders_date = date('Ymd', $changes[0]['date']);
$this->dayheader($R, $changes[0]['date']);
}
$R->listu_open();
foreach ($changes as $change) {
if ($flags['dayheaders']) {
$tdate = date('Ymd', $change['date']);
if ($tdate != $dayheaders_date) {
$R->listu_close(); // break list to insert new header
$this->dayheader($R, $change['date']);
$R->listu_open();
$dayheaders_date = $tdate;
}
}
$R->listitem_open(1);
$R->listcontent_open();
if (trim($change['extra']) == 'media') {
$R->internalmedia(':' . $change['id'], null, null, null, null, null, 'linkonly');
} else {
$R->internallink(':' . $change['id'], null, null, false, 'navigation');
}
if ($flags['summary']) {
$R->cdata(' ' . $change['sum']);
}
if ($flags['signature']) {
$user = $this->getUserName($change);
$date = strftime($conf['dformat'], $change['date']);
$R->cdata(' ');
$R->entity('---');
$R->cdata(' ');
$R->emphasis_open();
$R->cdata($user . ' ' . $date);
$R->emphasis_close();
}
$R->listcontent_close();
$R->listitem_close();
}
$R->listu_close();
}
/**
* Parse flags for the simple list render
*
* @param array $flags
* @return array
*/
protected function parseSimpleListFlags($flags)
{
$outFlags = array('summary' => true, 'signature' => false, 'dayheaders' => false);
if (!empty($flags)) {
foreach ($flags as $flag) {
if (array_key_exists($flag, $outFlags)) {
$outFlags[$flag] = true;
} elseif (substr($flag, 0, 2) == 'no') {
$flag = substr($flag, 2);
if (array_key_exists($flag, $outFlags)) {
$outFlags[$flag] = false;
}
}
}
}
return $outFlags;
}
/**
* Get username or fallback to ip
*
* @param array $change
* @return mixed
*/
protected function getUserName($change)
{
/* @var DokuWiki_Auth_Plugin $auth */
global $auth;
if (!empty($change['user'])) {
$user = $auth->getUserData($change['user']);
if (empty($user)) {
return $change['user'];
} else {
return $user['name'];
}
} else {
return $change['ip'];
}
}
}

339
lib/plugins/ckgedit/LICENSE Normal file
View File

@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@@ -0,0 +1,14 @@
ckgedit is a WYSIWYG editor for Dokuwiki. It is an implementation of fckgLite which replaces the
FCKEditor with the more current CKEditor. Whereas the base directory for fckgLite is named fckg, the
base directory for this version is ckgedit. However, only one of the two can
be enabled at any one time.
This version of ckgeditor should work with Linux, Windows, and versions of Dokuwiki installed with the
Ubuntu/Debian package manager.
This branch uses CKEditor 4.11.4

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;
}
}

View File

@@ -0,0 +1,124 @@
<?php
/**
* @author Myron Turner <turnermm02@shaw.ca>
* @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
*/
require_once(DOKU_INC . 'lib/plugins/ckgedit/scripts/css6.php');
class admin_plugin_ckgedit extends DokuWiki_Admin_Plugin {
private $tpl_inc;
private $template;
private $alt;
function __construct() {
global $conf;
$this->template = $conf['template'];
$this->tpl_inc = tpl_incdir();
}
function handle() {
if (!isset($_REQUEST['cmd'])) return; // first time - nothing to do
$this->output = 'invalid';
if (!checkSecurityToken()) return;
if (!is_array($_REQUEST['cmd'])) return;
switch (key($_REQUEST['cmd'])) {
case 'stylesheet' : {
$this->alt = "";
$this->output = 'style_sheet_msg';
break;
}
case 'alt_stylesheet' : {
$this->alt = $_REQUEST['templates'];
$this->output = 'alt_style_sheet_msg';
break;
}
}
}
/**
* output appropriate html
*/
function html() {
ptln('<div id = "ckg_styl_sheet" style = "display:none">');
echo $this->locale_xhtml('style');
ptln('</div>');
ptln('<button type = "button" id = "Infobut" onclick="jQuery(\'#ckg_styl_sheet\').toggle(800,ckg_admininfo(this));">');
echo $this->getLang('stylesheet_oinfo');
ptln('</button>');
ptln('<form action="'.wl($ID).'" method="post">');
// output hidden values to ensure dokuwiki will return back to this plugin
ptln(' <input type="hidden" name="do" value="admin" />');
ptln(' <input type="hidden" name="page" value="'.$this->getPluginName().'" />');
formSecurityToken();
//Current style sheet
ptln('<p style = "line-height: 200%;">' . $this->getLang('default_stylesheet') . ': (' .$this->template . ')<br />');
ptln('<label for="ckg_save_ss">' .$this->getLang('checkbox').'</label>');
ptln('<input type="checkbox" name="ckg_save_ss">&nbsp;&nbsp;');
ptln('<input type="submit" name="cmd[stylesheet]" value="'.$this->getLang('style_sheet').'" /></p>');
// Other style sheet
$alt_val = isset($this->alt)?$this->alt: "" ;
ptln('<p style = "line-height: 200%;">' . $this->getLang('alt_stylesheet') .'<br />');
ptln('<select name="templates" style = "line-height:100%">');
echo $this->templates( $alt_val );
ptln('</select>');
ptln('<input type="submit" name="cmd[alt_stylesheet]" value="'.$this->getLang('style_sheet').'" />');
ptln('</form></p>');
if($this->output && $this->output == 'style_sheet_msg') {
$path = $this->tpl_inc;
ptln(htmlspecialchars($this->getLang($this->output)). " " .$this->template);
$retv = css_ckg_out($path);
$this->message($path, $retv);
}
else if($this->output && $this->output == 'alt_style_sheet_msg') {
ptln(htmlspecialchars($this->getLang($this->output)). " " .$this->alt);
$path = str_replace('tpl/'.$this->template, 'tpl/'.$this->alt,$this->tpl_inc);
$retv = css_ckg_out($path,$this->alt);
$this->message($path, $retv);
}
}
function message($path, $which) {
$messages = array(
"Stylesheet saved to $path" . 'Styles/_style.css',
"Failed to save stylesheet to $path" . 'Styles/_style.css'
);
$color = $which == 0? '#333': 'blue';
ptln('<br /><span style = "color:'.$color. ';">'.htmlspecialchars($messages[$which]).'</span>');
}
function templates($selected="") {
$dir = dirname($this->tpl_inc);
$files = scandir($dir);
$dir .= '/';
$list = "<option value='' >Select</option>";
foreach ($files AS $file) {
if($file == '.' || $file == '..' || $file == $this->template) continue;
$entry = $dir . $file;
if(!is_writable($entry)) continue;
if(is_dir ($entry ) ) {
if($file == $selected) {
$list .= "<option value='$file' selected>$file</option>";
}
else $list .= "<option value='$file' >$file</option>";
}
}
return $list;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
CKEditor 4
==========
Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
http://ckeditor.com - See LICENSE.md for license information.
CKEditor is a text editor to be used inside web pages. It's not a replacement
for desktop text editors like Word or OpenOffice, but a component to be used as
part of web applications and websites.
## Documentation
The full editor documentation is available online at the following address:
http://docs.ckeditor.com
## Installation
Installing CKEditor is an easy task. Just follow these simple steps:
1. **Download** the latest version from the CKEditor website:
http://ckeditor.com. You should have already completed this step, but be
sure you have the very latest version.
2. **Extract** (decompress) the downloaded file into the root of your website.
**Note:** CKEditor is by default installed in the `ckeditor` folder. You can
place the files in whichever you want though.
## Checking Your Installation
The editor comes with a few sample pages that can be used to verify that
installation proceeded properly. Take a look at the `samples` directory.
To test your installation, just call the following page at your website:
http://<your site>/<CKEditor installation path>/samples/index.html
For example:
http://www.example.com/ckeditor/samples/index.html

View File

@@ -0,0 +1,10 @@
/*
Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
(function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},
ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g)){var m=d;d=g;g=m}var k=[];d=d||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.resolve()):setTimeout(arguments.callee,100)},0)},
null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",
[e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",
c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);l.resolve()}else setTimeout(arguments.callee,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,k).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(d){if(arguments.length){var m=
this,k=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(d,function(){f.resolve()});k.push(f.promise());return!0}return g.call(b,d)});if(k.length){var b=new a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery);

View File

@@ -0,0 +1,8 @@
blockquote {
border: 1px dotted #ccc;
background: #eee url(data:image/gif;base64,R0lGODlhLgAcAMQAAPT09PHx8e7u7unp6ejo6Ofn5+bm5uXl5eTk5OPj4+Li4t/f397e3t3d3dzc3Nvb29ra2v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABEALAAAAAAuABwAAAW2YCSOJLkgaJqWrKi+ram8dBwJdB03Od3Ehh6MdUgIXwvWcVhyLFEMCEP5tD2WD1tkqY1chT/t0dB1CrNiIVl7OCbTwu722F0Cujzhoa6WG4UObGMBfEtvVEtrLU8qhyOMKIokkCl7IwOUCAWIlJOZCJyQlnOZBCWfCAqPqKesIm2frbEimLMjeZQJnpmhT45BlKMjX5C9RwKLkGiyiTaMqi3AXHA90EDTeD2Bcj1yJSeV3rugXSEAOw==) no-repeat 0.3em 0.3em;
padding: 1em;
overflow: hidden;
margin: 1em auto 1em auto;
max-width: 90%;
}

View File

@@ -0,0 +1,190 @@
/**
* @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/license
*/
/**
* This file was added automatically by CKEditor builder.
* You may re-use it at any time to build CKEditor again.
*
* If you would like to build CKEditor online again
* (for example to upgrade), visit one the following links:
*
* (1) https://ckeditor.com/cke4/builder
* Visit online builder to build CKEditor from scratch.
*
* (2) https://ckeditor.com/cke4/builder/c3fc0dcaa9c80d707aab3e60fdcddbfb
* Visit online builder to build CKEditor, starting with the same setup as before.
*
* (3) https://ckeditor.com/cke4/builder/download/c3fc0dcaa9c80d707aab3e60fdcddbfb
* Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
*
* NOTE:
* This file is not used by CKEditor, you may remove it.
* Changing this file will not change your CKEditor configuration.
*/
var CKBUILDER_CONFIG = {
skin: 'moono-lisa',
preset: 'full',
ignore: [
'.DS_Store',
'.bender',
'.editorconfig',
'.gitattributes',
'.gitignore',
'.idea',
'.jscsrc',
'.jshintignore',
'.jshintrc',
'.mailmap',
'.npm',
'.travis.yml',
'bender-err.log',
'bender-out.log',
'bender.ci.js',
'bender.js',
'dev',
'gruntfile.js',
'less',
'node_modules',
'package.json',
'tests'
],
plugins : {
'a11yhelp' : 1,
'about' : 1,
'basicstyles' : 1,
'bidi' : 1,
'blockquote' : 1,
'clipboard' : 1,
'colorbutton' : 1,
'colordialog' : 1,
'contextmenu' : 1,
'copyformatting' : 1,
'dialogadvtab' : 1,
'div' : 1,
'elementspath' : 1,
'enterkey' : 1,
'entities' : 1,
'filebrowser' : 1,
'find' : 1,
'flash' : 1,
'floatingspace' : 1,
'font' : 1,
'format' : 1,
'forms' : 1,
'horizontalrule' : 1,
'htmlwriter' : 1,
'iframe' : 1,
'image' : 1,
'indentblock' : 1,
'indentlist' : 1,
'justify' : 1,
'language' : 1,
'link' : 1,
'list' : 1,
'liststyle' : 1,
'magicline' : 1,
'maximize' : 1,
'newpage' : 1,
'pagebreak' : 1,
'pastefromword' : 1,
'pastetext' : 1,
'preview' : 1,
'print' : 1,
'removeformat' : 1,
'resize' : 1,
'save' : 1,
'scayt' : 1,
'selectall' : 1,
'showblocks' : 1,
'showborders' : 1,
'smiley' : 1,
'sourcearea' : 1,
'specialchar' : 1,
'stylescombo' : 1,
'tab' : 1,
'table' : 1,
'tableselection' : 1,
'tabletools' : 1,
'templates' : 1,
'toolbar' : 1,
'undo' : 1,
'uploadimage' : 1,
'wsc' : 1,
'wysiwygarea' : 1
},
languages : {
'af' : 1,
'ar' : 1,
'az' : 1,
'bg' : 1,
'bn' : 1,
'bs' : 1,
'ca' : 1,
'cs' : 1,
'cy' : 1,
'da' : 1,
'de' : 1,
'de-ch' : 1,
'el' : 1,
'en' : 1,
'en-au' : 1,
'en-ca' : 1,
'en-gb' : 1,
'eo' : 1,
'es' : 1,
'es-mx' : 1,
'et' : 1,
'eu' : 1,
'fa' : 1,
'fi' : 1,
'fo' : 1,
'fr' : 1,
'fr-ca' : 1,
'gl' : 1,
'gu' : 1,
'he' : 1,
'hi' : 1,
'hr' : 1,
'hu' : 1,
'id' : 1,
'is' : 1,
'it' : 1,
'ja' : 1,
'ka' : 1,
'km' : 1,
'ko' : 1,
'ku' : 1,
'lt' : 1,
'lv' : 1,
'mk' : 1,
'mn' : 1,
'ms' : 1,
'nb' : 1,
'nl' : 1,
'no' : 1,
'oc' : 1,
'pl' : 1,
'pt' : 1,
'pt-br' : 1,
'ro' : 1,
'ru' : 1,
'si' : 1,
'sk' : 1,
'sl' : 1,
'sq' : 1,
'sr' : 1,
'sr-latn' : 1,
'sv' : 1,
'th' : 1,
'tr' : 1,
'tt' : 1,
'ug' : 1,
'uk' : 1,
'vi' : 1,
'zh' : 1,
'zh-cn' : 1
}
};

1337
lib/plugins/ckgedit/ckeditor/ckeditor.js vendored Normal file

File diff suppressed because one or more lines are too long

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,474 @@
/**
* @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
config.keystrokes = [
// [ CKEDITOR.CTRL + 76, null ], // CTRL + L
[ CKEDITOR.ALT + CKEDITOR.SHIFT + 56, 'bulletedlist' ], // ALT + *
[ CKEDITOR.ALT + 56, 'bulletedlist' ], // ALT + 8
[ CKEDITOR.ALT + 173, 'numberedlist' ], // ALT + -
[ CKEDITOR.CTRL + 48, 'ckgundoheader' ], // ALT + 0
[ CKEDITOR.CTRL + 49, 'ckginsheaderone' ], // ALT + 1
[ CKEDITOR.CTRL + 50, 'ckginsheadertwo' ], // ALT + 2
[ CKEDITOR.CTRL + 51, 'ckginsheaderthree' ], // ALT + 4
[ CKEDITOR.CTRL + 52, 'ckginsheaderfour' ], // ALT +4
[ CKEDITOR.CTRL + 53, 'ckginsheaderfive' ], // ALT + 5
[ CKEDITOR.ALT + 77, 'ckginscode' ], //ALT +m
/* turn off ALT to avoid conflict with AltGr */
[ CKEDITOR.ALT + 48, null ],
[ CKEDITOR.ALT + 49, null ],
[ CKEDITOR.ALT + 50, null ],
[ CKEDITOR.ALT + 51, null ],
[ CKEDITOR.ALT + 52, null ],
[ CKEDITOR.ALT + 53, null ],
];
config.colors = new Array(
'000000','000033','000066','000099','0000CC','0000CE','0000FF','003300','003333','003366','003399','0033CC','0033FF','006600','006633',
'006666','006699','0066CC','0066FF','009900','009933','009966','009999','0099CC','0099FF','00CC00','00CC33','00CC66','00CC99','00CCCC','00CCFF',
'00FF00','00FF33','00FF66','00FF99','00FFCC','00FFFF','01F33E','01FCEF','03EBA6','03F3AB','06DCFB','0AFE47','111111','1F88A7','1FCB4A','1FFEF3',
'222222','23819C','24E0FB','25A0C5','27DE55','2897B7','2966B8','29AFD6','2DC800','2F74D0','2FAACE','32DF00','330000','330033','330066','330099',
'3300CC','3300FF','333300','333333','333333','333366','333399','3333CC','3333FF','336600','336633','336666','336699','3366CC','3366FF','339900',
'339933','339966','339999','3399CC','3399FF','33CC00','33CC33','33CC66','33CC99','33CCCC','33CCFF','33FDC0','33FF00','33FF33','33FF66','33FF99',
'33FFCC','33FFFF','36F200','3923D6','3DE4FC','444444','44B4D5','48FB0D','4985D6','4A9586','4AE371','4BFE78','4FBDDD','52FF20','555555','5757FF',
'57BCD9','59955C','59DF00','5B5BFF','5EAE9E','5FFEF7','6094DB','61F200','62A9FF','62D0FF','62FDCE','63E9FC','660000','660033','660066','660099',
'6600CC','6600FF','663300','663333','663366','663399','6633CC','6633FF','666600','666633','666666','666666','666699','6666CC','6666FF','669900',
'669933','669966','669999','6699CC','6699FF','66CC00','66CC33','66CC66','66CC99','66CCCC','66CCFF','66FF00','66FF00','66FF33','66FF66','66FF99',
'66FFCC','66FFFF','6755E3','67C7E2','6A6AFF','6CA870','6FFF44','72FE95','7373FF','74138C','74BAAC','74FEF8','75B4FF','75D6FF','75ECFD','777777',
'7979FF','79FC4E','7BA7E1','7BCAE1','7CEB98','7DFDD7','800080','80B584','8282FF','8678E9','86BCFF','872187','888888','892EE4','89FC63','8ADCFF',
'8BFEA8','8C8CFF','8CD1E6','8CEFFD','8D18AB','8DC7BB','8EB4E6','8ED6EA','8FFEDD','8FFF6F','9191FF','92FEF9','93BF96','93EEAA','9588EC','95FF4F',
'9669FE','990000','990033','990066','990099','990099','9900CC','9900FF','993300','993333','993366','993399','9933CC','9933FF','996600','996633',
'996666','996699','9966CC','9966FF','999900','999933','999966','999999','999999','9999CC','9999FF','9999FF','99C7FF','99C7FF','99CC00','99CC33',
'99CC66','99CC99','99CCCC','99CCFF','99E0FF','99FD77','99FF00','99FF33','99FF66','99FF99','99FFCC','99FFFF','9A03FE','9B4EE9','9D9D00','A095EE',
'A27AFE','A3FEBA','A41CC6','A4F0B7','A55FEB','A5D3CA','A5DBEB','A5FEE3','A5FEFA','A5FF8A','A6CAA9','A6DEEE','A827FE','A8A8FF','A8CFFF','A8E4FF',
'A9C5EB','AAAAAA','AAAAFF','AAFD8E','ABFF73','ACF3FD','AD8BFE','AE70ED','AE70ED','B05F3C','B0A7F1','B300B3','B3FF99','B445FE','B4D1B6','B5FFC8',
'B5FFFC','B6BA18','B7B7FF','B89AFE','B8E2EF','B9264F','B96F6F','BA21E0','BABA21','BAD0EF','BAFEA3','BBBBBB','BBBBFF','BBDAFF','BBEBFF','BC2EBC',
'BCB4F3','BD5CFE','BDF4CB','BDFFEA','BEFEEB','BF00BF','C06A45','C0A545','C0E0DA','C0E7F3','C0F7FE','C0F7FE','C0FF97','C17753','C269FE','C27E3A',
'C47557','C48484','C4ABFE','C6C6FF','C79BF2','C87C5B','C88E8E','C8B400','C8C800','C98767','C98A4B','C9DECB','C9EAF3','CA00CA','CACAFF','CAFEB8',
'CAFFD8','CB59E8','CB59E8','CB876D','CBC5F5','CC0000','CC0033','CC0066','CC0099','CC00CC','CC00FF','CC3300','CC3333','CC3366','CC3399','CC33CC',
'CC33FF','CC6600','CC6633','CC6666','CC6699','CC66CC','CC66FF','CC9900','CC9933','CC9966','CC9999','CC99CC','CC99FF','CCCC00','CCCC33','CCCC66',
'CCCC99','CCCCCC','CCCCCC','CCCCFF','CCFF00','CCFF33','CCFF66','CCFF99','CCFFCC','CCFFFF','CD85FE','CDD11B','CEA8F4','CEB86C','CEDEF4','CEF0FF',
'CEFFFD','CF8D72','CFE7E2','CFFEF0','D0977B','D0BCFE','D0E6FF','D19C67','D1A0A0','D1D17A','D1FFB3','D29680','D2FFC4','D54FD5','D568FD','D698FE',
'D69E87','D6C485','D6F8DE','D73E68','D7ACAC','D7D1F8','D7D78A','D881ED','D8F0F8','D900D9','D97BFD','D9C400','D9F3FF','DAA794','DAAC96','DAAF85',
'DB00DB','DB9900','DBBFF7','DBDB97','DBDBFF','DBEADC','DBEBFF','DBF0F7','DCEDEA','DD597D','DD75DD','DD75DD','DD88FD','DDB791','DDB9B9','DDCEFF',
'DDDDDD','DDFED1','DEB19E','DECF9C','DFA800','DFB0FF','DFB4A4','DFDF00','DFE32D','DFFFCA','E0BBA9','E0E04E','E0EAF8','E1CAF9','E1E1A8','E1E1FF',
'E1FFFE','E29BFD','E37795','E3D6AA','E3E0FA','E3FBE9','E3FBE9','E469FE','E4C0B1','E4C6A7','E697E6','E6C5B9','E6CCCC','E6CE00','E6DBFF','E6E671',
'E6FCFF','E77AFE','E7A9FE','E7F3F1','E7FFDF','E8C6FF','E8CCBF','E8FFD9','E994AB','E9D0B6','E9E9BE','E9E9C0','E9F1EA','EA8DFE','EAA400','EAA6EA',
'EACDC1','EADFBF','EAEA8A','EAF1FB','EAF7FB','EAFEE2','EAFFEF','EAFFEF','EBD0C7','ECD5CA','ECD9D9','ECF4FF','ECFAFF','ED9EFE','EDA9BC','EDBEFE',
'EDDFFB','EDE4C9','EDEF85','EEBBEE','EEDCC8','EEEEA2','EEEECE','EEEECE','EEEEEE','EEEEFF','EEEEFF','EEF093','EFA9FE','EFCDF8','EFCDF8','EFD7FF',
'EFE7CF','EFEDFC','EFF9FC','F0B9C8','F0C4F0','F0CBFE','F0DCD5','F0DDD5','F0DDD5','F1ECFF','F1F1B1','F1F1D6','F1FEED','F206FF','F2BCFE','F2E4D5',
'F2F4B3','F2F9F8','F2FFEA','F2FFFE','F3E7E7','F3F8F4','F4CAD6','F4D2F4','F4D2F4','F4DCFE','F4F4BF','F5CAFF','F5E7E2','F5E8E2','F5E8E2','F5EEFD',
'F5EFE0','F5F5E2','F5F7C4','F5FFF2','F70000','F7DE00','F7F5FE','F7F7CE','F7F9D0','F7FBFA','F7FFFD','F8DAE2','F8E9FC','F8F1F1','F8FBFE','F900F9',
'F9BB00','F9D9FF','F9EEFF','F9EFEC','F9F3EC','F9F5EC','F9F9DD','F9F9FF','F9FCFF','F9FDFF','F9FEFF','F9FFFB','FAE7EC','FAECFF','FAF2EF','FAFBDF',
'FAFDFE','FAFEFB','FAFFF7','FBF9FF','FBFBE8','FBFDFB','FCF7F5','FCF9F5','FCFCE9','FDF2FF','FDF9FD','FDF9FF','FDFAF9','FDFAF9','FDFBFB','FDFCF9',
'FDFDF0','FDFDF9','FDFDFF','FDFEFF','FDFFFD','FDFFFF','FE67EB','FE67EB','FE8BF0','FE98F1','FEA9F3','FEFAFB','FEFDFF','FEFDFF','FEFEFA','FF0000',
'FF0033','FF0066','FF0099','FF00CC','FF00FF','FF2626','FF2DFF','FF3300','FF3333','FF3366','FF3399','FF33CC','FF33FF','FF4848','FF4AFF','FF5353',
'FF62B0','FF6600','FF6633','FF6666','FF6699','FF66CC','FF66FF','FF68DD','FF7373','FF73B9','FF7575','FF79E1','FF7DFF','FF800D','FF86C2','FF86E3',
'FF86FF','FF8A8A','FF8E8E','FF9331','FF9797','FF97CB','FF97E8','FF9900','FF9933','FF9966','FF9999','FF99CC','FF99FF','FF9C42','FFA04A','FFA4A4',
'FFA4FF','FFA8A8','FFA8D3','FFA8FF','FFAB60','FFAC62','FFACEC','FFACEC','FFB428','FFB5B5','FFB60B','FFBB7D','FFBBBB','FFBBDD','FFBBF7','FFBBFF',
'FFBD82','FFBE28','FFBF48','FFC48E','FFC4FF','FFC65B','FFC848','FFC895','FFC8C8','FFC8E3','FFC8F2','FFCAF9','FFCB2F','FFCC00','FFCC33','FFCC66',
'FFCC99','FFCCCC','FFCCFF','FFCE73','FFCEA2','FFCECE','FFCEFF','FFCFA4','FFD062','FFD34F','FFD586','FFD7B3','FFD9B7','FFDBFB','FFDD75','FFDEA2',
'FFDFDF','FFDFEF','FFDFF8','FFDFFF','FFE099','FFE1C6','FFE2C8','FFE3FF','FFE699','FFE6B5','FFE6D0','FFE920','FFEAB7','FFEAC4','FFEAEA','FFEAEA',
'FFEBD9','FFECB0','FFECEC','FFECF5','FFECFF','FFEEFB','FFEEFD','FFF06A','FFF1C6','FFF1E6','FFF284','FFF2D2','FFF2D9','FFF2F2','FFF4EA','FFF5D7',
'FFF7B7','FFF7E6','FFF9CE','FFF9EA','FFF9F4','FFF9FC','FFF9FE','FFF9FF','FFFAEA','FFFBDF','FFFDF7','FFFDF9','FFFDF9','FFFDFD','FFFDFF','FFFDFF',
'FFFEF7','FFFEFB','FFFEFD','FFFF00','FFFF33','FFFF66','FFFF84','FFFF99','FFFF99','FFFFAA','FFFFB5','FFFFC8','FFFFCC','FFFFD7','FFFFE3','FFFFFD',
'FFFFFF','FFFFFF','FFFFFF'
);
var browser_level;
if (window.top != window.self) {
browser_level = window.self;
}
else browser_level = window.top;
//alert(window.self == browser_level);
var ckedit_path;
if(browser_level.JSINFO['ckg_canonical']) {
ckedit_path = browser_level.DOKU_BASE + 'lib/plugins/ckgedit/ckeditor/';
config.doku_url = browser_level.DOKU_BASE;
config.ckedit_path = browser_level.DOKU_BASE + 'lib/plugins/ckgedit/ckeditor/';
}
else {
ckedit_path = window.location.protocol +'//' + browser_level.dokuBase + 'lib/plugins/ckgedit/ckeditor/';
config.doku_url = window.location.protocol+ '//' + browser_level.dokuBase;
config.ckedit_path = window.location.protocol +'//' + browser_level.dokuBase + 'lib/plugins/ckgedit/ckeditor/';
}
config.jquery = browser_level.jQuery;
// config.format_code = { element : 'code', attributes : { 'class' : 'dwcode' } };
// Define changes to default configuration here.
// For the complete reference:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
config.scayt__disable = false;
browser_level.ckgedit_language_chk(config); //resets language if $conf['other_lang'] != 'default' and resets auto scayt to true of false
// config.scayt_autoStartup = true;
config.format_tags = 'p;h1;h2;h3;h4;h5';
config.extraSpecialChars = ['↔'];
config.extraPlugins = 'signature,footnote,shortcuts,fontAssist,tags,timestamp,headerbuttons,geshi,wrap,truetype'; //,pastebase64',devtools';
config.contentsLangDirection = '';
if( browser_level.ckgedit_isRTL()) config.contentsLangDirection = 'rtl';
config.pasteFromWordRemoveFontStyles = false; // preserve font style when "paste from word"
config.pasteFromWordRemoveStyles = false; // preserve style (color) when "paste from word"
config.allowedContent=true; // preserve highlight when "paste from word"
config.removeButtons = browser_level.remove_styling();
var font_assist = 'FontAssist';
//config.removeButtons = 'TextColor,BGColor, FontAssist,Font,FontSize';
if(config.removeButtons.match(/FontAssist/)) font_assist = "";
config.addPaste = function () {
config.extraPlugins +=',pastebase64';
}
config.skin = browser_level.getCKEditorGUI() ? browser_level.getCKEditorGUI() : 'moono';
//alert(browser_level.getCKEditorGUI());
config.wrapSyntaxDiv = browser_level.JSINFO['wrapDiv'] ;
config.wrapSyntaxSpan = browser_level.JSINFO['wrapSpan'] ;
config.ToolBarItemsAlt = {
'Signature':'Signature' ,'Footnotes':'Footnotes','Scayt':'Scayt'
};
if(browser_level.JSINFO['wrapDiv']) {
config.wrapSyntaxDiv = browser_level.JSINFO['wrapDiv'];
}
else config.wrapSyntaxDiv = "";
if(browser_level.JSINFO['wrapSpan']) {
config.wrapSyntaxSpan = browser_level.JSINFO['wrapSpan'];
}
else config.wrapSyntaxSpan = "";
if(config.scayt__disable) {
config.ToolBarItemsAlt['Scayt'] = "";
}
var xtra = browser_level.extra_plugins(config);
if(!xtra) {
xtra = 'Msword,Geshi';
}
else {
var xtras = xtra.split(',');
if(xtras.indexOf('Msword') == -1) {
xtra += ',Msword';
}
if(xtras.indexOf('Geshi') == -1) {
xtra += ',Geshi';
}
}
if (browser_level.JSINFO['has_tags']) {
xtra+=',Tags';
}
if(browser_level.JSINFO['has_wrap']) {
xtra+=',Wrap';
}
config.ToolBarItemsExtra = "";
if(xtra) {
config.ToolBarItemsExtra = xtra.split(',');
if(xtra) {
config.extraPlugins += ',' + xtra.toLowerCase();
}
}
config.toolbar_Dokuwiki =
[
{name: 'header_buttons', items: ['same_header', 'lower_header', 'higher_header', 'none_header']},
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline', 'TrueType', 'Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'editing', items : [ 'Find','Replace','-','SelectAll','-'] },
{ name: 'insert', items : [ 'Image','Table','HorizontalRule','Smiley','SpecialChar', config.ToolBarItemsAlt['Signature'] ,config.ToolBarItemsAlt['Footnotes'] ]},
{ name: 'links', items : [ 'Link','Unlink' ] },
{ name: 'styles', items : [ 'Format', 'Styles' ,'Font','FontSize'] },
{ name: 'colors', items : [ 'TextColor','BGColor', font_assist ] },
{ name: 'paragraph', items : [ 'NumberedList','BulletedList','Indent','Outdent','Blockquote'] },
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'basicstyles', items: [ 'basicstyles', 'cleanup',config.ToolBarItemsAlt['Scayt'] ] },
{ name: 'tools', items : ['Source', 'Maximize','-','About'] },
{name: 'extras', items: config.ToolBarItemsExtra }
];
config.toolbar_DokuwikiNoGuest =
[
{ name: 'styles', items : [ 'Source'] },
{ name: 'tools', items : [ 'About' ] }
];
config.toolbar_DokuwikiGuest =
[
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'editing', items : [ 'Find','Replace','-','SelectAll'] },
{ name: 'insert', items : [ 'Table','HorizontalRule','Smiley','SpecialChar', 'Footnotes'] },
{ name: 'styles', items : [ 'Format', 'Styles' ] },
{ name: 'paragraph', items : [ 'NumberedList','BulletedList','Indent','Outdent'] },
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','-','Undo','Redo' ] },
{ name: 'basicstyles', items: [ 'basicstyles', 'cleanup' ] },
{ name: 'tools', items : [ 'Maximize','-','About' ] },
];
config.wrap_lang;
var params = 'call=wrap_lang&lang=' + CKEDITOR.lang.detect( 'en' ) ;
var get_wrap_lang = function() {
config.jquery.post(
config.doku_url + 'lib/exe/ajax.php',
params ,
function (data,status) {
if(status == "success") {
config.wrap_lang = JSON.parse(data);
}
else alert('lang failed');
},
'html'
);
}
get_wrap_lang();
config.dokuSmileyPath = config.doku_url + 'lib/images/smileys/';
config.dokuSmileyImages =
[['8-)','icon_cool.gif'],
['8-O','icon_eek.gif'],
[':-(','icon_sad.gif'],
[':-)','icon_smile.gif'],
['=)','icon_smile2.gif'],
[':-/','icon_doubt.gif'],
[':-?','icon_confused.gif'],
[':-D','icon_biggrin.gif'],
[':-P','icon_razz.gif'],
[':-O','icon_surprised.gif'],
[':-X','icon_silenced.gif'],
[':-|','icon_neutral.gif'],
[';-)','icon_wink.gif'],
['^_^','icon_fun.gif'],
[':?:','icon_question.gif'],
[':!:','icon_exclaim.gif'],
['LOL','icon_lol.gif']];
function do_smileys() {
config.jquery.post(
ckedit_path + "dwsmileys.php",
function(data,status) {
if(status == "success") {
config.dokuSmileyConfImages = new Array();
smileys = data.replace(/#.*?\n/g,"");
smileys = smileys.replace(/^[\s\n]+$/mg,"");
smileys=smileys.split(/\n/);
if(!smileys[0]) smileys.shift();
if(!smileys[smileys.length-1]) smileys.pop();
for(var i=0; i < smileys.length; i++) {
var a = smileys[i].split(/\s+/);
if(a[0].match(/DELETEME/) || a[0].match(/FIXME/)) {
config.dokuFixmeSmiley.push( a);
continue;
}
else if(a[0].match(/^([A-Z])+$/) && (!a[0].match(/^LOL$/))) {
config.dokuLargeSmiley.push(a);
config.dokuSmileyConfImages[i] =" ";
continue;
}
else config.dokuSmileyConfImages[i] = a;
}
}
},
'html'
);
}
config.removePlugins = 'liststyle';
config.dokuFixmeSmiley = new Array();
config.dokuLargeSmiley = new Array();
config.dokuSmileyConfImages;
try {
do_smileys();
}catch(ex){
}
config.ckgProtocols = "";
var get_dw_protocols = function() {
config.jquery.post(
ckedit_path + "schemes.php",
function (data,status) {
if(status == "success") {
config.ckgProtocols=data;
} else config.ckgProtocols = 'no data';
},
'html'
);
}
get_dw_protocols();
config.ckgEditorVer;
var get_ckgeditor_version = function() {
config.jquery.post(
ckedit_path + "get_version.php",
function (data,status) {
if(status == "success") {
config.ckgEditorVer=data;
}
else config.ckgEditorVer = "Dokuwiki plugin: ckgedit";
},
'html'
);
}
var getIwikiData = function() {
config.jquery.ajax({
method: "POST",
url: config.doku_url + 'lib/exe/ajax.php',
data: { call: 'iwiki_list'},
async: true,
dataType: "json",
})
.done(function(data)
{
retv = data;
config.ckgeditIwikiData = retv;
})
.fail(function(jqXHR, textStatus, errorThrown )
{
alert(textStatus);
alert(errorThrown);
});
};
getIwikiData();
var SelectOptions = function() {
var retv;
config.jquery.ajax(
config.doku_url + 'lib/exe/ajax.php',
{
data:
{
call: 'geshi_sel'
},
type: "GET",
dataType: "html",
success: function(data, textStatus, jqXHR)
{
config.geshi_opts = data;
},
error: function(jqXHR, textStatus, errorThrown )
{
alert(textStatus);
alert(errorThrown);
}
}
);
// return retv;
};
SelectOptions();
config.filebrowserWindowWidth='60%';
config.filebrowserWindowHeight = '60%';
//config.filebrowserWindowFeatures = 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes,left=20';
get_ckgeditor_version();
CKEDITOR.lang['default'] = {};
CKEDITOR.lang['default']['fbrowser'] = {
FileBrowserError_101: 'Folder already exists.',
FileBrowserError_102: 'Invalid folder name',
FileBrowserError_103: 'You have no permissions to create the folder.',
FileBrowserError_110: 'Unknown error creating folder',
FileBrowserError_201: 'A file with the same name is already available. The uploaded file has been renamed to: ',
FileBrowserError_202: 'Invalid file',
FileBrowserError_203: 'You do not have permission to upload files to this folder. If you think this is incorrect please notify your administrator.',
FileBrowserError_204: 'Unable to delete the selected file',
FileBrowserError_205: 'Unable to rename the selected file; check your directory/write permisssions',
FileBrowserError_206: ' already exists; you must either delete or rename it. ',
FileBrowserError_default: 'Error on your request. Error number: ',
FileBrowserError_Ajax: 'Your browser does not support AJAX.',
FileBrowserError_XML: 'The server didn\'t reply with a proper XML data. Please check your configuration.' ,
FileBrowserError_Folder_Submit: 'Please type the folder name.',
FileBrowserError_File_Submit: 'Please select a file from your computer',
FileBrowserError_Upload: 'Error on upload. Error number: ',
FileBrowserError_Connector: 'The connector is disabled. Check editor/filemanager/connectors/php/config.php',
FileBrowserError_Command: 'Unsupported command: ',
FileBrowserError_Type: 'Invalid type specified: ',
FolderMoveWarning: 'You can only move files to a folder one level below the current directory',
FileBrowserError_301: "The uploaded file exceeds the upload_max_filesize directive in php.ini.",
FileBrowserError_302: "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.",
FileBrowserError_303: "The uploaded file was only partially uploaded.",
FileBrowserError_304: "No file was uploaded.",
FileBrowserError_306: "Missing a temporary folder.",
FileBrowserError_307: "Failed to write file to disk.",
FileBrowserError_308: "PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help.",
DlgFileBrowserUpMsg: "Upload a new file in this folder",
DlgFileBrowserRead : "read-only",
DlgFileBrowserWrite : "uploadable",
DlgFileBrowserNewFolder: "Create Folder",
DlgFileBrowserResourceType: "Resource Type",
DlgLnkUpload : "Upload",
DlgFileBrowserMove: "Move",
InternalLink: "internal link",
InternalMedia: "internal media",
MediaFileLink: "link to media file",
SMBLabel: "Samba Share",
GetHeadingsLabel: 'Get Headings' ,
QStringLabel: 'Query String (For example: value_1=1&value_2=2) ',
ResetQS: 'Reset Query String',
NotSetOption: 'Not Set',
AdvancedInfo: "To create anchors from Dokuwiki headers, click on the Get Headings button, select the header, click OK. You can go back, select a new page and get new headers.",
AdvancedTabPrompt: 'Use the advanced tab to create page anchors and query strings',
SMBExample: "Enter your share as: \\\\Server\\directory\\file",
InterWikiLink: "Interwiki Link",
DlgFileBrowserWaitingMsg: 'Loading files, please wait.',
};
CKEDITOR.lang['default']['footnote'] = {
FootNoteInfo: '<div style="padding: 18px;font-size:125%;line-height:125%;">'+
'<ul style="list-style-type:disc;"><li>To create a footnote enter the footnote text into the editing box and click OK</li>'+
'<li>To edit a footnote enter the footnote id into the id box and click the Load button. <br /> The footnote will '+
'appear in the editing box, where you can then edit it.<br /> When you are finished editing, click OK to save.</li>'+
'<li> A footnote id has this form: <b>fckgL_&lt;n&gt;</b>, where n is the number of the note.</li></ul></div>',
ToolTip: 'Insert a footnote',
Settings: 'Settings',
Header: 'This dialog window lets you create and edit footnotes.',
Label_1 :'Footnote Text (required)',
Label_2: 'Footnote Id: ',
LoadButtonLabel : 'Load Note In Editor',
Title : 'Footnote Dialog',
Validate: 'The footnote text field cannot be empty.',
};
CKEDITOR.lang['default']['fontassist'] = {
Title: 'Font Plugin Editor',
ToolTip: 'Check and Revise Font Styling',
MainHeader: 'View and optionally alter text styled with the font plugin .',
SelectColor : ' Select Color',
SelectedTextColor : 'Selected Text Color',
SelectedBGColor : 'Selected Background Color',
BGColors : 'Background Colors',
InfoText : '<div style="max-width:400px; font-size: 12pt; white-space: pre-wrap;border:1px solid #cccccc; margin:auto; height: 350px; overflow:auto;">' +
'This tool works with the font plugin and is used to update the font plugin\'s syntax and/or view its enclosed text. ' +
'Clicking anywhere on the plugin syntax or its text will enable you to check the appearance of the font, its colors, and its size.'+
'<br /><br />You can also update the plugin syntax in place. To do this you must select both the font syntax itself and the enclosed text:' +
'<p style="text-indent: 50px; font-size: 12pt;"> &lt;font. . . &gt;text&lt;/font&gt;</p>' +
'Then whatever changes you make with this tool can be inserted into the editor window, by clicking OK, and will replace the current font syntax. ' +
'<br /><br />The font syntax will appear in the textbox below the display window and is updated with each change. '+
'Clicking on the text will select the text for copying.</div>',
Main: 'Main',
Text : 'Text',
IfChecked : ' If checked, uncheck to activate OK button',
Fonts : 'Fonts',
FontSizes : 'Font Sizes (px)',
ResetFont : 'Reset font',
ResetAll : 'Reset all',
TextColors : 'Text Colors',
Accept :'Accept',
Reset : 'Reset',
none : 'none',
};
CKEDITOR.lang['default']['signature'] = {
ToolTip: 'Insert signature'
};
config.allowedContent = true;
}; //end config.js

View File

@@ -0,0 +1,504 @@
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/*
This CSS applies to the old 'default' Dokuwiki template
*/
body
{
/* Font */
font-family: Arial, Verdana, sans-serif;
font-size: 12px;
/* Text color */
color: #222;
/* Remove the background color to make it transparent */
background-color: #fff;
}
ol,ul,dl
{
/* IE7: reset rtl list margin. (#7334) */
*margin-right:0px;
/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
padding:0 40px;
}
body, td, th {
font: 80% "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif;
}
body
{
background-color: #ffffff;
padding: 5px 5px 5px 5px;
margin: 0px;
}
table { min-width: 50%; }
th, .tblheader {
padding: 3px;
border: 1px solid #8cacbb !important;
background-color: #dee7ec;
font-weight: bold;
}
td {
padding: 3px;
border: 1px solid #8cacbb !important;
}
td
{
/* font-family: Arial, Verdana, sans-serif;
font-size: 10pt;
*/
}
a[href]
{
/* color: -moz-hyperlinktext !important; */ /* For Firefox... mark as important, otherwise it becomes black */
/* text-decoration: -moz-anchor-decoration; */ /* For Firefox 3, otherwise no underline will be used */
}
/*
Just uncomment the following block if you want to avoid spaces between
paragraphs. Remember to apply the same style in your output front end page.
*/
/*
p, ul, li
{
margin-top: 0px;
margin-bottom: 0px;
}
*/
/*
The following are some sample styles used in the "Styles" toolbar command.
You should instead remove them, and include the styles used by the site
you are using the editor in.
*/
.Bold
{
font-weight: bold;
}
.Title
{
font-weight: bold;
font-size: 18px;
color: #cc3300;
}
pre {
margin: 0 0 1.0em 0;
font-size: 120%;
padding: 0.5em;
border: 1px dashed black;
color: black;
overflow: auto;
}
/* code blocks by code tag */
pre.code {
background-color: #f7f9fa;
line-height:100%;
}
pre.file {
background-color: #dee7ec;
line-height:100%;
}
h1,h2,h3,h4,h5 {
color: black;
background-color: inherit;
font-size: 100%;
font-weight: normal;
margin: 0 0 1em 0;
padding: 0.5em 0 0 0;
border-bottom: 1px solid #8cacbb;
clear: left;
}
h1,h2,h3,h4,h5
{
color: black !important;
text-decoration: none !important;
}
h1 {font-size: 160%; margin-left: 0px; font-weight: bold;}
h2 {font-size: 150%; margin-left: 20px;}
h3 {font-size: 140%; margin-left: 40px; border-bottom: none; font-weight: bold;}
h4 {font-size: 120%; margin-left: 60px; border-bottom: none; font-weight: bold; }
h5 {font-size: 100%; margin-left: 80px; border-bottom: none; font-weight: bold;}
div.level1 {margin-left: 3px;}
div.level2 {margin-left: 23px;}
div.level3 {margin-left: 43px;}
div.level4 {margin-left: 63px;}
div.dokuwiki div.level5 {margin-left: 83px;}
img.media {
border: 0;
margin: 3px;
}
img.medialeft {
border: 0;
margin: 0 1.5em 0 0;
float: left;
}
img.baseline {
vertical-align:bottom;
text-align:left;
display:block;
border: 0;
margin: 3px;
}
img.mediaright {
border: 0;
float: right;
margin: 0 0 0 1.5em;
}
img.mediacenter, .mediacenter {
text-align:center;
display:block;
border: 0 ;
border-top: 3px solid none;
margin: 0 auto;
}
.leftalign {text-align: left;}
.centeralign {text-align: center;}
.rightalign {text-align: right;}
div.footnotes {
clear: both;
border-top: 1px solid black;
padding-left: 1em;
margin-top: 1em;
}
div.fn {
font-size: 90%;
}
a.fn_bot {
font-weight: bold;
}
.dwcode {
font-family: sans-serif;
}
/* unordered lists */
ul {
line-height: 1.5em;
list-style-type: square;
list-style-image: none;
margin: 0 0 1em 3.5em;
color: black;
}
/* ordered lists */
ol {
line-height: 1.5em;
list-style-image: none;
margin: 0 0 1em 3.5em;
color: black;
}
/* no gap in between nested lists */
li ul {
margin-bottom: 0;
}
li ol {
margin-bottom: 0;
}
ol {list-style-type: decimal}
ol ol {list-style-type: upper-roman}
ol ol ol {list-style-type: lower-alpha}
ol ol ol ol {list-style-type: lower-greek}
li { font-weight: normal; }
a.windows {
background: transparent url(images/windows.gif) 0px 1px no-repeat;
padding: 1px 0px 1px 16px;
color: #436976 !important;
text-decoration: none !important;
}
a.urlextern {
background: transparent url(images/link_icon.gif) 0px 1px no-repeat;
padding: 1px 0px 1px 16px;
color: #436976 !important;
text-decoration: none !important;
}
a.wikilink2 {
color: red !important;
text-decoration: none !important;
}
a.wikilink1 {
color: green !important;
text-decoration: none !important;
}
span.np_break {
line-height: 50%;
border:0px;
padding:0px;
margin:0px;
}
/* filenames for file and code blocks */
dl.file,
dl.code {
margin-top: 2em;
margin-bottom: 2.5em;
}
dl.file dt,
dl.code dt {
border: 1px dashed #8cacbb;
display: inline;
padding: 0.1em 1em;
margin-left: 5em;
}
dl.code dt a,
dl.file dt a {
color:#000;
}
dl.code dt {
background-color: __background_other__;
border-bottom: 1px solid __background_other__;
}
dl.file dt {
background-color: #dee7ec;
border-bottom: 1px solid #dee7ec;
}
dd pre.file {
line-height: 125%;
}
/* syntax highlighting code */
.code .br0 { color: #66cc66; }
.code .co0 { color: #808080; font-style: italic; }
.code .co1 { color: #808080; font-style: italic; }
.code .co2 { color: #808080; font-style: italic; }
.code .co3 { color: #808080; }
.code .coMULTI { color: #808080; font-style: italic; }
.code .es0 { color: #000099; font-weight: bold; }
.code .kw1 { color: #b1b100; }
.code .kw2 { color: #000000; font-weight: bold; }
.code .kw3 { color: #000066; }
.code .kw4 { color: #993333; }
.code .kw5 { color: #0000ff; }
.code .me1 { color: #006600; }
.code .me2 { color: #006600; }
.code .nu0 { color: #cc66cc; }
.code .re0 { color: #0000ff; }
.code .re1 { color: #0000ff; }
.code .re2 { color: #0000ff; }
.code .re3 { color: #ff3333; font-weight:bold; }
.code .re4 { color: #009999; }
.code .st0 { color: #ff0000; }
.code .sy0 { color: #66cc66; }
a.mediafile {
background: url(images/fileicons/file.png) no-repeat scroll 0 1px transparent;
padding-bottom: 1px;
padding-left: 18px;
color: #436976 !important;
text-decoration: none !important;
}
/* email link */
a.mail {
background: transparent url(images/mail_icon.gif) 0px 1px no-repeat;
padding: 1px 0px 1px 16px;
color: #436976 !important;
text-decoration: none !important;
}
a.mf_gz {
background-image: url(images/fileicons/gz.png);
}
a.mf_csv {
background-image: url(images/fileicons/csv.png);
}
a.mf_gif {
background-image: url(images/fileicons/gif.png);
}
a.mf_png {
background-image: url(images/fileicons/png.png);
}
a.mf_txt {
background-image: url(images/fileicons/txt.png);
}
a.mf_tar {
background-image: url(images/fileicons/tar.png);
}
a.mf_jpg {
background-image: url(images/fileicons/jpg.png);
}
a.mf_xml {
background-image: url(images/fileicons/xml.png);
}
a.mf_c {
background-image: url(images/fileicons/c.png);
}
a.mf_ppt {
background-image: url(images/fileicons/ppt.png);
}
a.mf_conf {
background-image: url(images/fileicons/conf.png);
}
a.mf_xls {
background-image: url(images/fileicons/xls.png);
}
a.mf_doc {
background-image: url(images/fileicons/doc.png);
}
a.mf_php {
background-image: url(images/fileicons/php.png);
}
a.mf_cs {
background-image: url(images/fileicons/cs.png);
}
a.mf_pdf {
background-image: url(images/fileicons/pdf.png);
}
a.mf_odc {
background-image: url(images/fileicons/odg.png);
}
a.mf_cpp {
background-image: url(images/fileicons/cpp.png);
}
a.mf_sql {
background-image: url(images/fileicons/sql.png);
}
a.mf_bz2 {
background-image: url(images/fileicons/bz2.png);
}
a.mf_zip {
background-image: url(images/fileicons/zip.png);
}
a.mf_deb {
background-image: url(images/fileicons/deb.png);
}
a.mf_jpeg {
background-image: url(images/fileicons/jpeg.png);
}
a.mf_odg {
background-image: url(images/fileicons/odg.png);
}
a.mf_py {
background-image: url(images/fileicons/py.png);
}
a.mf_js {
background-image: url(images/fileicons/js.png);
}
a.mf_java {
background-image: url(images/fileicons/java.png);
}
a.mf_htm {
background-image: url(images/fileicons/htm.png);
}
a.mf_odt {
background-image: url(images/fileicons/odt.png);
}
a.mf_rtf {
background-image: url(images/fileicons/rtf.png);
}
a.mf_odf {
background-image: url(images/fileicons/odg.png);
}
a.mf_css {
background-image: url(images/fileicons/css.png);
}
a.mf_docx {
background-image: url(images/fileicons/docx.png);
}
a.mf_xlsx {
background-image: url(images/fileicons/xlsx.png);
}
a.mf_odp {
background-image: url(images/fileicons/odg.png);
}
a.mf_rar {
background-image: url(images/fileicons/rar.png);
}
a.mf_tgz {
background-image: url(images/fileicons/tgz.png);
}
a.mf_7z {
background-image: url(images/fileicons/7z.png);
}
a.mf_html {
background-image: url(images/fileicons/html.png);
}
a.mf_pl {
background-image: url(images/fileicons/pl.png);
}
a.mf_rpm {
background-image: url(images/fileicons/rpm.png);
}
a.mf_ps {
background-image: url(images/fileicons/ps.png);
}
a.mf_swf {
background-image: url(images/fileicons/swf.png);
}
a.mf_epub {
background-image: url(images/fileicons/epub.png);
}
a.interwiki {
background: url(images/fileicons/wp.gif) no-repeat scroll 0 1px transparent;
padding-bottom: 1px;
padding-left: 18px;
color: #436976 !important;
text-decoration: none !important;
}
/*
a.interwiki {
background-image: url(images/fileicons/wp.gif);
}
*/
span.multi_p_open
{
display: block;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,571 @@
@import "additional.css";
body
{
font: normal 87.5%/1.4 Arial, sans-serif;
/* default font size: 100% => 16px; 93.75% => 15px; 87.5% => 14px; 81.25% => 13px; 75% => 12px */
-webkit-text-size-adjust: 100%;
/* Text color */
color: #222;
/* Remove the background color to make it transparent */
background-color: #fff;
}
ol,ul,dl
{
margin-right:0px;
/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
padding:0 40px;
}
table {
border-collapse: collapse;
empty-cells: show;
border-spacing: 0;
border: 1px solid #ccc;
min-width: 40%;
}
th, .tblheader {
padding: 3px;
border: 1px solid #8cacbb !important;
background-color: #dee7ec;
font-weight: bold;
}
caption {
caption-side: top;
text-align: left;
}
[dir=rtl] caption {
text-align: right;
}
th,
td {
padding: .3em .5em;
margin: 0;
vertical-align: top;
border: 1px solid #ccc;
}
th {
font-weight: bold;
background-color: #eee;
text-align: left;
}
a[href]
{
/* color: -moz-hyperlinktext !important; */ /* For Firefox... mark as important, otherwise it becomes black */
/* text-decoration: -moz-anchor-decoration; */ /* For Firefox 3, otherwise no underline will be used */
}
/*
Just uncomment the following block if you want to avoid spaces between
paragraphs. Remember to apply the same style in your output front end page.
*/
/*
p, ul, li
{
margin-top: 0px;
margin-bottom: 0px;
}
*/
/*
The following are some sample styles used in the "Styles" toolbar command.
You should instead remove them, and include the styles used by the site
you are using the editor in.
*/
.Bold
{
font-weight: bold;
}
.Title
{
font-weight: bold;
font-size: 18px;
color: #cc3300;
}
pre,
tt,
code,
samp,
kbd {
font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace;
/* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */
font-size: 1em;
direction: ltr;
text-align: left;
background-color: #fbfaf9;
color: #333;
box-shadow: inset 0 0 .3em #ccc;
border-radius: 2px;
}
/* fix if background-color hides underlining */
em.u code {
text-decoration: underline;
}
/*code new tmpl start*/
pre {
border: 1px solid #ccc;
padding: .75em 1em;
}
/* for code in <file> */
/* filenames for downloadable file and code blocks */
dl.code,
dl.file {
}
pre {
overflow: auto;
word-wrap: normal;
border: 1px solid #ccc;
border-radius: 2px;
box-shadow: inset 0 0 .5em #ccc;
padding: .7em 1em;
background-color: #fbfaf9 !important;
}
dl.code dt a,
dl.file dt a {
background-color: transparent;
font-size: 0.875em;
font-weight: normal;
display: block;
min-height: 16px;
color: #2b73b7 !important;
}
dl.code dt,
dl.file dt {
background-color: #fbfaf9;
color: inherit;
border: 1px solid #ccc;
border-bottom-color: #fbfaf9;
border-top-left-radius: .3em;
border-top-right-radius: .3em;
padding: .3em .6em .1em;
padding-bottom: 1px;
margin-bottom: -1px;
margin-left:0px;
float: left;
}
dl.code dd,
dl.file dd {
margin: 0;
clear: left;
background-color: #fbfaf9;
}
/* Code new tmpl ends */
h1,
h2,
h3,
h4,
h5,
h6,
caption,
legend {
font-family: Arial, sans-serif;
font-weight: bold;
background-color: inherit;
padding: 0;
line-height: 1.2;
clear: left; /* ideally 'both', but problems with toc */
}
img.baseline {
vertical-align:bottom;
text-align:left;
display:block;
border: 0;
margin: 3px;
}
/* image alignment */
.medialeft {
float: left;
}
.mediaright {
float: right;
}
.mediacenter {
display: block;
margin-left: auto;
margin-right: auto;
}
img.media {
margin: .2em 0;
}
img.medialeft {
margin: .2em 1em .2em 0;
}
img.mediaright {
margin: .2em 0 .2em 1em;
}
img.mediacenter {
margin: .2em auto;
}
.leftalign {text-align: left;}
.centeralign {text-align: center;}
.rightalign {text-align: right;}
div.footnotes {
clear: both;
border-top: 1px solid black;
padding-left: 1em;
margin-top: 1em;
}
div.fn {
font-size: 90%;
}
a.fn_bot {
font-weight: bold;
}
/*____________ lists ____________*/
ul,
ol {
padding: 0 0 0 1.5em;
}
li,
dd {
padding: 0;
margin: 0 0 0 1.5em;
}
dt {
font-weight: bold;
margin: 0;
padding: 0;
}
li ul,
li ol,
li dl,
dl ul,
dl ol,
dl dl {
margin-bottom: 0;
padding: 0;
}
li li {
font-size: 100%;
}
ul { list-style: square outside; }
ol { list-style: decimal outside; }
ol ol { list-style-type: lower-alpha; }
ol ol ol { list-style-type: upper-roman; }
ol ol ol ol { list-style-type: upper-alpha; }
ol ol ol ol ol { list-style-type: lower-roman; }
a.urlextern,
a.windows,
a.mail,
a.mediafile,
a.interwiki {
background-repeat: no-repeat;
background-position: 0 center;
padding: 0 0 0 20px;
color: #1c86ff !important;
}
a.windows {
background: transparent url(images/unc.png) 0px 1px no-repeat;
padding: 1px 0px 1px 16px;
color: #436976 !important;
text-decoration: none !important;
}
a.urlextern {
background: transparent url(images/external-link.png) 0px 1px no-repeat;
padding: 1px 0px 1px 16px;
color: #436976 !important;
text-decoration: none !important;
}
a.wikilink2:link,
a.wikilink2:visited {
border-bottom: 1px dashed;
}
a.wikilink2:hover,
a.wikilink2:active,
a.wikilink2:focus {
border-bottom-width: 0;
}
a.wikilink2 {
color: red !important;
text-decoration: none !important;
}
a.wikilink1 {
color: green !important;
text-decoration: none !important;
}
span.np_break {
line-height: 50%;
border:0px;
padding:0px;
margin:0px;
}
/* syntax highlighting code */
.code .br0 { color: #66cc66; }
.code .co0 { color: #808080; font-style: italic; }
.code .co1 { color: #808080; font-style: italic; }
.code .co2 { color: #808080; font-style: italic; }
.code .co3 { color: #808080; }
.code .coMULTI { color: #808080; font-style: italic; }
.code .es0 { color: #000099; font-weight: bold; }
.code .kw1 { color: #b1b100; }
.code .kw2 { color: #000000; font-weight: bold; }
.code .kw3 { color: #000066; }
.code .kw4 { color: #993333; }
.code .kw5 { color: #0000ff; }
.code .me1 { color: #006600; }
.code .me2 { color: #006600; }
.code .nu0 { color: #cc66cc; }
.code .re0 { color: #0000ff; }
.code .re1 { color: #0000ff; }
.code .re2 { color: #0000ff; }
.code .re3 { color: #ff3333; font-weight:bold; }
.code .re4 { color: #009999; }
.code .st0 { color: #ff0000; }
.code .sy0 { color: #66cc66; }
a.mediafile {
background: url(images/fileicons/file.png) no-repeat scroll 0 1px transparent;
padding-bottom: 1px;
padding-left: 18px;
color: #436976 !important;
text-decoration: none !important;
}
/* email link */
a.mail {
background: transparent url(images/mail_icon.gif) 0px 1px no-repeat;
padding: 1px 0px 1px 16px;
color: #436976 !important;
text-decoration: none !important;
}
a.mf_gz {
background-image: url(images/fileicons/gz.png);
}
a.mf_csv {
background-image: url(images/fileicons/csv.png);
}
a.mf_gif {
background-image: url(images/fileicons/gif.png);
}
a.mf_png {
background-image: url(images/fileicons/png.png);
}
a.mf_txt {
background-image: url(images/fileicons/txt.png);
}
a.mf_tar {
background-image: url(images/fileicons/tar.png);
}
a.mf_jpg {
background-image: url(images/fileicons/jpg.png);
}
a.mf_xml {
background-image: url(images/fileicons/xml.png);
}
a.mf_c {
background-image: url(images/fileicons/c.png);
}
a.mf_ppt {
background-image: url(images/fileicons/ppt.png);
}
a.mf_conf {
background-image: url(images/fileicons/conf.png);
}
a.mf_xls {
background-image: url(images/fileicons/xls.png);
}
a.mf_doc {
background-image: url(images/fileicons/doc.png);
}
a.mf_php {
background-image: url(images/fileicons/php.png);
}
a.mf_cs {
background-image: url(images/fileicons/cs.png);
}
a.mf_pdf {
background-image: url(images/fileicons/pdf.png);
}
a.mf_odc {
background-image: url(images/fileicons/odg.png);
}
a.mf_cpp {
background-image: url(images/fileicons/cpp.png);
}
a.mf_sql {
background-image: url(images/fileicons/sql.png);
}
a.mf_bz2 {
background-image: url(images/fileicons/bz2.png);
}
a.mf_zip {
background-image: url(images/fileicons/zip.png);
}
a.mf_deb {
background-image: url(images/fileicons/deb.png);
}
a.mf_jpeg {
background-image: url(images/fileicons/jpeg.png);
}
a.mf_odg {
background-image: url(images/fileicons/odg.png);
}
a.mf_py {
background-image: url(images/fileicons/py.png);
}
a.mf_js {
background-image: url(images/fileicons/js.png);
}
a.mf_java {
background-image: url(images/fileicons/java.png);
}
a.mf_htm {
background-image: url(images/fileicons/htm.png);
}
a.mf_odt {
background-image: url(images/fileicons/odt.png);
}
a.mf_rtf {
background-image: url(images/fileicons/rtf.png);
}
a.mf_odf {
background-image: url(images/fileicons/odg.png);
}
a.mf_css {
background-image: url(images/fileicons/css.png);
}
a.mf_docx {
background-image: url(images/fileicons/docx.png);
}
a.mf_xlsx {
background-image: url(images/fileicons/xlsx.png);
}
a.mf_odp {
background-image: url(images/fileicons/odg.png);
}
a.mf_rar {
background-image: url(images/fileicons/rar.png);
}
a.mf_tgz {
background-image: url(images/fileicons/tgz.png);
}
a.mf_7z {
background-image: url(images/fileicons/7z.png);
}
a.mf_html {
background-image: url(images/fileicons/html.png);
}
a.mf_pl {
background-image: url(images/fileicons/pl.png);
}
a.mf_rpm {
background-image: url(images/fileicons/rpm.png);
}
a.mf_ps {
background-image: url(images/fileicons/ps.png);
}
a.mf_swf {
background-image: url(images/fileicons/swf.png);
}
a.mf_epub {
background-image: url(images/fileicons/epub.png);
}
a.interwiki {
background: url(images/fileicons/wp.gif) no-repeat scroll 0 1px transparent;
padding-bottom: 1px;
padding-left: 18px;
color: #436976 !important;
text-decoration: none !important;
}
dl.code dd,
dl.file dd {
margin: 0;
clear: left;
min-height: 1px; /* for IE7 */
}
[dir=rtl] .dokuwiki dl.code dd,
[dir=rtl] .dokuwiki dl.file dd {
clear: right;
}
span.multi_p_open
{
display: block;
}
a.urlextern,
a.windows,
a.mail,
a.mediafile,
a.interwiki,
a.urlextern:visited,
a.windows:visited,
a.mail:visited,
a.mediafile:visited,
a.interwiki:visited
{
color: #1c86ff !important;
text-decoration:none;
}
blockquote {
padding-left: .5em;
margin-left: 1.5em;
}

View File

@@ -0,0 +1,8 @@
blockquote {
border: 1px dotted #ccc;
background: #eee url(data:image/gif;base64,R0lGODlhLgAcAMQAAPT09PHx8e7u7unp6ejo6Ofn5+bm5uXl5eTk5OPj4+Li4t/f397e3t3d3dzc3Nvb29ra2v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABEALAAAAAAuABwAAAW2YCSOJLkgaJqWrKi+ram8dBwJdB03Od3Ehh6MdUgIXwvWcVhyLFEMCEP5tD2WD1tkqY1chT/t0dB1CrNiIVl7OCbTwu722F0Cujzhoa6WG4UObGMBfEtvVEtrLU8qhyOMKIokkCl7IwOUCAWIlJOZCJyQlnOZBCWfCAqPqKesIm2frbEimLMjeZQJnpmhT45BlKMjX5C9RwKLkGiyiTaMqi3AXHA90EDTeD2Bcj1yJSeV3rugXSEAOw==) no-repeat 0.3em 0.3em;
padding: 1em;
overflow: hidden;
margin: 1em auto 1em auto;
max-width: 90%;
}

View File

@@ -0,0 +1,10 @@
<?php
/**
lib/plugins/ckgedit/fckeditor/dwsmileys.php
*/
$SMILEYS = realpath(dirname(__FILE__).'/../../../../').'/conf/smileys.conf';
if(!file_exists($SMILEYS)) $SMILEYS ='/etc/dokuwiki/smileys.conf';
$LOCAL = preg_replace("/\.conf$/", '.local.conf', $SMILEYS) ;
if(file_exists($LOCAL)) readfile($LOCAL);
readfile($SMILEYS);

View File

@@ -0,0 +1,84 @@
<?php
define("DOKU_INC", realpath(dirname(__FILE__).'/../../../../') . '/');
define ("DOKU_PLUGIN", DOKU_INC . 'lib/plugins/');
define("PAGES", DOKU_INC . 'data/pages/');
define("FCKEDITOR", DOKU_PLUGIN . 'ckgedit/fckeditor/editor/');
define('CONNECTOR', FCKEDITOR . 'filemanager/connectors/php/');
require_once(CONNECTOR . 'check_acl.php');
if(file_exists(DOKU_INC.'inc/Input.class.php')) {
require_once(DOKU_INC.'inc/Input.class.php');
}
else {
require_once(DOKU_PLUGIN . 'ckgedit/fckeditor/editor/filemanager/connectors/php/Input.class.php');
}
require_once(CONNECTOR . 'SafeFN.class.php');
global $dwfck_conf;
global $Dwfck_conf_values;
$INPUT = new Input();
$page = $INPUT->str('dw_id');
$page = ltrim($page, ':');
$dwfck_conf = doku_config_values(); // needed for cleanID
$Dwfck_conf_values = $dwfck_conf;
$page = str_replace(':', '/',$page);
$page = dwiki_encodeFN($page);
if(!empty($Dwfck_conf_values['ckg_savedir'])) {
if (stristr(PHP_OS, 'WIN')) {
$path = realpath(DOKU_INC . $Dwfck_conf_values['ckg_savedir']);
$path .= '/pages/' . $page . '.txt';
}
else $path = $Dwfck_conf_values['ckg_savedir'] . '/pages/' . $page . '.txt';
}
else $path = PAGES . $page . '.txt';
$resp = "";
$headers = array();
$lines = file($path);
foreach ($lines as $line) {
if (preg_match('/^=+([^=]+)=+\s*$/',$line,$matches)) {
$suffix_anchor = "";
$suffix_header = "";
if(isset($headers[$matches[1]])) {
$headers[$matches[1]]++;
$suffix_anchor = $headers[$matches[1]];
$suffix_header = " [$suffix_anchor]";
}
else {
$headers[$matches[1]]=0;
}
$resp .= trim($matches[1]) . $suffix_header . ";;" ;
$resp .= cleanID($matches[1]). $suffix_anchor . "@@" ;
}
}
$resp = rtrim($resp,'@');
echo rawurlencode($resp);
//file_put_contents('ajax-resp.txt', "dw_id=" . $_REQUEST['dw_id'] . "\npage=$page\npath=$path\n$resp\n" );
echo "\n";
function doku_config_values() {
$dwphp = DOKU_INC . 'conf/dokuwiki.php';
$localphp = DOKU_INC . 'conf/local.php';
$conf['ckg_savedir']= false;
if(file_exists($dwphp))
{
include($dwphp);
if(file_exists($localphp))
{
include($localphp);
}
$sv = preg_replace("#^\.+/#","",$conf['savedir']);
if($sv != 'data') {
$conf['ckg_savedir']= $conf['savedir'];
}
return $conf;
}
return false;
}
?>

View File

@@ -0,0 +1,8 @@
<?php
/**
lib/plugins/ckgedit/fckeditor/dwsmileys.php
*/
echo file_get_contents('../version');

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

View File

@@ -0,0 +1,2 @@
For the generator of these files see
https://github.com/splitbrain/file-icon-generator/blob/master/example-dokuwiki.php

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

View File

@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<title>filetype icons</title>
<style type="text/css">
body {
background-color: #ccc;
font-family: Arial;
}
.box {
width: 200px;
float:left;
padding: 0.5em;
margin: 0;
}
.white {
background-color: #fff;
}
.black {
background-color: #000;
}
</style>
</head>
<body>
<div class="white box">
<?php
foreach (glob('*.png') as $img) {
echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
}
?>
</div>
<div class="black box">
<?php
foreach (glob('*.png') as $img) {
echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
}
?>
</div>
<br style="clear: left" />
<div class="white box">
<?php
foreach (glob('32x32/*.png') as $img) {
echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
}
?>
</div>
<div class="black box">
<?php
foreach (glob('32x32/*.png') as $img) {
echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
}
?>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Some files were not shown because too many files have changed in this diff Show More