Change base to be the default DokuWiki template

This commit is contained in:
2026-01-30 11:17:54 +01:00
parent decb19f5bd
commit 90786557a2
90 changed files with 4205 additions and 1812 deletions

339
COPYING
View File

@@ -1,339 +0,0 @@
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.

5
README
View File

@@ -1,5 +0,0 @@
See template.info.txt for main info
See COPYING for license info
Notes:
- Default UI font uses the bundled "Perfect DOS VGA 437" from the fonts directory.

View File

@@ -1,8 +0,0 @@
<?php
/*
* default configuration settings
*
*/
$conf['hideTools'] = 0;
$conf['sidebarIsNav'] = 1;

View File

@@ -1,8 +0,0 @@
<?php
/*
* configuration metadata
*
*/
$meta['hideTools'] = array('onoff');
$meta['sidebarIsNav'] = array('onoff');

73
css/_admin.less Executable file
View File

@@ -0,0 +1,73 @@
.dokuwiki div.ui-admin {
/* main task grouped in two columns */
ul.admin_tasks {
float: left;
width: 40%;
list-style-type: none;
font-size: 1.125em;
}
[dir=rtl] & ul.admin_tasks {
float: right;
}
/* general menu item styling */
ul {
padding: 0;
li {
margin: 0 0 1em 0;
font-weight: bold;
list-style-type: none;
white-space: nowrap;
a {
display: flex;
span {
display: inline-block;
&.icon {
width: 1.5em;
min-height: 1.5em;
margin: 0 0.5em;
vertical-align: top;
svg {
width: 1.5em;
height: 1.5em;
fill: @ini_link;
display: inline-block;
path {
fill: @ini_link;
}
}
}
&.prompt {
white-space: normal;
}
}
}
}
}
/* DokuWiki version */
#admin__version {
clear: left;
float: right;
color: @ini_text_neu;
background-color: inherit;
}
[dir=rtl] & #admin__version {
clear: right;
float: left;
}
/* data directory security check */
#security__check {
float: right;
max-width: 20em;
}
[dir=rtl] & #admin__version {
float: left;
}
}

140
css/_diff.css Executable file
View File

@@ -0,0 +1,140 @@
/**
* This file provides styles for the diff view, which shows you
* differences between two versions of a page (?do=diff).
*/
.dokuwiki table.diff {
width: 100%;
border-width: 0;
}
.dokuwiki table.diff th,
.dokuwiki table.diff td {
vertical-align: top;
padding: 0;
border-width: 0;
/* no style.ini colours because deleted and added lines have a fixed background colour */
background-color: #fff;
color: #333;
}
/* table header */
.dokuwiki table.diff th {
border-bottom: 1px solid @ini_border;
font-size: 110%;
font-weight: normal;
}
.dokuwiki table.diff th a {
font-weight: bold;
}
.dokuwiki table.diff th span.user {
font-size: .9em;
}
.dokuwiki table.diff th span.sum {
font-size: .9em;
font-weight: bold;
}
.dokuwiki table.diff th.minor {
color: #999;
}
.dokuwiki table.diff_sidebyside th {
width: 50%;
}
/* table body */
.dokuwiki table.diff .diff-lineheader {
width: .7em;
text-align: right;
}
[dir=rtl] .dokuwiki table.diff .diff-lineheader {
text-align: left;
}
.dokuwiki table.diff .diff-lineheader,
.dokuwiki table.diff td {
font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace;
}
.dokuwiki table.diff td.diff-blockheader {
font-weight: bold;
}
.dokuwiki table.diff .diff-addedline {
background-color: #cfc;
color: black;
width: ~"calc(50% - .7em)";
}
.dokuwiki table.diff .diff-deletedline {
background-color: #fdd;
color: black;
width: ~"calc(50% - .7em)";
}
.dokuwiki table.diff td.diff-context {
background-color: #eee;
color: black;
width: ~"calc(50% - .7em)";
}
.dokuwiki table.diff td.diff-addedline strong,
.dokuwiki table.diff td.diff-deletedline strong {
color: #f00;
background-color: inherit;
font-weight: bold;
}
/* diff options */
.dokuwiki .diffoptions form {
float: left;
}
.dokuwiki .diffoptions p {
float: right;
}
/* diff nav */
.dokuwiki table.diff_sidebyside td.diffnav {
padding-bottom: .7em;
}
.dokuwiki .diffnav a {
display: inline-block;
vertical-align: middle;
}
.dokuwiki .diffnav a span {
display: none;
}
.dokuwiki .diffnav a:hover,
.dokuwiki .diffnav a:active,
.dokuwiki .diffnav a:focus {
background-color: @ini_background_alt;
text-decoration: none;
}
.dokuwiki .diffnav a:before {
display: inline-block;
line-height: 1;
padding: .2em .4em;
border: 1px solid @ini_border;
border-radius: 2px;
color: @ini_text;
}
.dokuwiki .diffnav a.diffprevrev:before {
content: '\25C0'; /* left triangle */
}
.dokuwiki .diffnav a.diffnextrev:before,
.dokuwiki .diffnav a.difflastrev:before {
content: '\25B6'; /* right triangle */
}
.dokuwiki .diffnav a.diffbothprevrev:before {
content: '\25C0\25C0';
}
.dokuwiki .diffnav a.diffbothnextrev:before {
content: '\25B6\25B6';
}
.dokuwiki .diffnav select {
width: 60%;
min-width: 9em;
height: 1.5em; /* height is necessary for longer options in Webkit */
}
.dokuwiki .diffnav select option[selected] {
font-weight: bold;
}

142
css/_edit.css Executable file
View File

@@ -0,0 +1,142 @@
/**
* This file provides styles for the edit view (?do=edit), preview
* and section edit buttons.
*/
/* edit view
********************************************************************/
.dokuwiki div.editBox {
}
/*____________ toolbar ____________*/
.dokuwiki div.toolbar {
display: inline-block;
margin-bottom: .5em;
}
#draft__status {
float: right;
color: @ini_text_alt;
background-color: inherit;
}
[dir=rtl] #draft__status {
float: left;
}
#tool__bar {
float: left;
}
[dir=rtl] #tool__bar {
float: right;
}
/* buttons inside of toolbar */
.dokuwiki div.toolbar button.toolbutton {
}
/* picker popups (outside of .dokuwiki) */
div.picker {
width: 300px;
border: 1px solid @ini_border;
background-color: @ini_background_alt;
color: inherit;
}
/* picker for headlines */
div.picker.pk_hl {
width: auto;
}
/* buttons inside of picker */
div.picker button.pickerbutton,
div.picker button.toolbutton {
padding: .1em .35em;
border-width: 0;
}
/*____________ edit textarea ____________*/
.dokuwiki textarea.edit {
width: 100%;
margin-bottom: .5em;
resize: vertical;
}
/*____________ below the textarea ____________*/
.dokuwiki div.editBar {
overflow: hidden;
margin-bottom: .5em;
}
/* size and wrap controls */
#size__ctl {
float: right;
}
[dir=rtl] #size__ctl {
float: left;
}
#size__ctl img {
cursor: pointer;
}
/* edit buttons */
.dokuwiki .editBar .editButtons {
display: inline;
margin-right: 1em;
}
[dir=rtl] .dokuwiki .editBar .editButtons {
margin-right: 0;
margin-left: 1em;
}
.dokuwiki .editBar .editButtons button {
}
/* summary input and minor changes checkbox */
.dokuwiki .editBar .summary {
display: inline;
}
.dokuwiki .editBar .summary label {
vertical-align: middle;
white-space: nowrap;
}
.dokuwiki .editBar .summary label span {
vertical-align: middle;
}
.dokuwiki .editBar .summary input {
}
/* change background colour if summary is missing */
.dokuwiki .editBar .summary input.missing {
color: @ini_text;
background-color: #ffcccc;
}
/* preview
********************************************************************/
.dokuwiki div.preview {
border: dotted @ini_border;
border-width: .2em 0;
padding: 1.4em 0;
margin-bottom: 1.4em;
}
/* section edit buttons
********************************************************************/
.dokuwiki .secedit {
float: right;
margin-top: -1.4em;
}
[dir=rtl] .dokuwiki .secedit {
float: left;
}
.dokuwiki .secedit button {
font-size: 75%;
}
/* style for section highlighting */
.dokuwiki div.section_highlight {
margin: 0 -1em; /* negative side margin = side padding + side border */
padding: 0 .5em;
border: solid @ini_background_alt;
border-width: 0 .5em;
}

107
css/_fileuploader.css Executable file
View File

@@ -0,0 +1,107 @@
/**
* This file provides the styles for the file uploader
* used in the media manager (both fullscreen and popup).
*/
.qq-uploader {
position: relative;
width: 100%;
}
.qq-uploader .error {
color: #f00;
background-color: #fff;
}
/* select file button */
.qq-upload-button {
display: inline-block;
text-decoration: none;
font-size: 100%;
cursor: pointer;
margin: 1px 1px 5px;
}
.qq-upload-button-focus {
outline: 1px dotted;
}
/* drop area */
.qq-upload-drop-area {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
min-height: 70px;
z-index: 2;
background: @ini_background_neu;
color: @ini_text;
text-align: center;
}
.qq-upload-drop-area span {
display: block;
position: absolute;
top: 50%;
width: 100%;
margin-top: -8px;
font-size: 120%;
}
.qq-upload-drop-area-active {
background: @ini_background_alt;
}
/* list of files to upload */
div.qq-uploader ul {
margin: 0;
padding: 0;
list-style: none;
}
.qq-uploader li {
margin: 0 0 5px;
color: @ini_text;
}
.qq-uploader li span,
.qq-uploader li input,
.qq-uploader li a {
margin-right: 5px;
}
.qq-upload-file {
display: block;
font-weight: bold;
}
.qq-upload-spinner {
display: inline-block;
background: url("../../images/throbber.gif");
width: 15px;
height: 15px;
vertical-align: text-bottom;
}
.qq-upload-size,
.qq-upload-cancel {
font-size: 85%;
}
.qq-upload-failed-text {
display: none;
}
.qq-upload-fail .qq-upload-failed-text {
display: inline;
}
.qq-action-container * {
vertical-align: middle;
}
.qq-overwrite-check input {
margin-left: 10px;
}

31
css/_footnotes.css Executable file
View File

@@ -0,0 +1,31 @@
/**
* This file provides styles for footnotes.
*/
/*____________ footnotes inside the text ____________*/
/* link to footnote inside the text */
.dokuwiki sup a.fn_top {
}
/* JSpopup */
div.insitu-footnote {
max-width: 40%;
min-width: 5em;
}
/*____________ footnotes at the bottom of the page ____________*/
.dokuwiki div.footnotes {
border-top: 1px solid @ini_border;
padding: .5em 0 0 0;
margin: 1em 0 0 0;
clear: both;
}
.dokuwiki div.footnotes div.fn {
}
.dokuwiki div.footnotes div.fn div.content {
display: inline;
}
.dokuwiki div.footnotes div.fn sup a.fn_bot {
font-weight: bold;
}

106
css/_forms.css Executable file
View File

@@ -0,0 +1,106 @@
/* TODO: this file is not up to the best standards and will be fixed after an overhaul of the form code */
/**
* This file provides styles for forms in general and specifically
* for ?do=
* - login
* - resendpwd
* - register
* - profile
* - subscribe
*/
/* ---------------- forms ------------------------ */
.dokuwiki form {
border: none;
display: inline;
}
.dokuwiki label.block {
display: block;
text-align: right;
font-weight: bold;
}
[dir=rtl] .dokuwiki label.block {
text-align: left;
}
.dokuwiki label.simple {
display: block;
text-align: left;
font-weight: normal;
}
[dir=rtl] .dokuwiki label.simple {
text-align: right;
}
.dokuwiki label.block select,
.dokuwiki label.block input.edit {
width: 50%;
}
.dokuwiki label span {
vertical-align: middle;
}
.dokuwiki fieldset {
width: 400px;
text-align: center;
border: 1px solid @ini_border;
padding: 0.5em;
margin: auto;
}
.dokuwiki input.edit,
.dokuwiki select.edit {
vertical-align: middle;
}
.dokuwiki select.edit {
padding: 0.1em 0;
}
.dokuwiki button {
vertical-align: middle;
}
/**
* Styles for auth forms
*/
#dw__login label[for="remember__me"] {
margin-left: 50%;
margin-bottom: 1.4em;
}
#dw__login fieldset,
#dw__resendpwd fieldset,
#dw__register fieldset {
padding-bottom: 0.7em;
}
#dw__profiledelete {
display: block;
margin-top: 2.8em;
}
/**
* Styles for the subscription page
*/
#subscribe__form {
display: block;
width: 400px;
text-align: center;
}
#subscribe__form fieldset {
text-align: left;
margin: 0.5em 0;
}
[dir=rtl] #subscribe__form fieldset {
text-align: right;
}
#subscribe__form label {
display: block;
margin: 0 0.5em 0.5em;
}

38
css/_imgdetail.css Executable file
View File

@@ -0,0 +1,38 @@
/**
* This file provides styles for the image detail page (detail.php).
*/
#dokuwiki__detail {
padding: 1em;
}
#dokuwiki__detail h1 {
}
#dokuwiki__detail img {
float: left;
margin: 0 1.5em .5em 0;
}
[dir=rtl] #dokuwiki__detail div.content img {
float: right;
margin-right: 0;
margin-left: 1.5em;
}
#dokuwiki__detail div.img_detail {
float: left;
}
[dir=rtl] #dokuwiki__detail div.content div.img_detail {
float: right
}
#dokuwiki__detail div.img_detail h2 {
}
#dokuwiki__detail div.img_detail dl {
}
#dokuwiki__detail div.img_detail dl dt {
}
#dokuwiki__detail div.img_detail dl dd {
}
#dokuwiki__detail p.back {
clear: both;
}

70
css/_links.css Executable file
View File

@@ -0,0 +1,70 @@
/**
* This file provides styles for all types of links.
*/
/*____________ links to wiki pages ____________*/
/* existing wikipage */
.dokuwiki a.wikilink1 {
}
/* not existing wikipage */
.dokuwiki a.wikilink2 {
text-decoration: none;
}
.dokuwiki a.wikilink2:link,
.dokuwiki a.wikilink2:visited {
border-bottom: 1px dashed;
}
.dokuwiki a.wikilink2:hover,
.dokuwiki a.wikilink2:active,
.dokuwiki a.wikilink2:focus {
border-bottom-width: 0;
}
/* any link to current page */
.dokuwiki span.curid a {
font-weight: bold;
}
/*____________ other link types ____________*/
.dokuwiki a.urlextern,
.dokuwiki a.windows,
.dokuwiki a.mail,
.dokuwiki a.mediafile,
.dokuwiki a.interwiki {
background-size: 1.2em;
background-repeat: no-repeat;
background-position: 0 center;
padding: 0 0 0 1.4em;
}
/* external link */
.dokuwiki a.urlextern {
background-image: url(../../images/external-link.svg);
}
/* windows share */
.dokuwiki a.windows {
background-image: url(../../images/unc.svg);
}
/* email link */
.dokuwiki a.mail {
background-image: url(../../images/email.svg);
}
/* icons of the following are set by dokuwiki in lib/exe/css.php */
/* link to some embedded media */
.dokuwiki a.mediafile {
}
/* interwiki link */
.dokuwiki a.interwiki {
}
/* RTL corrections; if link icons don't work as expected, remove the following lines */
[dir=rtl] .dokuwiki a.urlextern,
[dir=rtl] .dokuwiki a.windows,
[dir=rtl] .dokuwiki a.mail,
[dir=rtl] .dokuwiki a.interwiki,
[dir=rtl] .dokuwiki a.mediafile {
background-position: right center;
padding: 0 18px 0 0;
}

541
css/_media_fullscreen.css Executable file
View File

@@ -0,0 +1,541 @@
/**
* This file provides the styles for the fullscreen media manager
* (?do=media).
*
* What most templates would probably need to change (depending on
* their site width) are the 4 min-width's (search for @change).
*/
/*____________ structure ____________*/
#mediamanager__page h1 {
margin-bottom: .5em;
}
#mediamanager__page {
/* min-width must be summary of all 3 panels' min-widths */
min-width: 50em; /* @change */
width: 100%;
text-align: left;
}
[dir=rtl] #mediamanager__page {
text-align: right;
}
#mediamanager__page .panel {
float: left;
}
[dir=rtl] #mediamanager__page .panel {
float: right;
}
#mediamanager__page .namespaces {
width: 20%;
min-width: 10em; /* @change */
left:0 !important; /* overrules jQuery UI resizable in rtl */
}
#mediamanager__page .filelist {
width: 50%;
min-width: 25em; /* @change */
left:0 !important; /* overrules jQuery UI resizable in rtl */
}
#mediamanager__page .file {
width: 30%;
min-width: 15em; /* @change */
}
#mediamanager__page .tabs li {
white-space: nowrap;
}
#mediamanager__page .panelHeader {
background-color: @ini_background_alt;
margin: 0 10px 10px 0;
padding: 10px 10px 8px;
text-align: left;
min-height: 20px;
overflow: hidden;
}
[dir=rtl] #mediamanager__page .panelHeader {
text-align: right;
margin: 0 0 10px 10px;
}
#mediamanager__page .panelContent {
overflow-y: auto;
overflow-x: hidden;
padding: 0;
margin: 0 10px 10px 0;
position: relative;
}
[dir=rtl] #mediamanager__page .panelContent {
text-align: right;
margin: 0 0 10px 10px;
}
#mediamanager__page .file .panelHeader,
#mediamanager__page .file .panelContent {
margin-right: 0;
}
[dir=rtl] #mediamanager__page .file .panelHeader,
[dir=rtl] #mediamanager__page .file .panelContent {
margin-left: 0;
}
#mediamanager__page .ui-resizable-e {
width: 6px;
right: 2px;
background: transparent url(../../images/resizecol.png) center center no-repeat;
}
#mediamanager__page .ui-resizable-e:hover {
background-color: @ini_background_alt;
}
[dir=rtl] #mediamanager__page .ui-resizable-w {
width: 6px;
left: 2px;
background: transparent url(../../images/resizecol.png) center center no-repeat;
}
[dir=rtl] #mediamanager__page .ui-resizable-w:hover {
background-color: @ini_background_alt;
}
#mediamanager__page dd {
margin: 0;
}
#mediamanager__page .panelHeader h3 {
float: left;
font-weight: normal;
font-size: 1em;
padding: 0;
margin: 0 0 3px;
}
[dir=rtl] #mediamanager__page .panelHeader h3 {
float : right
}
/*____________ namespaces panel ____________*/
[dir=rtl] #mediamanager__page .namespaces {
text-align: right;
}
/* make it look like a tab (as in _tabs.css) */
#mediamanager__page .namespaces h2 {
font-size: 1em;
display: inline-block;
padding: .3em .8em;
margin: 0 0 0 .3em;
border-radius: .5em .5em 0 0;
font-weight: normal;
background-color: @ini_background_alt;
color: @ini_text;
border: 1px solid @ini_border;
border-bottom-color: @ini_background_alt;
line-height: 1.4em;
position: relative;
bottom: -1px;
z-index: 2;
}
[dir=rtl] #mediamanager__page .namespaces h2 {
margin: 0 .3em 0 0;
position: relative;
right: 10px;
}
#mediamanager__page .namespaces .panelHeader {
border-top: 1px solid @ini_border;
z-index: 1;
}
#mediamanager__page .namespaces ul {
margin-left: .2em;
margin-bottom: 0;
padding: 0;
list-style: none;
}
[dir=rtl] #mediamanager__page .namespaces ul {
margin-left: 0;
margin-right: .2em;
}
#mediamanager__page .namespaces ul ul {
margin-left: 1em;
}
[dir=rtl] #mediamanager__page .namespaces ul ul {
margin-left: 0;
margin-right: 1em;
}
#mediamanager__page .namespaces ul ul li {
margin: 0;
}
#mediamanager__page .namespaces ul .selected {
background-color: __highlight__;
font-weight: bold;
}
/*____________ file list panel ____________*/
/* file list header */
#mediamanager__page .panelHeader form.options {
float: right;
margin-top: -3px;
}
[dir=rtl] #mediamanager__page .panelHeader form.options {
float : left
}
#mediamanager__page .panelHeader ul {
list-style: none;
margin: 0;
padding: 0;
}
#mediamanager__page .panelHeader ul li {
color: @ini_text;
float: left;
line-height: 1;
padding-left: 3px;
}
[dir=rtl] #mediamanager__page .panelHeader ul li {
padding-right: 3px;
padding-left: 0;
float: right;
}
#mediamanager__page .panelHeader ul li.ui-controlgroup-horizontal {
padding-left: 30px;
margin: 0 0 0 5px;
}
#mediamanager__page .panelHeader ul li.listType {
background: url('../../images/icon-list.png') 3px 1px no-repeat;
}
#mediamanager__page .panelHeader ul li.sortBy {
background: url('../../images/icon-sort.png') 3px 1px no-repeat;
}
[dir=rtl] #mediamanager__page .panelHeader ul li.ui-controlgroup-horizontal {
padding-left: 0;
padding-right: 30px;
margin: 0 5px 0 0;
background-position: right 1px;
}
#mediamanager__page .panelHeader form.options .ui-controlgroup-horizontal label{
font-size: 90%;
margin-right: -0.4em;
padding: .3em .5em;
line-height: 1;
}
/* file list content */
#mediamanager__page .filelist ul {
padding: 0;
margin: 0 10px 0 0;
}
[dir=rtl] #mediamanager__page .filelist ul {
margin: 0 0 0 10px;
}
#mediamanager__page .filelist ul.rows {
margin: 0;
}
#mediamanager__page .filelist .panelContent ul li:hover {
background-color: @ini_background_alt;
}
#mediamanager__page .filelist li dt a {
vertical-align: middle;
display: table-cell;
overflow: hidden;
}
/* file list as thumbs */
#mediamanager__page .filelist .thumbs li {
width: 100px;
min-height: 130px;
display: inline-block;
/* the right margin should visually be 10px, but because of its inline-block nature the whitespace inbetween is about 4px more */
margin: 0 6px 10px 0;
background-color: @ini_background_neu;
color: @ini_text;
padding: 5px;
vertical-align: top;
text-align: center;
position: relative;
line-height: 1.2;
}
[dir=rtl] #mediamanager__page .filelist .thumbs li {
margin-right: 0;
margin-left: 6px;
}
#mediamanager__page .filelist .thumbs li dt a {
width: 100px;
height: 90px;
}
#mediamanager__page .filelist .thumbs li dt a img {
max-width: 90px;
max-height: 90px;
}
#mediamanager__page .filelist .thumbs li .name,
#mediamanager__page .filelist .thumbs li .size,
#mediamanager__page .filelist .thumbs li .filesize,
#mediamanager__page .filelist .thumbs li .date {
display: block;
overflow: hidden;
text-overflow: ellipsis;
width: 90px;
white-space: nowrap;
}
#mediamanager__page .filelist .thumbs li .name {
padding: 5px 0;
font-weight: bold;
}
#mediamanager__page .filelist .thumbs li .date {
font-style: italic;
white-space: normal;
}
/* file list as rows */
#mediamanager__page .filelist .rows li {
list-style: none;
display: block;
position: relative;
max-height: 50px;
margin: 0 0 3px 0;
background-color: @ini_background;
color: @ini_text;
overflow: hidden;
}
#mediamanager__page .filelist .rows li:nth-child(2n+1) {
background-color: @ini_background_neu;
}
#mediamanager__page .filelist .rows li dt {
float: left;
width: 10%;
height: 40px;
text-align: center;
}
[dir=rtl] #mediamanager__page .filelist .rows li dt {
float: right;
}
#mediamanager__page .filelist .rows li dt a {
width: 100px;
height: 40px;
}
#mediamanager__page .filelist .rows li dt a img {
max-width: 40px;
max-height: 40px;
}
#mediamanager__page .filelist .rows li .name,
#mediamanager__page .filelist .rows li .size,
#mediamanager__page .filelist .rows li .filesize,
#mediamanager__page .filelist .rows li .date {
overflow: hidden;
text-overflow: ellipsis;
float: left;
margin-left: 1%;
white-space: nowrap;
}
[dir=rtl] #mediamanager__page .filelist .rows li .name,
[dir=rtl] #mediamanager__page .filelist .rows li .size,
[dir=rtl] #mediamanager__page .filelist .rows li .filesize,
[dir=rtl] #mediamanager__page .filelist .rows li .date {
float: right;
margin-left: 0;
margin-right: 1%;
}
#mediamanager__page .filelist .rows li .name {
width: 30%;
font-weight: bold;
}
#mediamanager__page .filelist .rows li .size,
#mediamanager__page .filelist .rows li .filesize {
width: 15%;
}
#mediamanager__page .filelist .rows li .date {
width: 20%;
font-style: italic;
white-space: normal;
}
/* upload form */
#mediamanager__page div.upload {
padding-bottom: 0.5em;
}
/*____________ file panel ____________*/
#mediamanager__page .file ul.actions {
text-align: center;
margin: 0 0 5px;
padding: 0;
list-style: none;
}
#mediamanager__page .file ul.actions li {
display: inline;
margin: 0;
}
#mediamanager__page .file div.image {
margin-bottom: 5px;
text-align: center;
}
#mediamanager__page .file div.image img {
width: 100%;
}
#mediamanager__page .file dl {
margin-bottom: 0;
}
#mediamanager__page .file dl dt {
font-weight: bold;
display: block;
background-color: @ini_background_alt;
}
#mediamanager__page .file dl dd {
display: block;
background-color: @ini_background_neu;
}
/* file meta data edit form */
#mediamanager__page form.meta div.row {
margin-bottom: 5px;
}
#mediamanager__page form.meta label span {
display: block;
}
#mediamanager__page form.meta input {
width: 50%;
}
#mediamanager__page form.meta button {
width: auto;
}
#mediamanager__page form.meta textarea.edit {
height: 6em;
width: 95%;
min-width: 95%;
max-width: 95%;
}
/* file revisions form */
#mediamanager__page form.changes ul {
margin-left: 10px;
padding: 0;
list-style-type: none;
}
[dir=rtl] #mediamanager__page form.changes ul {
margin-left: 0;
margin-right: 10px;
}
#mediamanager__page form.changes ul li div.li div {
font-size: 90%;
color: @ini_text_neu;
padding-left: 18px;
}
[dir=rtl] #mediamanager__page form.changes ul li div.li div {
padding-left: 0;
padding-right: 18px;
}
#mediamanager__page form.changes ul li div.li input {
position: relative;
top: 1px;
}
/* file diff view */
#mediamanager__diff table {
table-layout: fixed;
border-width: 0;
}
#mediamanager__diff td,
#mediamanager__diff th {
width: 48%;
margin: 0 5px 10px 0;
padding: 0;
vertical-align: top;
text-align: left;
border-color: @ini_background;
}
[dir=rtl] #mediamanager__diff td,
[dir=rtl] #mediamanager__diff th {
margin: 0 0 10px 5px;
text-align: right;
}
#mediamanager__diff th {
font-weight: normal;
background-color: @ini_background;
line-height: 1.2;
}
#mediamanager__diff th a {
font-weight: bold;
}
#mediamanager__diff th span {
font-size: 90%;
}
#mediamanager__diff dl dd strong{
background-color: __highlight__;
color: @ini_text;
font-weight: normal;
}
/* image diff views */
#mediamanager__page .file form.diffView {
margin-bottom: 10px;
display: block;
}
#mediamanager__diff div.slider {
margin: 10px;
width: 95%;
}
#mediamanager__diff .imageDiff {
position: relative;
}
#mediamanager__diff .imageDiff .image2 {
position: absolute;
top: 0;
left: 0;
}
#mediamanager__diff .imageDiff.opacity .image2 {
opacity: 0.5;
}
#mediamanager__diff .imageDiff.portions .image2 {
border-right: 1px solid red;
overflow: hidden;
}
#mediamanager__diff .imageDiff.portions img {
float: left;
}
#mediamanager__diff .imageDiff img {
width: 100%;
max-width: none;
}

208
css/_media_popup.css Executable file
View File

@@ -0,0 +1,208 @@
/**
* This file provides styles for the media manager popup
* (mediamanager.php).
*/
/*____________ structure ____________*/
html.popup {
overflow: auto;
}
#media__manager {
height: 100%;
overflow: hidden;
}
#mediamgr__aside {
width: 30%;
height: 100%;
overflow: auto;
position: absolute;
left: 0;
border-right: 1px solid @ini_border;
}
[dir=rtl] #mediamgr__aside {
left: auto;
right: 0;
border-right-width: 0;
border-left: 1px solid @ini_border;
}
#mediamgr__aside .pad {
padding: .5em;
}
#mediamgr__content {
width: 69.7%;
height: 100%;
overflow: auto;
position: absolute;
right: 0;
}
[dir=rtl] #mediamgr__content {
right: auto;
left: 0;
}
#mediamgr__content .pad {
padding: .5em;
}
#media__manager h1,
#media__manager h2 {
font-size: 1.5em;
margin-bottom: .5em;
padding-bottom: .2em;
border-bottom: 1px solid @ini_border;
}
/* left side
********************************************************************/
/*____________ options ____________*/
#media__opts {
margin-bottom: .5em;
}
#media__opts input {
margin-right: .3em;
}
[dir=rtl] #media__opts input {
margin-right: 0;
margin-left: .3em;
}
#media__opts label {
}
/*____________ tree ____________*/
#media__tree ul {
padding-left: .2em;
}
[dir=rtl] #media__tree ul {
padding-left: 0;
padding-right: .2em;
}
#media__tree ul li {
clear: left;
list-style-type: none;
list-style-image: none;
margin-left: 0;
}
[dir=rtl] #media__tree ul li {
clear: right;
margin-right: 0;
}
#media__tree ul li img {
float: left;
padding: .5em .3em 0 0;
}
[dir=rtl] #media__tree ul li img {
float: right;
padding: .5em 0 0 .3em;
}
#media__tree ul li div.li {
display: inline;
}
#media__tree ul li li {
margin-left: 1.5em;
}
[dir=rtl] #media__tree ul li li {
margin-left: 0;
margin-right: 1.5em;
}
/* right side
********************************************************************/
/*____________ upload form ____________*/
/* upload info */
#media__content div.upload {
font-size: .9em;
margin-bottom: .5em;
}
#mediamanager__uploader {
margin-bottom: 1em;
}
#mediamanager__uploader p {
margin-bottom: .5em;
}
/*____________ file list ____________*/
#media__content img.load {
margin: 1em auto;
}
#media__content .odd,
#media__content .even {
padding: .5em;
}
#media__content .odd {
background-color: @ini_background_alt;
}
#media__content .even {
}
/* highlight newly uploaded or edited file */
#media__content #scroll__here {
border: 1px dashed @ini_border;
}
/* link which inserts media file */
#media__content a.mediafile {
margin-right: 1.5em;
font-weight: bold;
cursor: pointer;
}
[dir=rtl] #media__content a.mediafile {
margin-right: 0;
margin-left: 1.5em;
}
#media__content span.info {
}
#media__content img.btn {
vertical-align: text-bottom;
}
/* info how to insert media, if JS disabled */
#media__content div.example {
color: @ini_text_neu;
margin-left: 1em;
}
#media__content div.detail {
padding: .2em 0;
}
#media__content div.detail div.thumb {
float: left;
margin: 0 .5em 0 18px;
}
[dir=rtl] #media__content div.detail div.thumb {
float: right;
margin: 0 18px 0 .5em;
}
#media__content div.detail div.thumb a {
display: block;
cursor: pointer;
}
#media__content div.detail p {
margin-bottom: 0;
}
/*____________ media search ____________*/
#dw__mediasearch {
}
#dw__mediasearch p {
}
#dw__mediasearch label {
}
#dw__mediasearch label span {
}
#dw__mediasearch input.edit {
}
#dw__mediasearch button {
}

94
css/_modal.css Executable file
View File

@@ -0,0 +1,94 @@
/**
* This file provides styles for modal dialogues.
*/
.dokuwiki .ui-widget {
font-size: 100%;
}
/* link wizard (opens from the link button in the edit toolbar)
********************************************************************/
#link__wiz {
}
[dir=rtl] #link__wiz_close {
float: left;
}
#link__wiz_result {
background-color: @ini_background;
width: 293px;
height: 193px;
overflow: auto;
border: 1px solid @ini_border;
margin: 3px auto;
text-align: left;
line-height: 1;
}
[dir=rtl] #link__wiz_result {
text-align: right;
}
#link__wiz_result div {
padding: 3px 3px 3px 0;
}
#link__wiz_result div a {
display: block;
padding-left: 22px;
min-height: 16px;
background: transparent 3px center no-repeat;
}
[dir=rtl] #link__wiz_result div a {
padding: 3px 22px 3px 3px;
background-position: 257px 3px;
}
#link__wiz_result div.type_u a {
background-image: url(../../images/up.png);
}
#link__wiz_result div.type_f a {
background-image: url(../../images/page.png);
}
#link__wiz_result div.type_d a {
background-image: url(../../images/ns.png);
}
#link__wiz_result div.even {
background-color: @ini_background_neu;
}
#link__wiz_result div.selected {
background-color: @ini_background_alt;
}
#link__wiz_result span {
display: block;
color: @ini_text_neu;
margin-left: 22px;
}
/* media option wizard (opens when inserting media in the media popup)
********************************************************************/
#media__popup {
/* for backwards compatibility (not needed since Rincewind) */
display: none;
}
#media__popup_content p {
margin: 0 0 .5em;
}
#media__popup_content label {
margin-right: .5em;
cursor: default;
}
#media__popup_content button {
margin-right: 1px;
cursor: pointer;
}

75
css/_recent.css Executable file
View File

@@ -0,0 +1,75 @@
/**
* This file provides styles for the recent changes (?do=recent) and
* old revisions (?do=revisions).
*/
/*____________ list of revisions / recent changes ____________*/
/* select type of revisions (media/pages) */
.dokuwiki .changeType {
margin-bottom: .5em;
}
.dokuwiki form.changes ul li {
list-style: none;
margin-left: 0;
}
[dir=rtl] .dokuwiki form.changes ul li {
margin-right: 0;
}
.dokuwiki form.changes ul li span,
.dokuwiki form.changes ul li a {
vertical-align: middle;
}
.dokuwiki form.changes ul li span.user a {
vertical-align: bottom;
}
.dokuwiki form.changes ul li.minor {
opacity: .7;
}
.dokuwiki form.changes li span.date {
}
.dokuwiki form.changes li a.diff_link {
vertical-align: baseline;
}
.dokuwiki form.changes li a.revisions_link {
vertical-align: baseline;
}
.dokuwiki form.changes li a.wikilink1,
.dokuwiki form.changes li a.wikilink2 {
}
.dokuwiki form.changes li span.sum {
font-weight: bold;
}
.dokuwiki form.changes li span.user {
}
/*____________ size differences ____________*/
.dokuwiki form.changes li .sizechange {
font-size: 80%;
border-radius: .2em;
padding: .1em .2em;
/* cannot use non-guaranteed style.ini colour placeholders, dark templates need to overwrite */
background-color: #ddd;
}
.dokuwiki form.changes li .sizechange.positive {
background-color: #cfc;;
}
.dokuwiki form.changes li .sizechange.negative {
background-color: #fdd;
}
/*____________ page navigator ____________*/
.dokuwiki div.pagenav {
text-align: center;
margin: 1.4em 0;
}
.dokuwiki div.pagenav-prev,
.dokuwiki div.pagenav-next {
display: inline;
margin: 0 .5em;
}

204
css/_search.less Executable file
View File

@@ -0,0 +1,204 @@
/**
* This file provides styles for the search results page (?do=search)
* and the AJAX search popup.
*/
/* general
********************************************************************/
/* search hit in normal text */
.dokuwiki .search_hit {
color: @ini_text;
background-color: __highlight__;
}
/* "nothing found" at search + media */
.dokuwiki div.nothing {
margin-bottom: 1.4em;
}
/* search results page
********************************************************************/
/*____________ advanced search form ____________*/
.dokuwiki .search-results-form fieldset.search-form {
width: 100%;
margin: 1em 0;
input[name="q"] {
width: 50%;
}
button.toggleAssistant {
float: right;
}
.advancedOptions {
padding: 1em 0;
> div {
display: inline-block;
position: relative;
margin: 0 0.5em;
}
div.toggle {
// default closed toggle state
div.current {
cursor: pointer;
max-width: 10em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&::after {
content: '▼';
font-size: smaller;
color: @ini_text_alt;
}
}
div.changed {
font-weight: bold;
}
ul {
display: none;
position: absolute;
border: 1px solid @ini_border;
background-color: @ini_background;
padding: 0.25em 0.5em;
text-align: left;
min-width: 10em;
max-width: 15em;
max-height: 50vh;
overflow: auto;
z-index: 100;
li {
margin: 0.25em 0;
list-style: none;
a {
display: block;
}
}
}
// open toggle state
&.open {
div.current::after {
content: '▲';
}
ul {
display: block;
}
}
}
}
}
[dir=rtl] .search-results-form fieldset.search-form .advancedOptions {
div.toggle ul {
text-align: right;
}
}
/*____________ matching pagenames ____________*/
.dokuwiki div.search_quickresult {
margin-bottom: 1.4em;
ul {
padding: 0;
li {
float: left;
width: 12em;
margin: 0 1.5em;
}
}
}
[dir=rtl] .dokuwiki div.search_quickresult ul li {
float: right;
}
/*____________ search results ____________*/
.dokuwiki dl.search_results {
margin-bottom: 1.2em;
/* search heading */
dt {
font-weight: normal;
margin-bottom: .2em;
}
/* last modified line */
dd.meta {
margin: 0 0 .2em 0;
}
/* search snippet */
dd.snippet {
color: @ini_text_alt;
background-color: inherit;
margin: 0 0 1.2em 0;
/* search hit in search results */
strong.search_hit {
font-weight: normal;
/* color is set in general */
}
/* ellipsis separating snippets */
.search_sep {
color: @ini_text;
background-color: inherit;
}
}
}
/* AJAX quicksearch popup
********************************************************************/
.dokuwiki form.search {
div.no {
position: relative;
}
/* .JSpopup */
div.ajax_qsearch {
position: absolute;
top: 0;
left: -13.5em; /* -( width of #qsearch__in + padding of .ajax_qsearch + a bit more ) */
width: 12em;
padding: 0.5em;
font-size: .9em;
z-index: 20;
text-align: left;
display: none;
strong {
display: block;
margin-bottom: .3em;
}
ul {
margin: 0 !important;
padding: 0 !important;
li {
margin: 0;
padding: 0;
display: block !important;
}
}
}
}
[dir=rtl] .dokuwiki form.search div.ajax_qsearch {
left: auto;
right: -13.5em;
text-align: right;
}

84
css/_tabs.css Executable file
View File

@@ -0,0 +1,84 @@
/**
* This file provides the styles for general tabs.
*/
.dokuwiki .tabs > ul,
.dokuwiki ul.tabs {
padding: 0;
margin: 0;
overflow: hidden;
position: relative;
}
/* border underneath */
.dokuwiki .tabs > ul:after,
.dokuwiki ul.tabs:after {
position: absolute;
content: "";
width: 100%;
bottom: 0;
left: 0;
border-bottom: 1px solid @ini_border;
}
.dokuwiki .tabs > ul li,
.dokuwiki ul.tabs li {
float: left;
padding: 0;
margin: 0;
list-style: none;
}
[dir=rtl] .dokuwiki .tabs > ul li,
[dir=rtl] .dokuwiki ul.tabs li {
float: right;
}
.dokuwiki .tabs > ul li a,
.dokuwiki ul.tabs li strong,
.dokuwiki ul.tabs li a {
display: inline-block;
padding: .3em .8em;
margin: 0 0 0 .3em;
background-color: @ini_background_neu;
color: @ini_text;
border: 1px solid @ini_border;
border-radius: .5em .5em 0 0;
position: relative;
z-index: 0;
}
[dir=rtl] .dokuwiki .tabs > ul li a,
[dir=rtl] .dokuwiki ul.tabs li strong,
[dir=rtl] .dokuwiki ul.tabs li a {
margin: 0 .3em 0 0;
}
.dokuwiki ul.tabs li strong {
font-weight: normal;
}
.dokuwiki ul.tabs li a:link,
.dokuwiki ul.tabs li a:visited {
}
.dokuwiki .tabs > ul li a:hover,
.dokuwiki .tabs > ul li a:active,
.dokuwiki .tabs > ul li a:focus,
.dokuwiki .tabs > ul li .curid a,
.dokuwiki .tabs > ul .active a,
.dokuwiki ul.tabs li a:hover,
.dokuwiki ul.tabs li a:active,
.dokuwiki ul.tabs li a:focus,
.dokuwiki ul.tabs li.active a,
.dokuwiki ul.tabs li strong {
background-color: @ini_background_alt;
color: @ini_text;
text-decoration: none;
font-weight: normal;
}
.dokuwiki .tabs > ul li .curid a,
.dokuwiki .tabs > ul li .active a,
.dokuwiki .tabs > ul li .active a,
.dokuwiki ul.tabs li.active a,
.dokuwiki ul.tabs li strong {
z-index: 2;
border-bottom-color: @ini_background_alt;
}

93
css/_toc.css Executable file
View File

@@ -0,0 +1,93 @@
/**
* This file provides styles for the TOC (table of contents), the
* sitemap (?do=index) and backlinks (?do=backlink).
*/
/* toc
********************************************************************/
/* toc container */
#dw__toc {
float: right;
margin: 0 0 1.4em 1.4em;
width: 12em;
background-color: @ini_background_alt;
color: inherit;
}
[dir=rtl] #dw__toc {
float: left;
margin: 0 1.4em 1.4em 0;
}
/*____________ toc header ____________*/
.dokuwiki h3.toggle {
padding: .2em .5em;
font-weight: bold;
}
.dokuwiki .toggle strong {
float: right;
margin: 0 .2em;
}
[dir=rtl] .dokuwiki .toggle strong {
float: left;
}
/*____________ toc list ____________*/
#dw__toc > div {
padding: .2em .5em;
}
#dw__toc ul {
padding: 0;
margin: 0;
}
#dw__toc ul li {
list-style: none;
padding: 0;
margin: 0;
line-height: 1.1;
}
#dw__toc ul li div.li {
padding: .15em 0;
}
#dw__toc ul ul {
padding-left: 1em;
}
[dir=rtl] #dw__toc ul ul {
padding-left: 0;
padding-right: 1em;
}
#dw__toc ul ul li {
}
#dw__toc ul li a {
}
/* in case of toc list jumping one level
(e.g. if heading level 3 follows directly after heading level 1) */
#dw__toc ul li.clear {
}
/* sitemap (and backlinks)
********************************************************************/
.dokuwiki ul.idx {
padding-left: 0;
}
[dir=rtl] .dokuwiki ul.idx {
padding-right: 0;
}
.dokuwiki ul.idx li {
list-style-image: url(../../images/bullet.png);
}
.dokuwiki ul.idx li.open {
list-style-image: url(../../images/open.png);
}
.dokuwiki ul.idx li.closed {
list-style-image: url(../../images/closed.png);
}
[dir=rtl] .dokuwiki ul.idx li.closed {
list-style-image: url(../../images/closed-rtl.png);
}

304
css/basic.css → css/basic.less Normal file → Executable file
View File

@@ -8,27 +8,19 @@
* @author Anika Henke <anika@selfthinker.org> * @author Anika Henke <anika@selfthinker.org>
*/ */
@font-face {
font-family: "Perfect DOS VGA 437";
src: url("./fonts/Perfect%20DOS%20VGA%20437%20Win.ttf") format("truetype");
font-weight: normal;
font-style: normal;
font-display: swap;
}
html { html {
overflow-x: auto; overflow-x: auto;
overflow-y: scroll; overflow-y: scroll;
} }
html, html,
body { body {
background-color: __background__; color: @ini_text;
color: __text__; background: @ini_background_site url(images/page-gradient.png) top left repeat-x;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
body { body {
font: normal 100%/1.4 "Perfect DOS VGA 437", Frutiger, Calibri, "Myriad Pro", Myriad, "Nimbus Sans L", Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif; 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 */ /* default font size: 100% => 16px; 93.75% => 15px; 87.5% => 14px; 81.25% => 13px; 75% => 12px */
-webkit-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;
} }
@@ -36,17 +28,21 @@ body {
/*____________ headers ____________*/ /*____________ headers ____________*/
caption,
figcaption,
summary,
legend {
padding: 0;
margin: 0 0 .35em;
line-height: 1.2;
}
h1, h1,
h2, h2,
h3, h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: "Perfect DOS VGA 437", Constantia, Utopia, Lucidabright, Lucida, Georgia, "Nimbus Roman No9 L", serif;
font-weight: bold; font-weight: bold;
color: __text_neu__;
text-align: left;
background-color: inherit;
padding: 0; padding: 0;
line-height: 1.2; line-height: 1.2;
clear: left; /* ideally 'both', but problems with toc */ clear: left; /* ideally 'both', but problems with toc */
@@ -61,7 +57,7 @@ h6 {
} }
h1 { h1 {
font-size: 2.25em; font-size: 2em;
margin: 0 0 0.444em; margin: 0 0 0.444em;
} }
h2 { h2 {
@@ -86,17 +82,6 @@ h6 {
} }
/* bottom margin = 1 / font-size */ /* bottom margin = 1 / font-size */
caption,
figcaption,
summary,
legend {
font-style: italic;
font-weight: normal;
line-height: 1.2;
padding: 0;
margin: 0 0 .35em;
}
/*____________ basic margins and paddings ____________*/ /*____________ basic margins and paddings ____________*/
@@ -114,10 +99,11 @@ fieldset,
address { address {
margin: 0 0 1.4em 0; /* bottom margin = line-height */ margin: 0 0 1.4em 0; /* bottom margin = line-height */
padding: 0; padding: 0;
text-align: left;
} }
div { div,
video,
audio {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
@@ -143,7 +129,6 @@ dd {
[dir=rtl] dd { [dir=rtl] dd {
margin: 0 1.5em 0 0; margin: 0 1.5em 0 0;
} }
dt { dt {
font-weight: bold; font-weight: bold;
margin: 0; margin: 0;
@@ -163,24 +148,12 @@ li li {
font-size: 100%; font-size: 100%;
} }
ul { ul { list-style: square outside; }
list-style: disc outside; ol { list-style: decimal outside; }
} ol ol { list-style-type: lower-alpha; }
ol { ol ol ol { list-style-type: upper-roman; }
list-style: decimal outside; ol ol ol ol { list-style-type: upper-alpha; }
} ol ol ol ol ol { list-style-type: lower-roman; }
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;
}
/*____________ tables ____________*/ /*____________ tables ____________*/
@@ -189,7 +162,7 @@ table {
border-collapse: collapse; border-collapse: collapse;
empty-cells: show; empty-cells: show;
border-spacing: 0; border-spacing: 0;
border: 1px solid __border__; border: 1px solid @ini_border;
} }
caption { caption {
@@ -205,12 +178,11 @@ td {
padding: .3em .5em; padding: .3em .5em;
margin: 0; margin: 0;
vertical-align: top; vertical-align: top;
border: 1px solid __border__; border: 1px solid @ini_border;
} }
th { th {
font-weight: bold; font-weight: bold;
background-color: __background_alt__; background-color: @ini_background_alt;
color: inherit;
text-align: left; text-align: left;
} }
[dir=rtl] th { [dir=rtl] th {
@@ -221,11 +193,12 @@ th {
/*____________ links ____________*/ /*____________ links ____________*/
a { a {
outline: none;
} }
a:link, a:link,
a:visited { a:visited {
text-decoration: none; text-decoration: none;
color: __link__; color: @ini_link;
} }
a:link:hover, a:link:hover,
a:visited:hover, a:visited:hover,
@@ -235,29 +208,22 @@ a:link:active,
a:visited:active { a:visited:active {
text-decoration: underline; text-decoration: underline;
} }
a:link:focus,
a:visited:focus {
outline: 1px dotted;
}
a:link:active,
a:visited:active {
color: #c00;
}
/*____________ misc ____________*/ /*____________ misc ____________*/
img, img {
svg {
border-width: 0; border-width: 0;
vertical-align: middle; vertical-align: middle;
color: #666; color: #666;
background-color: transparent; background-color: transparent;
font-style: italic; font-style: italic;
object-fit: cover;
}
video {
height: auto;
} }
img, img,
svg,
object, object,
embed, embed,
iframe, iframe,
@@ -265,41 +231,28 @@ video,
audio { audio {
max-width: 100%; max-width: 100%;
} }
button img {
img,
svg,
video {
height: auto;
}
iframe {
border-width: 0;
background-color: inherit;
}
button img,
button svg {
max-width: none; max-width: none;
} }
table img {
max-width: 50vw;
}
hr { hr {
border-style: solid; border-top: solid @ini_border;
border-width: 1px 0 0; border-bottom: solid @ini_background;
text-align: center; border-width: 1px 0;
height: 0; height: 0;
width: 100%; text-align: center;
clear: both; clear: both;
} }
acronym, acronym,
abbr { abbr {
font-style: normal;
}
acronym[title],
abbr[title] {
cursor: help; cursor: help;
border-bottom: 1px dotted; border-bottom: 1px dotted;
text-decoration: none; text-decoration: none;
font-style: normal;
} }
em acronym, em acronym,
em abbr { em abbr {
@@ -307,7 +260,7 @@ em abbr {
} }
mark { mark {
background: __highlight__; background-color: @ini_highlight;
color: inherit; color: inherit;
} }
@@ -318,21 +271,25 @@ kbd {
font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace; 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 */ /* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */
font-size: 1em; font-size: 1em;
background-color: __background_alt__;
color: __text__;
direction: ltr; direction: ltr;
text-align: left; text-align: left;
background-color: @ini_background_site;
color: @ini_text;
box-shadow: inset 0 0 .3em @ini_border;
border-radius: 2px;
} }
pre { pre {
border: 1px solid __border__;
padding: 0 .2em;
overflow: auto; overflow: auto;
word-wrap: normal; word-wrap: normal;
border: 1px solid @ini_border;
border-radius: 2px;
box-shadow: inset 0 0 .5em @ini_border;
padding: .7em 1em;
} }
blockquote { blockquote {
padding: 0 .5em; padding: 0 .5em;
border: solid __border__; border: solid @ini_border;
border-width: 0 0 0 .25em; border-width: 0 0 0 .25em;
} }
[dir=rtl] blockquote { [dir=rtl] blockquote {
@@ -360,29 +317,30 @@ small {
} }
wbr { wbr {
display: inline-block; display: inline-block; /* for IE 11 */
} }
/*____________ forms ____________*/ /*____________ forms ____________*/
/* for all of the form styles, style.ini colours are not used on purpose (except for fieldset border) */
form { form {
display: inline; display: inline;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
fieldset { fieldset {
padding: .7em 1em 0; padding: .7em 1em 0;
padding: .7rem 1rem; /* for those browsers understanding :last-child */ padding: .7rem 1rem; /* for those browsers understanding :last-child */
border: 1px solid #999; border: 1px solid @ini_text_alt;
} }
fieldset > :last-child { fieldset > :last-child {
margin-bottom: 0; margin-bottom: 0;
} }
legend { legend {
margin: 0;
padding: 0 .1em; padding: 0 .1em;
} }
label { label {
vertical-align: middle; vertical-align: middle;
cursor: pointer; cursor: pointer;
@@ -399,65 +357,13 @@ output,
meter, meter,
progress { progress {
font: inherit; font: inherit;
color: inherit; font-weight: normal;
/* background-color destroys button look */ color: #333;
background-color: #fff;
line-height: normal; line-height: normal;
margin: 0; margin: 0;
vertical-align: middle; vertical-align: middle;
-moz-box-sizing: content-box; box-sizing: border-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
input,
button,
select,
keygen,
textarea {
padding: .1em;
}
input[type=radio],
input[type=checkbox],
input[type=image],
input.check {
padding: 0;
}
input[type=submit],
input[type=button],
input[type=reset],
input.button,
button {
cursor: pointer;
overflow: visible;
padding: .1em .4em;
}
input[disabled],
button[disabled],
select[disabled],
textarea[disabled],
option[disabled],
input[readonly],
button[readonly],
select[readonly],
textarea[readonly] {
cursor: auto;
opacity: .5;
}
input:focus,
button:focus,
select:focus,
keygen:focus,
textarea:focus {
box-shadow: 0 0 5px #999;
outline: 0;
}
input::-moz-focus-inner,
button::-moz-focus-inner {
border: 0;
padding: 0;
} }
select { select {
@@ -471,3 +377,95 @@ option {
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
} }
option:checked {
background-color: #ccc;
}
input,
textarea,
select,
keygen {
border: 1px solid #ccc;
box-shadow: inset 0 0 1px #eee;
border-radius: 2px;
}
input:active,
input:focus,
textarea:active,
textarea:focus,
select:active,
select:focus,
keygen:active,
keygen:focus {
border-color: #999;
}
input[type=radio],
input[type=checkbox],
input[type=image] {
padding: 0;
border-style: none;
box-shadow: none;
}
/* all types of buttons */
input[type=submit],
input[type=button],
input[type=reset],
input.button,
a.button,
button,
.qq-upload-button {
color: #333;
background-color: #eee;
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc4MjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkZGRkYiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNEY0RjQiIG9mZnNldD0iMC4zIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VFRUVFRSIgb2Zmc2V0PSIwLjk5Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0NDQ0NDQyIgb2Zmc2V0PSIuOTkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNnODI0KSIgLz4KPC9zdmc+);
background-image: linear-gradient(to bottom, #ffffff 0%, #f4f4f4 30%, #eeeeee 99%, #cccccc 99%);
border: 1px solid #ccc;
border-radius: 2px;
padding: .1em .5em;
cursor: pointer;
}
input[type=submit]:hover,
input[type=submit]:active,
input[type=submit]:focus,
input[type=button]:hover,
input[type=button]:active,
input[type=button]:hover,
input[type=reset]:hover,
input[type=reset]:active,
input[type=reset]:hover,
input.button:hover,
input.button:active,
input.button:focus,
a.button:hover,
a.button:active,
a.button:focus,
button:hover,
button:active,
button:focus,
.qq-upload-button:hover {
border-color: #999;
background-color: #ddd;
background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc2NzAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkZGRkYiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNEY0RjQiIG9mZnNldD0iMC4zIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RERERERCIgb2Zmc2V0PSIwLjk5Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0JCQkJCQiIgb2Zmc2V0PSIuOTkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNnNjcwKSIgLz4KPC9zdmc+);
background-image: linear-gradient(to bottom, #ffffff 0%, #f4f4f4 30%, #dddddd 99%, #bbbbbb 99%);
}
input::-moz-focus-inner,
button::-moz-focus-inner {
border: 0;
padding: 0;
}
input[disabled],
button[disabled],
select[disabled],
textarea[disabled],
option[disabled],
input[readonly],
button[readonly],
select[readonly],
textarea[readonly] {
cursor: auto;
opacity: .5;
background-color: #eee;
}

View File

@@ -1,169 +0,0 @@
/**
* This file provides the main design styles for the page content.
*
* @author Anika Henke <anika@selfthinker.org>
* @author Andreas Gohr <andi@splitbrain.org>
*/
/*____________ section indenting ____________
.dokuwiki .page h1 {margin-left: 0;}
.dokuwiki .page h2 {margin-left: .666em;}
.dokuwiki .page h3 {margin-left: 1.776em;}
.dokuwiki .page h4 {margin-left: 3em;}
.dokuwiki .page h5 {margin-left: 4.5712em;}
.dokuwiki .page div.level1 {margin-left: 0;}
.dokuwiki .page div.level2 {margin-left: 1em;}
.dokuwiki .page div.level3 {margin-left: 2em;}
.dokuwiki .page div.level4 {margin-left: 3em;}
.dokuwiki .page div.level5 {margin-left: 4em;}
[dir=rtl] .dokuwiki .page h1 {margin-left: 0; margin-right: 0;}
[dir=rtl] .dokuwiki .page h2 {margin-left: 0; margin-right: .666em;}
[dir=rtl] .dokuwiki .page h3 {margin-left: 0; margin-right: 1.776em;}
[dir=rtl] .dokuwiki .page h4 {margin-left: 0; margin-right: 3em;}
[dir=rtl] .dokuwiki .page h5 {margin-left: 0; margin-right: 4.5712em;}
[dir=rtl] .dokuwiki .page div.level1 {margin-left: 0; margin-right: 0;}
[dir=rtl] .dokuwiki .page div.level2 {margin-left: 0; margin-right: 1em;}
[dir=rtl] .dokuwiki .page div.level3 {margin-left: 0; margin-right: 2em;}
[dir=rtl] .dokuwiki .page div.level4 {margin-left: 0; margin-right: 3em;}
[dir=rtl] .dokuwiki .page div.level5 {margin-left: 0; margin-right: 4em;}
*/
/* hx margin-left = (1 / font-size) * .levelx-margin */
/*____________ links to wiki pages (addition to _links) ____________*/
/* existing wikipage */
.dokuwiki a.wikilink1 {
color: __existing__;
background-color: inherit;
}
/* not existing wikipage */
.dokuwiki a.wikilink2 {
color: __missing__;
background-color: inherit;
}
/*____________ images ____________*/
/* embedded images (styles are already partly set in DokuWiki's lib/styles/all.css) */
.dokuwiki img.media {
margin: .2em 0;
}
.dokuwiki img.medialeft {
margin: .2em 1.5em .2em 0;
}
.dokuwiki img.mediaright {
margin: .2em 0 .2em 1.5em;
}
.dokuwiki img.mediacenter {
margin: .2em auto;
}
/*____________ tables ____________*/
/* div before each table */
.dokuwiki div.table {
}
.dokuwiki table.inline {
min-width: 50%;
}
.dokuwiki table.inline tr:hover td {
background-color: __background_alt__;
}
.dokuwiki table.inline tr:hover th {
background-color: __border__;
}
/*____________ code ____________*/
/* fix if background-color hides underlining */
.dokuwiki em.u code {
text-decoration: underline;
}
/* filenames for downloadable file and code blocks */
.dokuwiki dl.code,
.dokuwiki dl.file {
}
.dokuwiki dl.code dt,
.dokuwiki dl.file dt {
background-color: __background_alt__;
border: solid __border__;
border-width: 1px 1px 0;
color: inherit;
display: inline;
padding: .1em .5em .2em;
margin-left: 1em;
}
[dir=rtl] .dokuwiki dl.code dt,
[dir=rtl] .dokuwiki dl.file dt {
margin-left: 0;
margin-right: 1em;
}
.dokuwiki dl.code dt a,
.dokuwiki dl.file dt a {
}
.dokuwiki dl.code dd,
.dokuwiki dl.file dd {
margin: 0;
}
/* for code in <file> */
.dokuwiki pre.file,
.dokuwiki dl.file pre,
.dokuwiki dl.file dt {
border-color: __text_neu__;
}
/*____________ media manager ____________*/
/* some headings in the media manager should not look like headings */
#mediamanager__page h2,
#mediamanager__page h3 {
font-family: Frutiger, Calibri, Myriad, "Nimbus Sans L", Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif;
color: __text__;
}
/* to style button-like div in _fileuploader.css to look like other buttons,
please add '.qq-upload-button' to the according styles (which don't really exist in this template) */
.qq-upload-button {
border: 1px solid __border__;
background-color: __background_alt__;
padding: 0.125em 0.4em;
}
/*____________ styling plugin ____________*/
#plugin__styling.ispopup {
padding: 1em;
}
/*____________ JS popup ____________*/
.JSpopup {
background-color: __background__;
color: __text__;
border: 1px solid __border__;
line-height: 1.2;
padding: 0 .2em;
}
.JSpopup ul,
.JSpopup ol {
padding-left: 0;
}
[dir=rtl] .JSpopup ul,
[dir=rtl] .JSpopup ol {
padding-right: 0;
}

404
css/content.less Executable file
View File

@@ -0,0 +1,404 @@
/**
* This file provides the main design styles for the page content.
*
* @author Anika Henke <anika@selfthinker.org>
* @author Andreas Gohr <andi@splitbrain.org>
* @author Clarence Lee <clarencedglee@gmail.com>
*/
/*____________ section indenting ____________
.dokuwiki .page h1 {margin-left: 0;}
.dokuwiki .page h2 {margin-left: .666em;}
.dokuwiki .page h3 {margin-left: 1.776em;}
.dokuwiki .page h4 {margin-left: 3em;}
.dokuwiki .page h5 {margin-left: 4.5712em;}
.dokuwiki .page div.level1 {margin-left: 0;}
.dokuwiki .page div.level2 {margin-left: 1em;}
.dokuwiki .page div.level3 {margin-left: 2em;}
.dokuwiki .page div.level4 {margin-left: 3em;}
.dokuwiki .page div.level5 {margin-left: 4em;}
[dir=rtl] .dokuwiki .page h1 {margin-left: 0; margin-right: 0;}
[dir=rtl] .dokuwiki .page h2 {margin-left: 0; margin-right: .666em;}
[dir=rtl] .dokuwiki .page h3 {margin-left: 0; margin-right: 1.776em;}
[dir=rtl] .dokuwiki .page h4 {margin-left: 0; margin-right: 3em;}
[dir=rtl] .dokuwiki .page h5 {margin-left: 0; margin-right: 4.5712em;}
[dir=rtl] .dokuwiki .page div.level1 {margin-left: 0; margin-right: 0;}
[dir=rtl] .dokuwiki .page div.level2 {margin-left: 0; margin-right: 1em;}
[dir=rtl] .dokuwiki .page div.level3 {margin-left: 0; margin-right: 2em;}
[dir=rtl] .dokuwiki .page div.level4 {margin-left: 0; margin-right: 3em;}
[dir=rtl] .dokuwiki .page div.level5 {margin-left: 0; margin-right: 4em;}
*/
/* hx margin-left = (1 / font-size) * .levelx-margin */
/*____________ links to wiki pages (addition to _links) ____________*/
/* existing wikipage */
.dokuwiki a.wikilink1 {
color: @ini_existing;
background-color: inherit;
}
/* not existing wikipage */
.dokuwiki a.wikilink2 {
color: @ini_missing;
background-color: inherit;
}
/*____________ images ____________*/
/* embedded images (styles are already partly set in lib/styles/all.css) */
.dokuwiki img.media {
margin: .2em 0;
}
.dokuwiki img.medialeft {
margin: .2em 1em .2em 0;
}
.dokuwiki img.mediaright {
margin: .2em 0 .2em 1em;
}
.dokuwiki img.mediacenter {
margin: .2em auto;
}
/*____________ lists ____________*/
.dokuwiki .page,
.dokuwiki .aside {
ul li {
color: @ini_text_alt;
}
ol li {
color: @ini_text_neu;
}
li .li {
color: @ini_text;
}
}
/*____________ tables ____________*/
/* div around each table */
.dokuwiki div.table {
overflow-x: auto;
margin-bottom: 1.4em;
min-width: 50%;
}
.dokuwiki div.table table {
margin-bottom: 0;
}
.dokuwiki table.inline {
min-width: 50%;
}
.dokuwiki table.inline tr:hover td {
background-color: @ini_background_alt;
}
.dokuwiki table.inline tr:hover th {
background-color: @ini_border;
}
/*____________ code ____________*/
/* fix if background-color hides underlining */
.dokuwiki em.u code {
text-decoration: underline;
}
/* filenames for downloadable file and code blocks */
.dokuwiki dl.code,
.dokuwiki dl.file {
dt {
background-color: @ini_background_site;
background: linear-gradient(to bottom, @ini_background_alt 0%, @ini_background_site 100%);
color: inherit;
border: 1px solid @ini_border;
border-bottom-color: @ini_background_site;
border-top-left-radius: .3em;
border-top-right-radius: .3em;
padding: .3em .6em .1em;
margin-bottom: -1px;
float: left;
a {
background-color: transparent;
font-size: 0.875em;
font-weight: normal;
display: block;
min-height: 16px;
}
}
dd {
margin: 0;
clear: left;
}
pre {
box-shadow: inset -4px -4px .5em -.3em @ini_border;
}
}
[dir=rtl] .dokuwiki dl.code,
[dir=rtl] .dokuwiki dl.file {
dt {
float: right;
}
dd {
clear: right;
}
}
/* for code in <file> */
.dokuwiki dl.file {
pre,
dt {
border-style: dashed;
}
dt {
border-bottom-style: solid;
}
}
/*____________ JS popup ____________*/
.JSpopup {
background-color: @ini_background;
color: @ini_text;
border: 1px solid @ini_border;
box-shadow: .1em .1em .1em @ini_border;
border-radius: 2px;
padding: .3em .5em;
font-size: .9em;
}
.dokuwiki form.search div.ajax_qsearch {
top: -.35em;
font-size: 1em;
text-overflow: ellipsis;
}
.JSpopup ul,
.JSpopup ol {
padding-left: 0;
}
[dir=rtl] .JSpopup ul,
[dir=rtl] .JSpopup ol {
padding-right: 0;
}
/* changes to underscored CSS files
********************************************************************/
#acl__tree li {
margin: 0;
}
#dokuwiki__content span.curid a {
font-weight: normal;
}
#dokuwiki__content strong span.curid a {
font-weight: bold;
}
/*____________ changes to _edit ____________*/
.dokuwiki div.toolbar {
button.toolbutton {
border-radius: 0;
border-left-width: 0;
padding: .1em .35em;
}
button.toolbutton:first-child {
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
border-left-width: 1px;
}
button.toolbutton:last-child {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
}
[dir=rtl] .dokuwiki div.toolbar {
button.toolbutton:last-child {
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-left-width: 1px;
}
button.toolbutton:first-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
border-left-width: 0;
border-right-width: 1px;
}
}
.dokuwiki div.section_highlight {
margin: 0 -2em;
padding: 0 1em;
border-width: 0 1em;
}
.dokuwiki textarea.edit {
font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace;
}
.dokuwiki div.preview {
margin: 0 -2em;
padding: 0 2em;
}
.dokuwiki.hasSidebar div.preview {
border-right: @ini_sidebar_width solid @ini_background_alt;
}
[dir=rtl] .dokuwiki.hasSidebar div.preview {
border-right-width: 0;
border-left: @ini_sidebar_width solid @ini_background_alt;
}
.dokuwiki div.preview div.pad {
padding: 1.556em 0 2em;
}
/*____________ changes to _toc ____________*/
#dw__toc {
margin: -1.556em -2em .5em 1.4em;
width: @ini_sidebar_width;
border-left: 1px solid @ini_border;
background: @ini_background;
color: inherit;
}
[dir=rtl] #dw__toc {
margin: -1.556em 1.4em .5em -2em;
border-left-width: 0;
border-right: 1px solid @ini_border;
}
.dokuwiki.export #dw__toc {
margin-top: 0;
margin-right: 0;
}
[dir=rtl] .dokuwiki.export #dw__toc {
margin-top: 0;
margin-left: 0;
}
.dokuwiki h3.toggle {
padding: .5em 1em;
margin-bottom: 0;
font-size: .875em;
letter-spacing: .1em;
}
#dokuwiki__aside h3.toggle {
display: none;
}
.dokuwiki .toggle strong {
background: transparent url(images/toc-arrows.png) 0 0;
width: 8px;
height: 5px;
margin: .4em 0 0;
}
.dokuwiki .toggle.closed strong {
background-position: 0 -5px;
}
.dokuwiki .toggle strong span {
display: none;
}
#dw__toc {
> div {
font-size: 0.875em;
padding: .5em 1em 1em;
}
ul {
padding: 0 0 0 1.2em;
li {
list-style-image: url(images/toc-bullet.png);
}
}
ul li.clear {
list-style: none;
}
ul li div.li {
padding: .2em 0;
}
}
[dir=rtl] #dw__toc ul {
padding: 0 1.5em 0 0;
}
/*____________ changes to _imgdetail ____________*/
#dokuwiki__detail {
padding: 0;
img {
float: none;
margin-bottom: 1.4em;
}
div.img_detail {
float: none;
}
div.img_detail dl {
overflow: hidden;
}
div.img_detail dl dt {
float: left;
width: 9em;
text-align: right;
clear: left;
}
div.img_detail dl dd {
margin-left: 9.5em;
}
}
[dir=rtl] #dokuwiki__detail div.img_detail {
dl dt {
float: right;
text-align: left;
clear: right;
}
dl dd {
margin-left: 0;
margin-right: 9.5em;
}
}

View File

@@ -1,274 +0,0 @@
/**
* This file provides the main design styles for the
* bits that surround the content.
*
* @author Anika Henke <anika@selfthinker.org>
* @author Andreas Gohr <andi@splitbrain.org>
*/
/* header
********************************************************************/
#dokuwiki__header {
margin: 1em 0 0;
}
#dokuwiki__header .headings {
margin-bottom: 2.1em;
}
#dokuwiki__header h1 {
margin-bottom: 0;
font-size: 1.5em;
}
#dokuwiki__header h1 a {
text-decoration: none;
color: __link__;
background-color: inherit;
}
#dokuwiki__header p.claim {
margin-bottom: 0;
}
#dokuwiki__header h2 {
margin-bottom: 0;
font-size: 1.125em;
}
#dokuwiki__header .tools {
margin-bottom: 2.1em;
}
#dokuwiki__header .tools ul {
margin-bottom: 0;
}
#dokuwiki__header .tools ul li {
display: inline;
}
#dokuwiki__header form.search {
margin: .5em 0 0;
display: block;
}
#dokuwiki__header form.search #qsearch__in {
width: 12em;
margin-right: .5em;
}
[dir=rtl] #dokuwiki__header form.search #qsearch__in {
margin-right: 0;
margin-left: .5em;
}
#dokuwiki__header div.breadcrumbs {
margin-bottom: .3em;
}
#dokuwiki__header div.breadcrumbs a {
color: __existing__;
background-color: inherit;
}
/* tools
********************************************************************/
/* make wiki links look the same as tool links in tool bars */
#dokuwiki__usertools a.wikilink1,
#dokuwiki__pagetools a.wikilink1,
#dokuwiki__usertools a.wikilink2,
#dokuwiki__pagetools a.wikilink2 {
color: __link__;
border-bottom-width: 0;
}
#dokuwiki__usertools a.wikilink2:hover,
#dokuwiki__pagetools a.wikilink2:hover,
#dokuwiki__usertools a.wikilink2:active,
#dokuwiki__pagetools a.wikilink2:active,
#dokuwiki__usertools a.wikilink2:focus,
#dokuwiki__pagetools a.wikilink2:focus {
text-decoration: underline;
}
/* highlight selected tool */
/* before Greebo: */
.mode_admin a.action.admin,
.mode_login a.action.login,
.mode_register a.action.register,
.mode_profile a.action.profile,
.mode_recent a.action.recent,
.mode_index a.action.index,
.mode_media a.action.media,
.mode_revisions a.action.revs,
.mode_backlink a.action.backlink,
.mode_subscribe a.action.subscribe,
/* since Greebo: */
.mode_admin .action.admin a,
.mode_login .action.login a,
.mode_register .action.register a,
.mode_profile .action.profile a,
.mode_recent .action.recent a,
.mode_index .action.index a,
.mode_media .action.media a,
.mode_revisions .action.revs a,
.mode_backlink .action.backlink a,
.mode_subscribe .action.subscribe a {
font-weight: bold;
}
/*____________ user tools ____________*/
#dokuwiki__usertools {
position: absolute;
top: 0;
right: 0;
border-bottom: 1px solid __border__;
background-color: __background_alt__;
width: 100%;
}
#dokuwiki__usertools ul,
#dokuwiki__pagetools ul {
/* imitate #dokuwiki__site */
margin: 0 auto;
max-width: __site_width__;
padding: 0 1em;
}
#dokuwiki__usertools ul li.user {
float: left;
margin-left: 0;
}
[dir=rtl] #dokuwiki__usertools ul li.user {
float: right;
margin-right: 0;
}
/*____________ page tools ____________*/
#dokuwiki__pagetools {
position: fixed;
bottom: 0;
left: 0;
border-top: 1px solid __border__;
background-color: __background_alt__;
width: 100%;
z-index: 10;
}
#dokuwiki__pagetools ul li {
display: inline;
margin: 0 1.5em 0 0;
}
/* before Greebo: */
#dokuwiki__pagetools ul li a.action.top,
/* since Greebo: */
#dokuwiki__pagetools ul li.action.top a {
float: right;
}
/* before Greebo: */
[dir=rtl] #dokuwiki__pagetools ul li a.action.top,
/* since Greebo: */
[dir=rtl] #dokuwiki__pagetools ul li.action.top a {
float: left;
}
/* hide background images from menu items inserted via plugins */
#dokuwiki__pagetools ul li a {
background-image: none !important;
}
#dokuwiki__pagetools ul li a::before {
content: none !important;
}
/* sidebar
********************************************************************/
#dokuwiki__aside {
padding-top: .4em;
}
.dokuwiki .aside {
overflow: hidden;
word-wrap: break-word;
line-height: 1.2;
}
/* make sidebar more condensed */
.dokuwiki .aside h1 {
margin-bottom: .222em;
}
.dokuwiki .aside h2 {
margin-bottom: .333em;
}
.dokuwiki .aside h3 {
margin-bottom: .444em;
}
.dokuwiki .aside h4 {
margin-bottom: .5em;
}
.dokuwiki .aside h5 {
margin-bottom: .5714em;
}
.dokuwiki .aside p,
.dokuwiki .aside ul,
.dokuwiki .aside ol,
.dokuwiki .aside dl,
.dokuwiki .aside pre,
.dokuwiki .aside table,
.dokuwiki .aside fieldset,
.dokuwiki .aside hr,
.dokuwiki .aside blockquote,
.dokuwiki .aside address {
margin-bottom: .7em;
}
.dokuwiki .aside ul,
.dokuwiki .aside ol {
padding-left: .5em;
}
[dir=rtl] .dokuwiki .aside ul,
[dir=rtl] .dokuwiki .aside ol {
padding-right: .5em;
}
.dokuwiki .aside li ul,
.dokuwiki .aside li ol {
margin-bottom: 0;
padding: 0;
}
/* content
********************************************************************/
.dokuwiki .page {
word-wrap: break-word;
}
/* license note in footer and under edit window */
.dokuwiki div.license {
font-size: 93.75%;
}
/* footer
********************************************************************/
.dokuwiki .wrapper {
margin-bottom: 2.8em;
}
#dokuwiki__footer {
margin-bottom: 1em;
}
#dokuwiki__footer .doc {
float: left;
}
#dokuwiki__footer .top {
float: right;
}
#dokuwiki__footer .license {
clear: both;
}
#dokuwiki__footer .license img {
margin: 0 .5em 0 0;
float: none;
}

364
css/design.less Executable file
View File

@@ -0,0 +1,364 @@
/**
* This file provides the main design styles for the
* bits that surround the content.
*
* @author Anika Henke <anika@selfthinker.org>
* @author Andreas Gohr <andi@splitbrain.org>
* @author Clarence Lee <clarencedglee@gmail.com>
*/
.dokuwiki.export {
background-color: @ini_background;
}
/* header
********************************************************************/
#dokuwiki__header {
padding: 2em 0 1.5em;
.headings,
.tools {
margin-bottom: 1.5em;
width: 49%;
}
.tools {
margin-top: .2em;
}
.logo {
margin: 0;
font-size: 1.5em;
font-weight: normal;
line-height: 1.2;
img {
float: left;
margin-right: .5em;
height: 64px;
width: auto;
}
span {
display: block;
padding-top: 10px;
}
a {
text-decoration: none;
color: @ini_text;
background-color: inherit;
}
}
p.claim {
margin-bottom: 0;
font-size: 0.875em;
}
/* make all links in header (including breadcrumb and interwiki) same colour as the rest */
a {
color: @ini_link;
background-color: inherit;
}
}
[dir=rtl] #dokuwiki__header .logo img {
float: right;
margin-left: .5em;
margin-right: 0;
}
/* tools
********************************************************************/
/* highlight selected tool */
.mode_admin .action.admin a,
.mode_login .action.login a,
.mode_register .action.register a,
.mode_profile .action.profile a,
.mode_recent .action.recent a,
.mode_index .action.index a,
.mode_media .action.media a,
.mode_revisions .action.revs a,
.mode_backlink .action.backlink a,
.mode_subscribe .action.subscribe a {
font-weight: bold;
}
#dokuwiki__header .tools {
ul {
padding-left: 0;
margin-bottom: 0;
}
li {
font-size: 0.875em;
margin-left: 1em;
list-style: none;
display: inline;
vertical-align: top;
}
form.search div.ajax_qsearch li {
font-size: 1em;
margin-left: 0;
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
}
[dir=rtl] #dokuwiki__header .tools li {
margin-right: 1em;
margin-left: 0;
}
#dokuwiki__header .mobileTools {
display: none; /* hide mobile tools dropdown to only show in mobile view */
}
/*____________ site tools ____________*/
#dokuwiki__sitetools {
text-align: right;
form.search {
font-size: 0.875em;
}
}
[dir=rtl] #dokuwiki__sitetools {
text-align: left;
}
form.search {
display: block;
position: relative;
margin-bottom: 0.5em;
input {
width: 18em;
padding: .35em 22px .35em .1em;
}
button {
background: transparent url(images/search.png) no-repeat 0 0;
border-width: 0;
width: 19px;
height: 14px;
text-indent: -99999px;
margin-left: -20px;
box-shadow: none;
padding: 0;
}
}
[dir=rtl] form.search {
input {
padding: .35em .1em .35em 22px;
}
button {
background-position: 5px 0;
margin-left: 0;
margin-right: -20px;
position: relative;
}
}
/*____________ breadcrumbs ____________*/
.dokuwiki div.breadcrumbs {
border-top: 1px solid @ini_border;
border-bottom: 1px solid @ini_background;
margin-bottom: .5em;
font-size: 0.875em;
clear: both;
div {
padding: .1em .35em;
}
div:only-child {
border-top: 1px solid @ini_background;
border-bottom: 1px solid @ini_border;
}
div:first-child {
border-top: 1px solid @ini_background;
}
div:last-child {
border-bottom: 1px solid @ini_border;
}
.bcsep {
font-size: 0.75em;
}
}
/* sidebar
********************************************************************/
.dokuwiki .aside {
font-size: 0.875em;
overflow: hidden;
word-wrap: break-word;
/* make sidebar more condensed */
h1 {
font-size: 1.714em;
margin-bottom: .292em;
}
h2 {
margin-bottom: .333em;
}
h3 {
margin-bottom: .444em;
}
h4 {
margin-bottom: .5em;
}
h5 {
margin-bottom: .5714em;
}
p,
ul,
ol,
dl,
pre,
table,
fieldset,
hr,
blockquote,
address {
margin-bottom: .7em;
}
ul,
ol {
padding-left: .5em;
}
li ul,
li ol {
margin-bottom: 0;
padding: 0;
}
a:link,
a:visited {
color: @ini_link;
background-color: inherit;
}
}
[dir=rtl] .dokuwiki .aside ul,
[dir=rtl] .dokuwiki .aside ol {
padding-right: .5em;
}
/* content
********************************************************************/
.dokuwiki .pageId {
float: right;
margin-right: -1em;
margin-bottom: -1px;
margin-top: -1.5em;
overflow: hidden;
padding: 0.5em 1em 0;
span {
font-size: 0.875em;
border: solid @ini_background_alt;
border-width: 1px 1px 0;
background-color: @ini_background;
color: @ini_text_alt;
padding: .1em .35em;
border-top-left-radius: 2px;
border-top-right-radius: 2px;
box-shadow: 0 0 .5em @ini_text_alt;
display: block;
}
}
.dokuwiki div.page {
clear: both;
background: @ini_background;
color: inherit;
border: 1px solid @ini_background_alt;
box-shadow: 0 0 .5em @ini_text_alt;
border-radius: 2px;
padding: 1.556em 2em 2em;
margin-bottom: .5em;
overflow-x: clip;
overflow-y: visible;
word-wrap: break-word;
}
.dokuwiki .docInfo {
font-size: 0.875em;
text-align: right;
overflow-wrap: break-word;
}
/* license note under edit window */
.dokuwiki div.license {
font-size: 93.75%;
}
[dir=rtl] .dokuwiki .docInfo {
text-align: left;
}
[dir=rtl] .dokuwiki .pageId {
float: left;
margin-left: -1em;
margin-right: 0;
}
/* footer
********************************************************************/
.dokuwiki .wrapper {
margin-bottom: 1.4em;
}
#dokuwiki__footer {
margin-bottom: 1em;
text-align: center;
> .pad {
font-size: 0.875em;
}
div.license {
margin-bottom: 0.5em;
font-size: 100%;
}
div.buttons a {
img {
opacity: 0.5;
}
&:hover img,
&:active img,
&:focus img {
opacity: 1;
}
}
}
[dir=rtl] #dokuwiki__footer .license img {
margin: 0 0 0 .5em;
}

View File

@@ -1,4 +0,0 @@
/**
* This file provides styles for included seperate html files
* (added through "include hooks").
*/

View File

@@ -1,78 +0,0 @@
/**
* This file provides style changes for small screens.
*
* @author Anika Henke <anika@selfthinker.org>
*/
@media only screen and (max-width: 42em) {
#dokuwiki__site .wrapper {
flex-direction: column;
gap: 1.4em;
}
#dokuwiki__aside {
width: auto;
flex: 0 0 auto;
}
.hasSidebar #dokuwiki__content {
margin: 0;
}
#dokuwiki__header .headings {
margin: 2.1em 0 0;
}
#dokuwiki__header .tools {
margin-bottom: .7em;
}
#dokuwiki__header .headings,
#dokuwiki__header .tools,
#dokuwiki__header .tools li {
float: none;
text-align: left;
}
[dir=rtl] #dokuwiki__header .tools,
[dir=rtl] #dokuwiki__header .tools li {
float: none;
text-align: right;
}
[dir=rtl] #dokuwiki__header .headings {
float: none;
text-align: right;
}
#dokuwiki__sitetools ul {
padding: 0;
}
#dokuwiki__sitetools li {
margin: 0 1.5em 0 0;
}
[dir=rtl] #dokuwiki__sitetools li {
margin: 0 0 0 1.5em;
}
#dokuwiki__header div.breadcrumbs {
margin-bottom: .7em;
}
#dokuwiki__header ul.a11y.skip {
left: auto !important;
right: 1em !important;
top: 3.1em !important;
width: auto !important;
height: auto !important;
list-style: none;
padding: 0;
margin: 0;
}
[dir=rtl] #dokuwiki__header ul.a11y.skip {
right: auto !important;
left: 1em !important;
}
} /* /@media */

332
css/mobile.less Executable file
View File

@@ -0,0 +1,332 @@
/**
* This file provides styles for mobile devices
* and smaller screens (up to 480px and 768px width).
*
* @author Anika Henke <anika@selfthinker.org>
*/
/* for detecting media queries in JavaScript (see script.js): */
#screen__mode {
position: relative;
z-index: 0;
}
/* for screen widths in the tablet range
********************************************************************/
@media only screen and (max-width: @ini_tablet_width) {
#screen__mode {
z-index: 1; /* for detecting media queries in JavaScript (see script.js) */
}
/* structure */
#dokuwiki__aside {
width: 100%;
float: none;
margin-bottom: 1.5em;
}
#dokuwiki__aside > .pad,
[dir=rtl] #dokuwiki__aside > .pad {
margin: 0 0 .5em;
/* style like .page */
background: @ini_background;
color: inherit;
border: 1px solid #eee;
box-shadow: 0 0 .5em @ini_text_alt;
border-radius: 2px;
padding: 1em;
margin-bottom: .5em;
}
#dokuwiki__aside h3.toggle {
font-size: 1em;
&.closed {
margin-bottom: 0;
padding-bottom: 0;
}
&.open {
border-bottom: 1px solid @ini_border;
}
}
.showSidebar #dokuwiki__content {
float: none;
margin-left: 0;
width: 100%;
> .pad {
margin-left: 0;
}
}
[dir=rtl] .showSidebar #dokuwiki__content,
[dir=rtl] .showSidebar #dokuwiki__content > .pad {
margin-right: 0;
}
/* preview */
.dokuwiki.hasSidebar div.preview {
border-right: none;
}
[dir=rtl] .dokuwiki.hasSidebar div.preview {
border-left: none;
}
/* toc */
#dw__toc {
float: none;
margin: 0 0 1em 0;
width: auto;
border-left-width: 0;
border-bottom: 1px solid @ini_border;
}
[dir=rtl] #dw__toc {
float: none;
margin: 0 0 1em 0;
border-right-width: 0;
}
.dokuwiki h3.toggle {
padding: 0 .5em .5em 0;
}
#dw__toc > div,
#dokuwiki__aside div.content {
padding: .2em 0 .5em;
}
/* page */
.dokuwiki div.page {
padding: 1em;
}
/* enable horizontal scrolling in media manager */
.mode_media div.page {
overflow: auto;
}
/* push pagetools closer to content */
#dokuwiki__pagetools {
top: 0;
}
.showSidebar #dokuwiki__pagetools {
top: 3.5em;
}
/* _edit */
.dokuwiki div.section_highlight {
margin: 0 -1em;
padding: 0 .5em;
border-width: 0 .5em;
}
.dokuwiki div.preview {
margin: 0 -1em;
padding: 1em;
}
/* _recent */
.dokuwiki form.changes ul {
padding-left: 0;
}
[dir=rtl] .dokuwiki form.changes ul {
padding-right: 0;
}
} /* /@media */
/* for screen widths in the smartphone range
********************************************************************/
@media only screen and (max-width: @ini_phone_width) {
#screen__mode {
z-index: 2; /* for detecting media queries in JavaScript (see script.js) */
}
body {
font-size: 100%;
}
/*____________ structure ____________*/
#dokuwiki__site {
max-width: 100%;
> .site {
padding: 0 .5em;
}
}
#dokuwiki__aside {
margin-bottom: 0;
}
#dokuwiki__header {
padding: .5em 0;
}
/*____________ header ____________*/
#dokuwiki__header ul.a11y.skip {
position: static !important;
left: 0 !important;
width: auto !important;
height: auto !important;
float: right;
font-size: 0.875em;
list-style: none;
padding-left: 0;
margin: 0;
li {
margin-left: .35em;
display: inline;
}
}
[dir=rtl] #dokuwiki__header ul.a11y.skip {
left: auto !important;
right: 0 !important;
float: left;
padding-right: 0;
li {
margin: 0 .35em 0 0;
}
}
#dokuwiki__header .headings,
#dokuwiki__header .tools {
float: none;
text-align: left;
width: auto;
margin-bottom: .5em;
}
[dir=rtl] #dokuwiki__header .headings,
[dir=rtl] #dokuwiki__header .tools {
float: none;
text-align: right;
width: auto;
}
#dokuwiki__sitetools {
text-align: left;
}
[dir=rtl] #dokuwiki__sitetools {
text-align: right;
}
#dokuwiki__usertools,
#dokuwiki__sitetools ul,
#dokuwiki__sitetools h3,
#dokuwiki__pagetools,
.dokuwiki div.breadcrumbs, /* @todo: maybe move breadcrumbs to the bottom? */
.dokuwiki .pageId {
display: none;
}
/* search form */
#dokuwiki__sitetools form.search {
float: left;
margin: 0 .2em .2em 0;
width: 49%;
}
[dir=rtl] #dokuwiki__sitetools form.search {
float: right;
margin: 0 0 .2em .2em;
}
#dokuwiki__sitetools form.search input {
width: 100% !important;
}
.dokuwiki form.search div.ajax_qsearch {
display: none !important;
}
/* action dropdown is alternative for all hidden tools */
#dokuwiki__header .mobileTools {
display: block;
font-size: 0.875em;
margin: 0 0 .2em 0;
float: right;
width: 49%;
}
[dir=rtl] #dokuwiki__header .mobileTools {
float: left;
}
#dokuwiki__header .mobileTools select {
padding: .3em .1em;
width: 100% !important;
}
/* force same height on search input and tools select */
#dokuwiki__sitetools form.search input,
#dokuwiki__header .mobileTools select {
height: 2.1em;
line-height: 2.1em;
overflow: visible;
}
/*____________ content ____________*/
#dokuwiki__aside > .pad,
.dokuwiki div.page {
padding: .5em;
}
/* form elements */
#config__manager fieldset td.value,
#config__manager td .input,
.dokuwiki fieldset,
.dokuwiki input.edit,
.dokuwiki textarea {
width: auto !important;
max-width: 100% !important;
}
.dokuwiki select {
max-width: 100% !important;
}
#config__manager fieldset {
margin-left: 0;
margin-right: 0;
}
.dokuwiki label.block {
text-align: left;
span {
display: block;
}
}
[dir=rtl] .dokuwiki label.block {
text-align: right;
}
/* _edit */
.dokuwiki div.section_highlight {
margin: 0;
padding: 0;
border-width: 0;
}
.dokuwiki div.preview {
margin: 0 -.5em;
padding: .5em;
}
} /* /@media */
/* for screen heights smaller than the pagetools permit
********************************************************************/
@media only screen and (max-height: 400px) {
// 400px is only roughly the required value, this may be wrong under non-standard circumstances
#dokuwiki__pagetools div.tools {
position: static;
}
} /* /@media */

124
css/pagetools.less Executable file
View File

@@ -0,0 +1,124 @@
/**
* This file provides the styles for the page tools
* (fly out navigation beside the page to edit, etc).
*
* @author Anika Henke <anika@selfthinker.org>
* @author Andreas Gohr <andi@splitbrain.org>
*/
#dokuwiki__site > .site {
/* give space to the right so the tools won't disappear on smaller screens */
/* it's 40px because the 30px wide icons will have 5px more spacing to the left and right */
padding-right: 40px;
/* give the same space to the left to balance it out */
padding-left: 40px;
}
.dokuwiki div.page {
height: 190px;
min-height: 190px; /* 30 (= height of icons) x 6 (= maximum number of possible tools) + 2x5 */
height: auto;
}
#dokuwiki__pagetools {
@ico-width: 28px;
@ico-margin: 8px;
@item-width: (@ico-width + @ico-margin + @ico-margin);
@item-height: (@ico-width + @ico-margin);
position: absolute;
right: (-1 * @item-width);
/* on same vertical level as first headline, because .page has 2em padding */
top: 2em;
width: @item-width;
div.tools {
position: fixed;
width: @item-width;
ul {
position: absolute;
right: 0;
text-align: right;
margin: 0;
padding: 0;
/* add transparent border to prevent jumping when proper border is added on hover */
border: 1px solid transparent;
z-index: 10;
li {
padding: 0;
margin: 0;
list-style: none;
font-size: 0.875em;
a {
display: block;
/* add transparent border to prevent jumping when proper border is added on focus */
border: 1px solid transparent;
white-space: nowrap;
line-height: @item-height;
vertical-align: middle;
height: @item-height;
span {
display: none; // hide label until hover
margin: 0 @ico-margin;
}
svg {
width: @ico-width;
height: @ico-width;
margin: 0 @ico-margin;
display: inline-block;
vertical-align: middle;
fill: @ini_border;
}
}
// on interaction show the full item
a:active,
a:focus,
a:hover {
background-color: @ini_background_alt;
span {
display: inline-block;
}
svg {
fill: @ini_link;
}
}
}
}
}
[dir=rtl] & {
right: auto;
left: (-1 * @item-width);
div.tools {
ul {
right: auto;
left: 0;
text-align: left;
}
}
}
}
// on hover or focus show all items
#dokuwiki__pagetools:hover, #dokuwiki__pagetools:focus-within {
div.tools ul {
background-color: @ini_background;
border-color: @ini_border;
border-radius: 2px;
box-shadow: 2px 2px 2px @ini_text_alt;
li a span {
display: inline-block;
}
}
}

68
css/print.css Normal file → Executable file
View File

@@ -11,13 +11,15 @@ body {
} }
/* hide certain sections */ /* hide certain sections */
.a11y,
audio, audio,
video, video,
#dokuwiki__header .tools, #dokuwiki__header .tools,
#dokuwiki__aside, #dokuwiki__aside,
.dokuwiki .breadcrumbs, .dokuwiki .breadcrumbs,
.dokuwiki .toc, .dokuwiki .pageId,
#dw__toc, #dw__toc,
h3.toggle,
#dokuwiki__pagetools, #dokuwiki__pagetools,
#dokuwiki__footer { #dokuwiki__footer {
display: none; display: none;
@@ -32,7 +34,6 @@ caption,
legend { legend {
clear: both; clear: both;
} }
ul { ul {
list-style: disc outside; list-style: disc outside;
} }
@@ -52,15 +53,12 @@ ol ol ol ol ol {
list-style-type: lower-roman; list-style-type: lower-roman;
} }
/* undo icons */
a:link, a:link,
a:visited { a:visited {
text-decoration: none; text-decoration: none;
border-bottom: 1pt dotted; border-bottom: 1pt dotted;
color: #333; color: #333;
background-color: inherit; background-color: inherit;
background-image: none;
padding: 0;
} }
/* display href after link */ /* display href after link */
@@ -74,15 +72,19 @@ a.mail:after {
/* code blocks */ /* code blocks */
pre { pre {
font-family: monospace; font-family: monospace;
white-space: pre-wrap;
} }
dl.code dt, dl.code dt,
dl.file dt { dl.file dt {
font-weight: bold; font-weight: bold;
} }
mark {
font-weight: bold;
}
/* images */ /* images */
img, img {
svg {
border-width: 0; border-width: 0;
vertical-align: middle; vertical-align: middle;
} }
@@ -90,19 +92,15 @@ img.media {
margin: .2em 0; margin: .2em 0;
} }
img.medialeft { img.medialeft {
margin: .2em 1.5em .2em 0; margin: .2em 1em .2em 0;
} }
img.mediaright { img.mediaright {
margin: .2em 0 .2em 1.5em; margin: .2em 0 .2em 1em;
} }
img.mediacenter { img.mediacenter {
margin: .2em auto; margin: .2em auto;
} }
mark {
font-weight: bold;
}
blockquote { blockquote {
padding: 0 10pt; padding: 0 10pt;
margin: 0; margin: 0;
@@ -114,6 +112,9 @@ blockquote {
} }
/* tables */ /* tables */
.dokuwiki div.table {
margin-bottom: 1.4em;
}
table { table {
border-collapse: collapse; border-collapse: collapse;
empty-cells: show; empty-cells: show;
@@ -126,14 +127,13 @@ td {
margin: 0; margin: 0;
vertical-align: top; vertical-align: top;
border: 1pt solid #666; border: 1pt solid #666;
text-align: left;
}
[dir=rtl] th,
[dir=rtl] td {
text-align: right;
} }
th { th {
font-weight: bold; font-weight: bold;
text-align: left;
}
[dir=rtl] th {
text-align: right;
} }
@@ -142,14 +142,40 @@ th {
#dokuwiki__header { #dokuwiki__header {
border-bottom: 2pt solid #ccc; border-bottom: 2pt solid #ccc;
} }
#dokuwiki__header h1 { #dokuwiki__header .logo {
font-size: 1.5em; font-size: 1.5em;
font-weight: bold;
} }
#dokuwiki__header h1 a { #dokuwiki__header .logo a {
text-decoration: none; text-decoration: none;
border-width: 0;
} }
#dokuwiki__header .logo img {
float: left;
margin-right: .5em;
height: 64px;
width: auto;
}
[dir=rtl] #dokuwiki__header .logo img {
float: right;
margin-right: 0;
margin-left: .5em;
}
.dokuwiki div.footnotes { .dokuwiki div.footnotes {
clear: both; clear: both;
border-top: 1pt solid #000; border-top: 1pt dotted #999;
margin-top: 10pt; margin-top: 10pt;
} }
.dokuwiki div.docInfo {
font-size: 90%;
text-align: right;
clear: both;
padding-top: 2pt;
border-top: 1pt solid #999;
margin-top: 10pt;
}
[dir=rtl] .dokuwiki div.docInfo {
text-align: left;
}

View File

@@ -1,61 +0,0 @@
/**
* This file provides styles for the general layout structure.
*
* @author Anika Henke <anika@selfthinker.org>
*/
body {
margin: 0 auto;
}
#dokuwiki__site {
margin: 0 auto;
max-width: __site_width__;
padding: 1.4em 1em;
}
#dokuwiki__site > .site {
}
#dokuwiki__header {
}
#dokuwiki__header .headings {
float: left;
}
[dir=rtl] #dokuwiki__header .headings {
float: right;
}
#dokuwiki__header .tools {
float: right;
text-align: right;
}
[dir=rtl] #dokuwiki__header .tools {
float: left;
text-align: left;
}
#dokuwiki__site .wrapper {
position: relative;
display: flex;
align-items: flex-start;
gap: 1.5em;
}
[dir=rtl] #dokuwiki__site .wrapper {
flex-direction: row-reverse;
}
#dokuwiki__aside {
flex: 0 0 __sidebar_width__;
width: __sidebar_width__;
position: relative;
display: block;
}
#dokuwiki__content {
flex: 1 1 auto;
min-width: 0;
}
#dokuwiki__footer {
clear: both;
}

89
css/structure.less Executable file
View File

@@ -0,0 +1,89 @@
/**
* This file provides styles for the general layout structure.
*
* @author Anika Henke <anika@selfthinker.org>
*/
body {
margin: 0 auto;
}
#dokuwiki__site {
margin: 0 auto;
max-width: @ini_site_width;
}
#dokuwiki__site > .site {
padding: 0 .5em;
}
#dokuwiki__header {
width: 100%;
.headings {
float: left;
}
.tools {
float: right;
text-align: right;
}
}
[dir=rtl] #dokuwiki__header {
.headings {
float: right;
text-align: right;
}
.tools {
float: left;
text-align: left;
}
}
#dokuwiki__site .wrapper {
position: relative;
}
#dokuwiki__aside {
width: @ini_sidebar_width;
float: left;
position: relative;
display: block;
> .pad {
margin: 0 1.5em 0 0;
}
}
[dir=rtl] #dokuwiki__aside {
float: right;
> .pad {
margin: 0 0 0 1.5em;
}
}
.showSidebar #dokuwiki__content {
float: right;
margin-left: (-1 * @ini_sidebar_width);
width: 100%;
> .pad {
margin-left: @ini_sidebar_width;
}
}
[dir=rtl] .showSidebar #dokuwiki__content {
float: left;
margin-left: 0;
margin-right: (-1 * @ini_sidebar_width);
> .pad {
margin-left: 0;
margin-right: @ini_sidebar_width;
}
}
#dokuwiki__footer {
clear: both;
}

View File

@@ -1,263 +0,0 @@
/* TurboVision-inspired integration layer for TuiCSS.
* Keep changes template-owned (do not edit _vendor/tuicss).
*/
/* Base look */
body.luxtools-tv {
min-height: 100vh;
color: #fff;
/* Keep content visible under fixed bars */
--luxtools-topbar-h: 34px;
--luxtools-statusbar-h: 28px;
padding-top: 0;
padding-bottom: var(--luxtools-statusbar-h);
}
/* DokuWiki default template tends to assume dark-on-light; override minimal bits */
body.luxtools-tv .dokuwiki {
color: inherit;
}
body.luxtools-tv a {
color: rgb(0, 255, 255);
}
/* Keep the existing centered/max-width layout */
body.luxtools-tv #dokuwiki__site {
background: transparent;
max-width: none;
width: 100%;
margin-top: var(--luxtools-topbar-h);
}
/* Make wrapper a two-column flex layout in TV mode */
body.luxtools-tv #dokuwiki__site .wrapper {
display: flex;
align-items: stretch;
min-height: calc(100vh - var(--luxtools-topbar-h) - var(--luxtools-statusbar-h));
}
body.luxtools-tv #dokuwiki__aside {
float: none;
flex: 0 0 __sidebar_width__;
width: auto;
}
body.luxtools-tv #dokuwiki__content {
float: none;
flex: 1 1 auto;
width: auto;
margin: 0;
min-width: 0;
}
body.luxtools-tv .hasSidebar #dokuwiki__content {
margin-left: 0;
width: auto;
}
/* Let the page fieldset fill available vertical space */
body.luxtools-tv #dokuwiki__content {
display: flex;
flex-direction: column;
height: 100%;
}
body.luxtools-tv .luxtools__page-fieldset {
flex: 1 1 auto;
display: flex;
flex-direction: column;
min-height: 0;
}
/* Ensure the inner wiki content can scroll if it overflows */
body.luxtools-tv .luxtools__page-fieldset > * {
min-width: 0;
}
/* --- Top bar --- */
#dokuwiki__header {
margin: 0;
}
#luxtools__topbar {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 100;
}
#luxtools__topbar .luxtools__topbar-inner {
display: flex;
align-items: center;
gap: 12px;
}
#luxtools__topbar .luxtools__brand a {
display: inline-flex;
align-items: center;
gap: 8px;
text-decoration: none;
color: black;
}
#luxtools__topbar .luxtools__logo {
width: 18px;
height: 18px;
image-rendering: pixelated;
}
#luxtools__topbar .luxtools__title {
font-weight: bold;
}
#luxtools__topbar .luxtools__search {
margin-left: auto;
display: flex;
justify-content: flex-end;
}
/* Make the core search form look like TuiCSS input */
#luxtools__topbar form.search {
margin: 0;
}
/* Trace should be inline in the bar (not centered, not blocky) */
#luxtools__topbar .luxtools__trace {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 45vw;
color: black;
}
#luxtools__topbar .luxtools__trace .breadcrumbs {
display: inline;
margin: 0;
}
#luxtools__topbar .luxtools__trace a {
color: black;
}
#luxtools__topbar form.search input[type="text"],
#luxtools__topbar form.search input#qsearch__in {
background-color: rgb(0, 0, 0);
color: white;
outline: 0;
border: none;
border-radius: 0;
padding: 2px 6px;
width: 100%;
max-width: 26em;
}
#luxtools__topbar form.search input[type="text"]:focus,
#luxtools__topbar form.search input#qsearch__in:focus {
background-color: rgb(255, 255, 0);
color: black;
}
#luxtools__topbar form.search button,
#luxtools__topbar form.search input[type="submit"] {
display: none;
}
#luxtools__topbar .luxtools__menus {
margin: 0;
padding: 0;
list-style: none;
display: flex;
align-items: center;
gap: 10px;
}
/* Be resilient against generic "nav ul li { display:block }" rules */
#luxtools__topbar ul,
#luxtools__topbar li {
list-style: none;
}
#luxtools__topbar .luxtools__menus > li {
display: inline-block !important;
}
/* Keep dropdown menu vertical */
#luxtools__topbar .tui-dropdown-content ul {
display: block;
}
#luxtools__topbar .tui-dropdown-content ul li {
display: block !important;
}
#luxtools__topbar .luxtools__menu {
user-select: none;
}
/* (trace styling moved above) */
#luxtools__topbar .luxtools__dropdown-title {
margin: 6px;
}
/* --- Fieldsets around sidebar and page --- */
.luxtools__sidebar-fieldset,
.luxtools__page-fieldset {
margin: 0;
}
.luxtools__page-fieldset {
margin-bottom: 0;
}
/* Avoid double spacing from DokuWiki pads */
#dokuwiki__content {
padding-top: 0;
}
/* --- Status bar --- */
#dokuwiki__pagetools {
border: none;
background-color: rgb(168, 168, 168);
}
#dokuwiki__pagetools ul {
margin: 0;
padding: 0;
list-style: none;
display: flex;
align-items: center;
flex-wrap: wrap;
}
#dokuwiki__pagetools ul li {
display: inline-flex !important;
margin: 0 0 0 10px;
padding: 2px 3px;
}
#dokuwiki__pagetools ul li a {
color: black;
text-decoration: none;
border-bottom: none;
}
#dokuwiki__pagetools ul li:active,
#dokuwiki__pagetools ul li:hover {
background-color: rgb(0, 0, 168);
}
#dokuwiki__pagetools ul li:active a,
#dokuwiki__pagetools ul li:hover a {
color: white;
}
.luxtools__hotkey {
margin-right: 4px;
}
.tui-fieldset {
background-color: #0000a8;
}

50
css/usertools.less Executable file
View File

@@ -0,0 +1,50 @@
#dokuwiki__usertools {
position: absolute;
top: .5em;
right: 40px; // pagetool width
text-align: right;
width: 100%;
ul {
margin: 0 auto;
padding: 0;
max-width: @ini_site_width;
}
li.action a {
display: inline-flex;
flex-direction: row-reverse;
flex-wrap: nowrap;
svg {
height: 1.4em;
width: 1.4em;
vertical-align: middle;
fill: @ini_border;
margin-right: 0.2em;
}
}
li.action a:hover,
li.action a:active {
svg {
fill: @ini_link;
}
}
}
[dir=rtl] #dokuwiki__usertools {
text-align: left;
left: 40px; // pagetool width
right: auto;
li.action a {
svg {
margin-right: 0;
margin-left: 0.2em;
}
}
}

113
detail.php Normal file → Executable file
View File

@@ -1,4 +1,5 @@
<?php <?php
/** /**
* DokuWiki Image Detail Page * DokuWiki Image Detail Page
* *
@@ -9,89 +10,95 @@
// must be run from within DokuWiki // must be run from within DokuWiki
if (!defined('DOKU_INC')) die(); if (!defined('DOKU_INC')) die();
@require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */
?><!DOCTYPE html> ?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $conf['lang']?>" <html lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction'] ?>" class="no-js">
lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction'] ?>" class="no-js">
<head> <head>
<meta charset="UTF-8" /> <meta charset="utf-8" />
<title> <title>
<?php echo hsc(tpl_img_getTag('IPTC.Headline',$IMG))?> <?php echo hsc(tpl_img_getTag('IPTC.Headline', $IMG))?>
[<?php echo strip_tags($conf['title'])?>] [<?php echo strip_tags($conf['title'])?>]
</title> </title>
<script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)</script>
<?php tpl_metaheaders()?> <?php tpl_metaheaders()?>
<meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="viewport" content="width=device-width,initial-scale=1" />
<?php echo tpl_favicon(array('favicon', 'mobile')) ?> <?php echo tpl_favicon(['favicon', 'mobile']) ?>
<?php tpl_includeFile('meta.html') ?> <?php tpl_includeFile('meta.html') ?>
</head> </head>
<body> <body>
<div id="dokuwiki__detail" class="<?php echo tpl_classes(); ?>"> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?>">
<?php include(__DIR__ . '/tpl_header.php') ?>
<div class="wrapper group" id="dokuwiki__detail">
<!-- ********** CONTENT ********** -->
<main id="dokuwiki__content"><div class="pad group">
<?php html_msgarea() ?> <?php html_msgarea() ?>
<?php if($ERROR): print $ERROR; ?> <?php if (!$ERROR) : ?>
<?php else: ?> <div class="pageId"><span><?php echo hsc(tpl_img_getTag('IPTC.Headline', $IMG)); ?></span></div>
<?php endif; ?>
<main class="content group"> <div class="page group">
<?php if($REV) echo p_locale_xhtml('showrev');?> <?php tpl_flush() ?>
<h1><?php echo hsc(tpl_img_getTag('IPTC.Headline', $IMG))?></h1> <?php tpl_includeFile('pageheader.html') ?>
<!-- detail start -->
<?php
if ($ERROR) :
echo '<h1>' . $ERROR . '</h1>';
else : ?>
<?php if ($REV) echo p_locale_xhtml('showrev');?>
<h1><?php echo nl2br(hsc(tpl_img_getTag('simple.title'))); ?></h1>
<?php tpl_img(900, 700); /* the image; parameters: maximum width, maximum height (and more) */ ?> <?php tpl_img(900, 700); /* parameters: maximum width, maximum height (and more) */ ?>
<div class="img_detail"> <div class="img_detail">
<h2><?php print nl2br(hsc(tpl_img_getTag('simple.title'))); ?></h2>
<?php if(function_exists('tpl_img_meta')): ?>
<?php tpl_img_meta(); ?> <?php tpl_img_meta(); ?>
<?php else: /* deprecated since Release 2014-05-05 */ ?>
<dl> <dl>
<?php <?php
$config_files = getConfigFiles('mediameta'); echo '<dt>' . $lang['reference'] . ':</dt>';
foreach ($config_files as $config_file) { $media_usage = ft_mediause($IMG, true);
if(@file_exists($config_file)) { if ($media_usage !== []) {
include($config_file); foreach ($media_usage as $path) {
echo '<dd>' . html_wikilink($path) . '</dd>';
} }
}
foreach($fields as $key => $tag){
$t = array();
if (!empty($tag[0])) {
$t = array($tag[0]);
}
if(is_array($tag[3])) {
$t = array_merge($t,$tag[3]);
}
$value = tpl_img_getTag($t);
if ($value) {
echo '<dt>'.$lang[$tag[1]].':</dt><dd>';
if ($tag[2] == 'date') {
echo dformat($value);
} else { } else {
echo hsc($value); echo '<dd>' . $lang['nothingfound'] . '</dd>';
}
echo '</dd>';
}
} }
?> ?>
</dl> </dl>
<?php endif; ?> <p><?php echo $lang['media_acl_warning']; ?></p>
<?php //Comment in for Debug// dbg(tpl_img_getTag('Simple.Raw')); ?>
</div> </div>
</main><!-- /.content --> <?php //Comment in for Debug// dbg(tpl_img_getTag('Simple.Raw'));?>
<?php endif; ?>
</div>
<!-- detail stop -->
<?php tpl_includeFile('pagefooter.html') ?>
<?php tpl_flush() ?>
<nav> <?php /* doesn't make sense like this; @todo: maybe add tpl_imginfo()?
<div class="docInfo"><?php tpl_pageinfo(); ?></div>
*/ ?>
</div></main><!-- /content -->
<hr class="a11y" />
<!-- PAGE ACTIONS -->
<?php if (!$ERROR) : ?>
<nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading">
<h3 class="a11y" id="dokuwiki__pagetools__heading"><?php echo $lang['page_tools']; ?></h3>
<div class="tools">
<ul> <ul>
<?php if (file_exists(DOKU_INC . 'inc/Menu/DetailMenu.php')) { <?php echo (new \dokuwiki\Menu\DetailMenu())->getListItems(); ?>
echo (new \dokuwiki\Menu\DetailMenu())->getListItems('action ', false);
} else {
_tpl_detailtools();
} ?>
</ul> </ul>
</nav>
<?php endif; ?>
</div> </div>
</nav>
<?php endif; ?>
</div><!-- /wrapper -->
<?php include(__DIR__ . '/tpl_footer.php') ?>
</div></div><!-- /site -->
</body> </body>
</html> </html>

Binary file not shown.

BIN
images/apple-touch-icon.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
images/button-css.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

BIN
images/button-donate.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

BIN
images/button-dw.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

BIN
images/button-html5.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

BIN
images/button-php.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

BIN
images/button-rss.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

84
images/dokuwiki.svg Executable file
View File

@@ -0,0 +1,84 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 128.17 128.04">
<defs>
<linearGradient id="a">
<stop stop-color="#d69c00" offset="0"/>
<stop stop-color="#ffe658" offset="1"/>
</linearGradient>
<linearGradient id="n" x1="192.04" x2="263.67" y1="262.26" y2="262.26" gradientUnits="userSpaceOnUse">
<stop stop-color="#00a423" offset="0"/>
<stop stop-color="#00b427" offset="1"/>
</linearGradient>
<linearGradient id="p" x1="191.75" x2="255.66" y1="258.92" y2="258.92" gradientUnits="userSpaceOnUse">
<stop stop-color="#00b62b" offset="0"/>
<stop stop-color="#a1d784" offset="1"/>
</linearGradient>
<linearGradient id="m" x1="184.07" x2="201.41" y1="246.36" y2="246.36" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
<linearGradient id="d" x1="162.76" x2="240.85" y1="184.99" y2="289.5" gradientUnits="userSpaceOnUse">
<stop stop-color="#ede1ae" offset="0"/>
<stop stop-color="#fefdfa" offset="1"/>
</linearGradient>
<linearGradient id="b" x1="140.16" x2="136.14" y1="303.79" y2="195.87" gradientUnits="userSpaceOnUse">
<stop stop-color="#fbf6f0" offset="0"/>
<stop stop-color="#e9dac7" offset="1"/>
</linearGradient>
<linearGradient id="c" x1="286.16" x2="185.81" y1="262.29" y2="172.32" gradientUnits="userSpaceOnUse">
<stop stop-color="#fbfaf9" offset="0"/>
<stop stop-color="#e9dac7" offset="1"/>
</linearGradient>
<linearGradient id="h" x1="213.97" x2="244.79" y1="220.07" y2="265.4" gradientUnits="userSpaceOnUse">
<stop stop-opacity=".173" offset="0"/>
<stop stop-color="#c7cec2" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="l" x1="184.31" x2="224.67" y1="241.53" y2="307.53" gradientUnits="userSpaceOnUse">
<stop stop-opacity=".173" offset="0"/>
<stop stop-color="#c7cec2" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="e" x1="202.42" x2="206.06" y1="222.05" y2="210.36" gradientUnits="userSpaceOnUse">
<stop stop-color="#e32525" stop-opacity=".816" offset="0"/>
<stop stop-color="#e32525" stop-opacity=".571" offset="1"/>
</linearGradient>
<linearGradient id="f" x1="248.62" x2="251.64" y1="234.52" y2="213.12" gradientUnits="userSpaceOnUse">
<stop stop-color="#25901b" stop-opacity=".837" offset="0"/>
<stop stop-color="#25901b" stop-opacity=".378" offset="1"/>
</linearGradient>
<linearGradient id="g" x1="275.72" x2="255.68" y1="251.56" y2="217.94" gradientUnits="userSpaceOnUse">
<stop stop-color="#3a9030" stop-opacity=".837" offset="0"/>
<stop stop-color="#3d9c32" stop-opacity=".796" offset="1"/>
</linearGradient>
<linearGradient id="k" x1="219.66" x2="277.88" y1="192.73" y2="192.73" gradientUnits="userSpaceOnUse">
<stop stop-color="#ce411e" offset="0"/>
<stop stop-color="#ecad8d" offset="1"/>
</linearGradient>
<linearGradient id="j" x1="219.21" x2="286.23" y1="189.02" y2="189.02" gradientUnits="userSpaceOnUse">
<stop stop-color="#8f2a15" offset="0"/>
<stop stop-color="#c8381b" offset="1"/>
</linearGradient>
<radialGradient id="o" cx="257.41" cy="274.64" r="7.144" gradientTransform="matrix(1 0 0 1.6314 0 -173.4)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
<radialGradient id="i" cx="224.41" cy="212.8" r="8.681" gradientTransform="matrix(1 0 0 .98418 0 3.367)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
</defs>
<g fill-rule="evenodd" stroke="#000">
<path transform="matrix(.98991 -.14067 .20106 .97564 -158.095 -157.774)" d="m120.22 196.44 70.907-.792-2.403 109.05-71.718.373 3.214-108.63z" fill="url(#b)" stroke-width=".722"/>
<path d="m179.2 182.09 79.842-19.517 26.614 101.72-82.503 21.587L179.2 182.09z" fill="url(#c)" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path transform="matrix(.99561 -.09253 .08102 .9927 -158.095 -157.774)" d="m159.01 181.74 85.586.534v110.47l-84.534-2.513-1.052-108.5z" fill="url(#d)" stroke-width="1.004"/>
</g>
<path d="M29.106 38.471 27.179 18.46l5.325-.508.226 2.353-2.47.236 1.474 15.305 2.47-.236.226 2.354-5.324.508m7.313-.698L34.492 17.76l5.325-.509.227 2.354-2.47.236 1.474 15.304 2.47-.236.226 2.354-5.325.509m5.409-20.713 5.784-.553c1.304-.124 2.308-.12 3.012.014.945.182 1.78.586 2.501 1.212.722.626 1.303 1.423 1.741 2.391.438.962.728 2.174.868 3.636.124 1.285.07 2.408-.16 3.37-.284 1.173-.755 2.145-1.414 2.918-.498.585-1.199 1.071-2.104 1.458-.677.287-1.6.486-2.77.598l-5.955.569-1.504-15.613m3.42 2.339.995 10.341 2.363-.225c.884-.085 1.517-.195 1.9-.332.5-.177.904-.434 1.21-.771.313-.338.542-.865.69-1.582.145-.723.16-1.688.044-2.895s-.312-2.123-.588-2.75c-.276-.625-.624-1.1-1.044-1.426-.42-.325-.932-.523-1.536-.595-.451-.057-1.322-.024-2.612.1l-1.422.135M61.39 30.95l-5.245-15.256 3.24-.31 3.395 10.499 1.833-10.998 3.764-.36 3.797 10.644 1.356-11.136 3.187-.304-2.304 15.976-3.357.321-4.246-11.374-1.988 11.97-3.432.327m21.154-17.777 1.927 20.012-5.325.509-.226-2.354 2.47-.236-1.476-15.325-2.47.236-.224-2.333 5.324-.508m7.314-.699 1.927 20.012-5.325.509-.227-2.354 2.47-.236-1.475-15.325-2.47.236-.225-2.333 5.325-.508" fill="#6184a3"/>
<g fill-rule="evenodd">
<path d="M174.76 201.6c-6.046 2.467-10.168 4.42-12.885 6.35s-3.193 4.6-3.246 6.267c-.027.832.08 1.777.632 2.44.55.662 1.807 1.874 2.757 2.385 1.901 1.023 7.542 2.43 10.52 3.073 11.908 2.577 26.805 1.682 26.805 1.682 1.694 1.245 2.833 2.824 3.27 4.269 4.576-1.887 11.81-6.585 13.156-8.578-5.45-4.2-10.797-6.333-16.513-8.308-1.598-.72-2.88-1.227-.717 2.556.985 2.473.858 5.052.572 7.419 0 0-16.527.406-28.238-2.127-2.928-.633-5.467-.955-7.22-1.898-.876-.472-1.482-.821-1.915-1.341s-.22-1.291-.201-1.86c.036-1.135.253-1.67 2.861-3.524s5.655-3.362 11.66-5.812c-.088-1.291-.29-2.506-1.298-2.993z" fill="url(#e)" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="M269.63 220.75c-1.436-.14-2.58.303-2.56 1.502.943.857 1.349 2.435 1.485 3.14s.036 1.22-.486 1.89c-1.043 1.342-3.125 1.57-6.5 2.72-6.752 2.305-16.893 2.526-27.907 3.847-22.028 2.642-39.032 3.761-39.032 3.761 1.983-4.647 6.328-4.412 6.349-8.21.273-.897-3.146-1.316-5.1-.107-4.267 3.702-7.591 6.754-10.694 10.513l1.888 3.085s26.13-2.89 48.198-5.536c11.034-1.324 20.956-1.999 27.81-4.338 3.427-1.169 5.96-1.49 7.641-3.52.632-.762 1.352-3.046 1.068-4.733-.22-1.302-1.15-3.098-2.16-4.014z" fill="url(#f)" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="M254.36 220.34c-6.85 3.242-7.153 8.61-5.96 12.799s5.263 8.757 9.322 12.406c8.116 7.299 12.06 9.332 12.06 9.332-3.715-.104-7.9-1.412-8.133.493-.949 2.975 11.49 3.475 17.438 2.702-1.395-7.579-3.794-13.215-7.732-14.903-1.685-.148.312 4.724.77 9.396 0 0-3.625-1.732-11.605-8.908-3.99-3.588-7.374-7.342-8.473-11.201s.077-6.12 4.95-9.532c.929-.995-1.29-2.459-2.637-2.584z" fill="url(#g)" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
</g>
<path d="m213.97 234.58 2.188-14.429 15.22 6.088 21.494 29.948-20.406 9.218-18.495-30.826z" fill="url(#h)" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m232.56 219.53-15.928.322 3.088-15.157 12.84 14.835z" fill="url(#i)" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m63.49 60.634-4.412.078.854-3.966 3.557 3.888z" fill="#812310" fill-rule="evenodd"/>
<path d="m269.44 159.27.098 8.915 8.058 8.723 7.76.8-52.808 41.84-6.665-3.307-5.083-5.618-1.09-5.912 49.73-45.44z" fill="url(#j)" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m268.95 168.33 8.343 8.827-51.101 38.683-4.92-5.443 47.678-42.066z" fill="url(#k)" fill-rule="evenodd" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m285.34 177.73-8.162-.866-7.752-8.679.013-9.143 8.362.752 7.189 9.577.35 8.359z" fill="#ffe965" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m122.605 10.009.165 4.04-3.814-.714-2.874-3.176-.281-3.52 3.854-.166 2.95 3.536z" fill="#cb391c" fill-rule="evenodd"/>
<path d="m183.89 256.83 1-16.307 17.288 8.44 26.055 38.01-29.281-1.135-15.062-29.009z" fill="url(#l)" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m200.91 238.45-8.046 15.774-7.056-13.573 15.102-2.2z" fill="url(#m)" stroke="#000" stroke-linejoin="round" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m201.05 238.55 62.117 24.919-7.887 3.214-4.351 9.31 1.171 9.964-59.315-31.728-.494-7.364 3.096-5.828 5.662-2.488z" fill="url(#n)" stroke="#000" stroke-linejoin="round" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m255.28 266.54 7.924-3.048.853 10.24-3.9 8.29-8.047 3.78-1.34-9.631 4.51-9.631z" fill="url(#o)" stroke="#000" stroke-linejoin="round" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m195.75 241.42 59.131 24.796-4.592 9.766-57.49-29.01 2.951-5.553z" fill="url(#p)" transform="matrix(.99993 0 0 .99598 -158.095 -157.774)"/>
<path d="m96.907 116.33 2.084-4.09 2.964-1.067.695 3.359-1.768 3.841-3.155 1.378-.82-3.422z" fill="#00b527"/>
<path d="m28.462 82.257 3.55-.471-2.024 3.525-1.526-3.054z" fill="#258209"/>
</svg>

After

Width:  |  Height:  |  Size: 9.1 KiB

0
images/favicon.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

5
images/license.txt Executable file
View File

@@ -0,0 +1,5 @@
Icons for: sitetools.png
Icon set: Dusseldorf
Designer: pc.de
License: Creative Commons Attribution License [http://creativecommons.org/licenses/by/3.0/]
URL: http://pc.de/icons/#Dusseldorf

BIN
images/logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

8
images/page-background.svg Executable file
View File

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
<linearGradient id="g" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0" stop-color="#dddddd" />
<stop offset="0.1" stop-color="#eeeeee" />
<stop offset="0.4" stop-color="#fbfaf9" />
</linearGradient>
<rect x="0" y="0" width="100%" height="100%" fill="url(#g)" />
</svg>

After

Width:  |  Height:  |  Size: 376 B

BIN
images/page-gradient.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

121
images/pagetools-build.php Executable file
View File

@@ -0,0 +1,121 @@
<?php
// phpcs:ignoreFile -- deprecated and will be removed
/**
* This script generates a sprite from the unprocessed pagetool icons by combining them
* and overlaying a color layer for the active state.
*
* This script requires a current libGD to be available.
*
* The color for the active state is read from the style.ini's __link__ replacement
*
* The final sprite is optimized with optipng if available.
*
* @author Andreas Gohr <andi@splitbrain.org>
* @deprecated 2018-06-15 we no longer use PNG based icons
* @todo Maybe add some more error checking
*/
$GAMMA = 0.8;
$OPTIPNG = '/usr/bin/optipng';
if('cli' != PHP_SAPI) die('please run from commandline');
// load input images
$input = glob('pagetools/*.png');
sort($input);
$cnt = count($input);
if(!$cnt){
die("No input images found. This script needs to be called from within the image directory!\n");
}
// create destination image
$DST = imagecreatetruecolor(30,$cnt*45*2);
imagesavealpha($DST, true);
$C_trans = imagecolorallocatealpha($DST, 0, 0, 0, 127);
imagefill($DST, 0, 0, $C_trans);
// load highlight color from style.ini
$ini = parse_ini_file('../style.ini',true);
$COLOR = hex2rgb($ini['replacements']['__link__']);
$C_active = imagecolorallocate($DST, $COLOR['r'],$COLOR['g'],$COLOR['b']);
// add all the icons to the sprite image
for($i=0; $i<$cnt; $i++){
$base = $i*90;
$IN = imagecreatefrompng($input[$i]);
imagesavealpha($IN, true);
imagecolorscale($IN,$GAMMA);
imagecopy($DST,$IN, 0,$base, 0,0, 30,30);
imagedestroy($IN);
$IN = imagecreatefrompng($input[$i]);
imagesavealpha($IN, true);
imagecolorscale($IN,$GAMMA);
imagecopy($DST,$IN, 0,$base+45, 0,0, 30,30);
imagedestroy($IN);
imagelayereffect($DST, IMG_EFFECT_OVERLAY);
imagefilledrectangle($DST, 0,$base+45, 30,$base+45+30, $C_active);
imagelayereffect($DST, IMG_EFFECT_NORMAL);
}
// output sprite
imagepng($DST,'pagetools-sprite.png');
imagedestroy($DST);
// optimize if possible
if(is_executable($OPTIPNG)){
system("$OPTIPNG -o5 'pagetools-sprite.png'");
}
/**
* Convert a hex color code to an rgb array
*/
function hex2rgb($hex) {
// strip hash
$hex = str_replace('#', '', $hex);
// normalize short codes
if(strlen($hex) == 3){
$hex = substr($hex,0,1).
substr($hex,0,1).
substr($hex,1,1).
substr($hex,1,1).
substr($hex,2,1).
substr($hex,2,1);
}
// calc rgb
return ['r' => hexdec(substr($hex, 0, 2)), 'g' => hexdec(substr($hex, 2, 2)), 'b' => hexdec(substr($hex, 4, 2))];
}
/**
* Scale (darken/lighten) a given image
*
* @param resource $img The truetype GD image to work on
* @param float $scale Scale the colors by this value ( <1 darkens, >1 lightens)
*/
function imagecolorscale(&$img, $scale){
$w = imagesx($img);
$h = imagesy($img);
imagealphablending($img, false);
for($x = 0; $x < $w; $x++){
for($y = 0; $y < $h; $y++){
$rgba = imagecolorat($img, $x, $y);
$a = ($rgba >> 24) & 0xFF;
$r = ($rgba >> 16) & 0xFF;
$g = ($rgba >> 8) & 0xFF;
$b = $rgba & 0xFF;
$r = max(min(round($r*$scale),255),0);
$g = max(min(round($g*$scale),255),0);
$b = max(min(round($b*$scale),255),0);
$color = imagecolorallocatealpha($img, $r, $g, $b, $a);
imagesetpixel($img, $x, $y, $color);
}
}
imagealphablending($img, true);
}

BIN
images/pagetools-sprite.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
images/pagetools/00_default.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

BIN
images/pagetools/01_edit.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

BIN
images/pagetools/02_create.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

BIN
images/pagetools/03_draft.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

BIN
images/pagetools/04_show.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

BIN
images/pagetools/05_source.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

BIN
images/pagetools/06_revert.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

BIN
images/pagetools/07_revisions.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

BIN
images/pagetools/08_backlink.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

BIN
images/pagetools/09_subscribe.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

BIN
images/pagetools/10_top.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

BIN
images/pagetools/12_back.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

4
images/pagetools/license.txt Executable file
View File

@@ -0,0 +1,4 @@
Icon set: iPhone toolbar icons
Designer: TheWorkingGroup.ca
License: Creative Commons Attribution-Share Alike License [http://creativecommons.org/licenses/by-sa/3.0/]
URL: http://blog.twg.ca/2009/09/free-iphone-toolbar-icons/

BIN
images/search.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

BIN
images/toc-arrows.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

BIN
images/toc-bullet.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

BIN
images/usertools.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

19
lang/de/lang.php Executable file
View File

@@ -0,0 +1,19 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Kurt Singer <webmaster@kurt-singer.com>
* @author Jürgen Fredriksson <jfriedrich@gmx.at>
* @author Anika Henke <anika@selfthinker.org>
*/
$lang['home'] = 'Startseite';
$lang['__background_site__'] = 'Farbe für den Seitenhintergrund (hinter dem Inhaltsbereich)';
$lang['__link__'] = 'Allgemeine Linkfarbe';
$lang['__existing__'] = 'Farbe für Links zu existierenden Seiten';
$lang['__missing__'] = 'Farbe für Links zu nicht-existierenden Seiten';
$lang['__site_width__'] = 'Breite der ganzen Seite (kann eine beliebige Längeneinheit sein: %, px, em, ...)';
$lang['__sidebar_width__'] = 'Breite der Seitenleiste, falls vorhanden (kann eine beliebige Längeneinheit sein: %, px, em, ...)';
$lang['__tablet_width__'] = 'Unter dieser Fensterbreite wechselt die Seite in den Tabletmodus';
$lang['__phone_width__'] = 'Unter dieser Fensterbreite wechselt die Seite in den Handymodus';
$lang['__theme_color__'] = 'Farbschema der Webapplikation';

View File

@@ -1,7 +0,0 @@
<?php
/**
* Deutsche Übersetzung Einstellungen
*
*/
$lang['hideTools'] = 'Tools abschalten, wenn der Benutzer nicht angemeldet ist?';

1
lang/de/style.txt Executable file
View File

@@ -0,0 +1 @@
Wenn Sie das Logo anpassen wollen, benutzen Sie einfach den Medien-Manager, um ein ''logo.png'' in den ''wiki''- oder Wurzel-Namensraum hochzuladen. Es wird dann automatisch als Logo verwendet. Sie können dort auch ein ''favicon.ico'' hochladen. Falls Sie ein geschlossenes Wiki haben, ist es empfehlenswert, den ''wiki''- (oder Wurzel-)Namensraum für alle Nutzer in den ACL-Einstellungen als lesbar zu öffnen. Ansonsten wird das Logo nur für eingeloggte Nutzer angezeigt.

11
lang/en/lang.php Normal file → Executable file
View File

@@ -1,10 +1,13 @@
<?php <?php
/**
* English language file for template
*
*/
$lang['home'] = 'Home';
// style.ini values
$lang['__background_site__'] = 'Color for the very background (behind the content box)';
$lang['__link__'] = 'The general link color';
$lang['__existing__'] = 'The color for links to existing pages'; $lang['__existing__'] = 'The color for links to existing pages';
$lang['__missing__'] = 'The color for links to non-existing pages'; $lang['__missing__'] = 'The color for links to non-existing pages';
$lang['__site_width__'] = 'The width of the full site (can be any length unit: %, px, em, ...)'; $lang['__site_width__'] = 'The width of the full site (can be any length unit: %, px, em, ...)';
$lang['__sidebar_width__'] = 'The width of the sidebar, if any (can be any length unit: %, px, em, ...)'; $lang['__sidebar_width__'] = 'The width of the sidebar, if any (can be any length unit: %, px, em, ...)';
$lang['__tablet_width__'] = 'Below screensizes of this width, the site switches to tablet mode';
$lang['__phone_width__'] = 'Below screensizes of this width, the site switches to phone mode';
$lang['__theme_color__'] = 'Theme color of the web app';

View File

@@ -1,8 +0,0 @@
<?php
/**
* English language file for config
*
*/
$lang['hideTools'] = 'Hide tools when not logged in?';
$lang['sidebarIsNav'] = 'Is the sidebar mainly used for navigation?';

5
lang/en/style.txt Normal file → Executable file
View File

@@ -1 +1,4 @@
If you'd like to change the favicon, simply use the Media Manager to upload a ''favicon.ico'' into the ''wiki'' or the root namespace and it will automatically be used. If you use a closed wiki it is recommended to make the ''wiki'' (or root) namespace world readable in the ACL settings or your favicon will not be shown to logged-out users. If you want to adjust the logo, simply use the Media Manager to upload a ''logo.png'' into the ''wiki'' or the root namespace and it
will be automatically used. You can also upload a ''favicon.ico'' there. If you use a closed
wiki it is recommended to make the ''wiki'' (or root) namespace world readable in the ACL settings or
your logo is not shown to not logged in users.

View File

@@ -1,7 +0,0 @@
<?php
/**
* Fichier de langue française pour la config.
*
*/
$lang['hideTools'] = 'Masquer les outils aux visiteurs anonymes ?';

View File

@@ -1,11 +0,0 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Hideaki SAWADA <chuno@live.jp>
*/
$lang['__existing__'] = '既存ページへのリンク色';
$lang['__missing__'] = '存在しないページへのリンク色';
$lang['__site_width__'] = 'サイトの全体幅(任意の長さの単位を使用可能: % px em 他)';
$lang['__sidebar_width__'] = 'サイドバーがある場合、サイドバーの幅(任意の長さの単位を使用可能: % px em 他)';

View File

@@ -1,8 +0,0 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Hideaki SAWADA <chuno@live.jp>
*/
$lang['hideTools'] = 'ログインしていない場合、ツールを隠す';

View File

@@ -1,4 +0,0 @@
ファビコンを変更したい場合、メディア管理を利用して ''wiki'' またはルート名前空間に ''favicon.ico'' をアップロードして下さい。
自動的にその画像を使用します。
アクセス制限のある wiki を使用している場合、アクセスコントロール管理で ''wiki''(またはルート)名前空間を全員読取可に設定して下さい。
そうでないとログインしていないユーザーにファビコンが表示されません。

View File

@@ -1,10 +0,0 @@
<?php
/**
* Korean language file for template
*
*/
$lang['__existing__'] = '문서가 존재하는 링크의 색';
$lang['__missing__'] = '문서가 존재하지 않는 링크의 색';
$lang['__site_width__'] = '전체 사이트의 너비 (어떠한 길이 단위도 사용할 수 있습니다: %, px, em, ...)';
$lang['__sidebar_width__'] = '사이드바가 있다면, 그것의 너비 (어떠한 길이 단위도 사용할 수 있습니다: %, px, em, ...)';

View File

@@ -1,7 +0,0 @@
<?php
/**
* Korean language file for config
*
*/
$lang['hideTools'] = '로그인하지 않을 때 도구를 숨길까요?';

View File

@@ -1 +0,0 @@
파비콘을 바꾸고 싶으면, 간단히 미디어 관리자를 사용하여 ''wiki'' 또는 루트 이름공간 안에 ''favicon.ico''를 올리면 자동으로 사용됩니다. 닫힌 위키를 사용한다면 ACL 설정에서 ''wiki'' (또는 루트) 이름공간을 누구나 읽을 수 있도록 하는 것을 권장합니다, 또는 파비콘이 로그아웃한 사용자에게 보이지 않습니다.

View File

@@ -1,9 +0,0 @@
<?php
/**
* Russian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Aleksandr Selivanov <alexgearbox@gmail.com>
*/
$lang['hideTools'] = 'Скрывать инструменты гостям?';

175
main.php Normal file → Executable file
View File

@@ -1,175 +1,88 @@
<?php <?php
/** /**
* DokuWiki Starter Template * DokuWiki Default Template 2012
* *
* @link http://dokuwiki.org/template:starter * @link http://dokuwiki.org/template
* @author Anika Henke <anika@selfthinker.org> * @author Anika Henke <anika@selfthinker.org>
* @author Clarence Lee <clarencedglee@gmail.com>
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/ */
if (!defined('DOKU_INC')) die(); /* must be run from within DokuWiki */ if (!defined('DOKU_INC')) die(); /* must be run from within DokuWiki */
@require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */
$showTools = !tpl_getConf('hideTools') || ( tpl_getConf('hideTools') && !empty($_SERVER['REMOTE_USER']) ); $hasSidebar = page_findnearest($conf['sidebar']);
$showSidebar = page_findnearest($conf['sidebar']) && ($ACT=='show'); $showSidebar = $hasSidebar && ($ACT == 'show');
$sidebarElement = tpl_getConf('sidebarIsNav') ? 'nav' : 'aside';
?><!DOCTYPE html> ?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $conf['lang'] ?>" <html lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>" class="no-js">
lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>" class="no-js">
<head> <head>
<meta charset="UTF-8" /> <meta charset="utf-8" />
<title><?php tpl_pagetitle() ?> [<?php echo strip_tags($conf['title']) ?>]</title> <title><?php tpl_pagetitle() ?> [<?php echo strip_tags($conf['title']) ?>]</title>
<script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)</script>
<link rel="stylesheet" href="<?php echo tpl_basedir(); ?>_vendor/tuicss/dist/tuicss.min.css" />
<script src="<?php echo tpl_basedir(); ?>_vendor/tuicss/dist/tuicss.min.js"></script>
<?php tpl_metaheaders() ?> <?php tpl_metaheaders() ?>
<meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="viewport" content="width=device-width,initial-scale=1" />
<?php echo tpl_favicon(array('favicon', 'mobile')) ?> <?php echo tpl_favicon(['favicon', 'mobile']) ?>
<?php tpl_includeFile('meta.html') ?> <?php tpl_includeFile('meta.html') ?>
</head> </head>
<body class="luxtools-tv tui-bg-blue-black"> <body>
<nav id="luxtools__topbar" class="tui-nav" aria-label="TurboVision top bar">
<div class="luxtools__topbar-inner">
<div class="luxtools__brand">
<?php
$logoUrl = '';
if (function_exists('tpl_getMediaFile')) {
$logoUrl = tpl_getMediaFile(array(':wiki:logo.png', 'logo.png'), false);
}
if (!$logoUrl) {
$logoUrl = ml('logo.png');
}
$brand = '<img class="luxtools__logo" src="'.hsc($logoUrl).'" alt="'.hsc($conf['title']).'" />';
$brand .= '<span class="luxtools__title">'.hsc($conf['title']).'</span>';
tpl_link(wl(), $brand, 'accesskey="h" title="[H]"');
?>
</div>
<div class="luxtools__trace" aria-label="Trace">
<?php if ($conf['breadcrumbs']) { tpl_breadcrumbs(); } ?>
<?php if ($conf['youarehere']) { tpl_youarehere(); } ?>
</div>
<ul class="luxtools__menus">
<li class="tui-dropdown luxtools__menu">
<span class="red-168-text">M</span>enu
<div class="tui-dropdown-content">
<ul>
<li class="luxtools__dropdown-title"><strong><?php echo $lang['site_tools'] ?></strong></li>
<?php
if (file_exists(DOKU_INC . 'inc/Menu/SiteMenu.php')) {
echo (new \dokuwiki\Menu\SiteMenu())->getListItems('action ', false);
} else {
_tpl_sitetools();
}
?>
<?php if ($conf['useacl'] && $showTools): ?>
<div class="tui-black-divider"></div>
<li class="luxtools__dropdown-title"><strong><?php echo $lang['user_tools'] ?></strong></li>
<?php
if (!empty($_SERVER['REMOTE_USER'])) {
echo '<li class="user">';
tpl_userinfo();
echo '</li>';
}
if (file_exists(DOKU_INC . 'inc/Menu/UserMenu.php')) {
echo (new \dokuwiki\Menu\UserMenu())->getListItems('action ', false);
} else {
_tpl_usertools();
}
?>
<?php endif ?>
</ul>
</div>
</li>
</ul>
<div class="luxtools__search">
<?php tpl_searchform() ?>
</div>
</div>
</nav>
<?php /* the "dokuwiki__top" id is needed somewhere at the top, because that's where the "back to top" button/link links to */ ?>
<?php /* tpl_classes() provides useful CSS classes; if you choose not to use it, the 'dokuwiki' class at least
should always be in one of the surrounding elements (e.g. plugins and templates depend on it) */ ?>
<div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?> <?php <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?> <?php
echo ($showSidebar) ? 'hasSidebar' : ''; ?>"> echo ($showSidebar) ? 'showSidebar' : ''; ?> <?php echo ($hasSidebar) ? 'hasSidebar' : ''; ?>">
<?php html_msgarea() /* occasional error and info messages on top of the page */ ?>
<!-- ********** HEADER ********** -->
<header id="dokuwiki__header">
<?php tpl_includeFile('header.html') ?>
<ul class="a11y skip"> <?php include(__DIR__ . '/tpl_header.php') ?>
<li><a href="#dokuwiki__content"><?php echo $lang['skip_to_content'] ?></a></li>
</ul>
<div class="clearer"></div> <div class="wrapper group">
<hr class="a11y" />
</header><!-- /header -->
<div class="wrapper">
<?php if ($showSidebar) : ?>
<!-- ********** ASIDE ********** --> <!-- ********** ASIDE ********** -->
<?php if ($showSidebar): ?> <nav id="dokuwiki__aside" aria-label="<?php echo $lang['sidebar']
<<?php echo $sidebarElement ?> id="dokuwiki__aside" class="aside include group" aria-label="<?php echo $lang['sidebar'] ?>"> ?>"><div class="pad aside include group">
<fieldset class="tui-fieldset tui-border-solid luxtools__sidebar-fieldset"> <h3 class="toggle"><?php echo $lang['sidebar'] ?></h3>
<legend><?php echo $lang['sidebar'] ?></legend> <div class="content"><div class="group">
<?php tpl_flush() ?>
<?php tpl_includeFile('sidebarheader.html') ?> <?php tpl_includeFile('sidebarheader.html') ?>
<?php tpl_include_page($conf['sidebar'], 1, 1) /* includes the nearest sidebar page */ ?> <?php tpl_include_page($conf['sidebar'], true, true) ?>
<?php tpl_includeFile('sidebarfooter.html') ?> <?php tpl_includeFile('sidebarfooter.html') ?>
</fieldset> </div></div>
<div class="clearer"></div> </div></nav><!-- /aside -->
</<?php echo $sidebarElement ?>><!-- /aside -->
<?php endif; ?> <?php endif; ?>
<!-- ********** CONTENT ********** --> <!-- ********** CONTENT ********** -->
<main id="dokuwiki__content"> <main id="dokuwiki__content"><div class="pad group">
<?php tpl_flush() /* flush the output buffer */ ?> <?php html_msgarea() ?>
<?php tpl_includeFile('pageheader.html') ?>
<div class="page"> <div class="pageId"><span><?php echo hsc($ID) ?></span></div>
<div class="page group">
<?php tpl_flush() ?>
<?php tpl_includeFile('pageheader.html') ?>
<!-- wikipage start --> <!-- wikipage start -->
<fieldset class="tui-fieldset tui-border-solid luxtools__page-fieldset"> <?php tpl_content() ?>
<legend class="center"><?php echo hsc($ID); ?></legend>
<?php tpl_content() /* the main content */ ?>
</fieldset>
<!-- wikipage stop --> <!-- wikipage stop -->
<div class="clearer"></div> <?php tpl_includeFile('pagefooter.html') ?>
</div> </div>
<?php tpl_flush() ?> <div class="docInfo"><?php tpl_pageinfo() ?></div>
<?php tpl_includeFile('pagefooter.html') ?>
</main><!-- /content -->
</div><!-- /wrapper --> <?php tpl_flush() ?>
<hr class="a11y" />
</div></main><!-- /content -->
<!-- PAGE ACTIONS --> <!-- PAGE ACTIONS -->
<?php if ($showTools): ?> <nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading">
<nav id="dokuwiki__pagetools" class="tui-statusbar" aria-labelledby="dokuwiki__pagetools_heading"> <h3 class="a11y" id="dokuwiki__pagetools__heading"><?php echo $lang['page_tools']; ?></h3>
<h3 class="a11y" id="dokuwiki__pagetools_heading"><?php echo $lang['page_tools'] ?></h3> <div class="tools">
<ul> <ul>
<?php if (file_exists(DOKU_INC . 'inc/Menu/PageMenu.php')) { <?php echo (new \dokuwiki\Menu\PageMenu())->getListItems(); ?>
echo (new \dokuwiki\Menu\PageMenu())->getListItems('action ', false);
} else {
_tpl_pagetools();
} ?>
</ul> </ul>
</div>
</nav> </nav>
<?php endif; ?> </div><!-- /wrapper -->
<!-- ********** FOOTER ********** --> <?php include(__DIR__ . '/tpl_footer.php') ?>
<footer id="dokuwiki__footer">
<div class="doc"><?php tpl_pageinfo() /* 'Last modified' etc */ ?></div>
<?php tpl_license('button') /* content license, parameters: img=*badge|button|0, imgonly=*0|1, return=*0|1 */ ?>
<?php tpl_includeFile('footer.html') ?>
</footer><!-- /footer -->
</div></div><!-- /site --> </div></div><!-- /site -->
<div class="no"><?php tpl_indexerWebBug() /* provide DokuWiki housekeeping, required in all templates */ ?></div> <div class="no"><?php tpl_indexerWebBug() /* provide DokuWiki housekeeping, required in all templates */ ?></div>
<div id="screen__mode" class="no"></div><?php /* helper to detect CSS media query in script.js */ ?>
</body> </body>
</html> </html>

21
mediamanager.php Normal file → Executable file
View File

@@ -1,45 +1,44 @@
<?php <?php
/** /**
* DokuWiki Media Manager Popup * DokuWiki Media Manager Popup
* *
* @author Andreas Gohr <andi@splitbrain.org> * @author Andreas Gohr <andi@splitbrain.org>
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/ */
// must be run from within DokuWiki // must be run from within DokuWiki
if (!defined('DOKU_INC')) die(); if (!defined('DOKU_INC')) die();
@require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */
?><!DOCTYPE html> ?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $conf['lang']?>" <html lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction'] ?>" class="popup no-js">
lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction'] ?>" class="popup no-js">
<head> <head>
<meta charset="UTF-8" /> <meta charset="utf-8" />
<title> <title>
<?php echo hsc($lang['mediaselect'])?> <?php echo hsc($lang['mediaselect'])?>
[<?php echo strip_tags($conf['title'])?>] [<?php echo strip_tags($conf['title'])?>]
</title> </title>
<script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)</script>
<?php tpl_metaheaders()?> <?php tpl_metaheaders()?>
<meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="viewport" content="width=device-width,initial-scale=1" />
<?php echo tpl_favicon(array('favicon', 'mobile')) ?> <?php echo tpl_favicon(['favicon', 'mobile']) ?>
<?php tpl_includeFile('meta.html') ?> <?php tpl_includeFile('meta.html') ?>
</head> </head>
<body> <body>
<div id="media__manager" class="<?php echo tpl_classes(); ?>"> <div id="media__manager" class="dokuwiki">
<?php html_msgarea() ?> <?php html_msgarea() ?>
<nav id="mediamgr__aside" class="pad"> <nav id="mediamgr__aside"><div class="pad">
<h1><?php echo hsc($lang['mediaselect'])?></h1> <h1><?php echo hsc($lang['mediaselect'])?></h1>
<?php /* keep the id! additional elements are inserted via JS here */?> <?php /* keep the id! additional elements are inserted via JS here */?>
<div id="media__opts"></div> <div id="media__opts"></div>
<?php tpl_mediaTree() ?> <?php tpl_mediaTree() ?>
</nav> </div></nav>
<main id="mediamgr__content" class="pad"> <main id="mediamgr__content"><div class="pad">
<?php tpl_mediaContent() ?> <?php tpl_mediaContent() ?>
</main> </div></main>
</div> </div>
</body> </body>
</html> </html>

114
script.js Normal file → Executable file
View File

@@ -1,49 +1,89 @@
// template-related scripts go here... /**
* We handle several device classes based on browser width.
*
* - desktop: > __tablet_width__ (as set in style.ini)
* - mobile:
* - tablet <= __tablet_width__
* - phone <= __phone_width__
*/
var device_class = ''; // not yet known
var device_classes = 'desktop mobile tablet phone';
(function () { function tpl_dokuwiki_mobile(){
'use strict';
function extractHotkey(linkEl) { // the z-index in mobile.css is (mis-)used purely for detecting the screen mode here
if (!linkEl) return ''; var screen_mode = jQuery('#screen__mode').css('z-index') + '';
// Prefer the human-facing "[X]" in the title when present. // determine our device pattern
// DokuWiki commonly uses titles like "Edit this page [E]". // TODO: consider moving into dokuwiki core
var title = linkEl.getAttribute('title') || ''; switch (screen_mode) {
var match = title.match(/\[([^\]]+)\]\s*$/); case '1':
if (match && match[1]) return match[1].trim(); if (device_class.match(/tablet/)) return;
device_class = 'mobile tablet';
var accessKey = linkEl.getAttribute('accesskey') || ''; break;
if (accessKey) return accessKey.trim().toUpperCase(); case '2':
if (device_class.match(/phone/)) return;
return ''; device_class = 'mobile phone';
break;
default:
if (device_class == 'desktop') return;
device_class = 'desktop';
} }
function prependHotkey(linkEl, hotkey) { jQuery('html').removeClass(device_classes).addClass(device_class);
if (!hotkey) return;
if (linkEl.querySelector('.luxtools__hotkey')) return;
var label = (linkEl.textContent || '').trim(); // handle some layout changes based on change in device
if (!label) return; var $handle = jQuery('#dokuwiki__aside h3.toggle');
var $toc = jQuery('#dw__toc h3');
linkEl.textContent = ''; if (device_class == 'desktop') {
// reset for desktop mode
if($handle.length) {
$handle[0].setState(1);
$handle.hide();
}
if($toc.length) {
$toc[0].setState(1);
}
}
if (device_class.match(/mobile/)){
// toc and sidebar hiding
if($handle.length) {
$handle.show();
$handle[0].setState(-1);
}
if($toc.length) {
$toc[0].setState(-1);
}
}
}
var span = document.createElement('span'); jQuery(function(){
span.className = 'luxtools__hotkey red-168-text'; var resizeTimer;
span.textContent = hotkey; dw_page.makeToggle('#dokuwiki__aside h3.toggle','#dokuwiki__aside div.content');
linkEl.appendChild(span); tpl_dokuwiki_mobile();
linkEl.appendChild(document.createTextNode(' ' + label)); jQuery(window).on('resize',
function(){
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(tpl_dokuwiki_mobile,200);
}
);
// increase sidebar length to match content (desktop mode only)
var sidebar_height = jQuery('.desktop #dokuwiki__aside').height();
var pagetool_height = jQuery('.desktop #dokuwiki__pagetools ul:first').height();
// pagetools div has no height; ul has a height
var content_min = Math.max(sidebar_height || 0, pagetool_height || 0);
var content_height = jQuery('#dokuwiki__content div.page').height();
if(content_min && content_min > content_height) {
var $content = jQuery('#dokuwiki__content div.page');
$content.css('min-height', content_min);
} }
document.addEventListener('DOMContentLoaded', function () { // blur when clicked
var pagetools = document.getElementById('dokuwiki__pagetools'); jQuery('#dokuwiki__pagetools div.tools>ul>li>a').on('click', function(){
if (!pagetools) return; this.blur();
var links = pagetools.querySelectorAll('a');
for (var i = 0; i < links.length; i++) {
var hotkey = extractHotkey(links[i]);
if (!hotkey) continue;
prependHotkey(links[i], hotkey);
}
}); });
})(); });

97
style.ini Normal file → Executable file
View File

@@ -1,4 +1,4 @@
; Please see https://www.php.net/manual/en/function.parse-ini-file.php ; Please see http://php.net/manual/en/function.parse-ini-file.php
; for limitations of the ini format used here ; for limitations of the ini format used here
; To extend this file or make changes to it, it is recommended to create ; To extend this file or make changes to it, it is recommended to create
@@ -16,37 +16,29 @@
[stylesheets] [stylesheets]
css/basic.css = screen css/basic.less = screen
css/_imgdetail.css = screen
css/_media_popup.css = screen
css/_media_fullscreen.css = screen
css/_fileuploader.css = screen
css/_tabs.css = screen
css/_links.css = screen
css/_toc.css = screen
css/_footnotes.css = screen
css/_search.less = screen
css/_recent.css = screen
css/_diff.css = screen
css/_edit.css = screen
css/_modal.css = screen
css/_forms.css = screen
css/_admin.less = screen
css/structure.less = screen
css/design.less = screen
css/usertools.less = screen
css/pagetools.less = screen
css/content.less = screen
; load styles from the default 'dokuwiki' template css/mobile.less = all
; some of these have been renamed from *.css to *.less
; but .css still loads the same file and is backwards compatible
../dokuwiki/css/_imgdetail.css = screen
../dokuwiki/css/_media_popup.css = screen
../dokuwiki/css/_media_fullscreen.css = screen
../dokuwiki/css/_fileuploader.css = screen
../dokuwiki/css/_tabs.css = screen
../dokuwiki/css/_links.css = screen
../dokuwiki/css/_toc.css = screen
../dokuwiki/css/_footnotes.css = screen
../dokuwiki/css/_search.less = screen
../dokuwiki/css/_recent.css = screen
../dokuwiki/css/_diff.css = screen
../dokuwiki/css/_edit.css = screen
../dokuwiki/css/_modal.css = screen
../dokuwiki/css/_forms.css = screen
../dokuwiki/css/_admin.less = screen
; load the rest of the styles
css/structure.css = screen
css/design.css = screen
css/content.css = screen
css/includes.css = screen
; TurboVision / TuiCSS integration overrides (keep last)
css/tuivision.css = screen
css/mobile.css = all
css/print.css = print css/print.css = print
@@ -62,33 +54,40 @@ css/print.css = print
;------ guaranteed dokuwiki color placeholders that every plugin can use ;------ guaranteed dokuwiki color placeholders that every plugin can use
; main text and background colors ; main text and background colors
; TurboVision-style dark defaults __text__ = "#333" ; @ini_text
__text__ = "#ffffff" ; @ini_text __background__ = "#fff" ; @ini_background
__background__ = "#000000" ; @ini_background
; alternative text and background colors ; alternative text and background colors
__text_alt__ = "#c0c0c0" ; @ini_text_alt __text_alt__ = "#999" ; @ini_text_alt
__background_alt__ = "#0000a8" ; @ini_background_alt __background_alt__ = "#eee" ; @ini_background_alt
; neutral text and background colors ; neutral text and background colors
__text_neu__ = "#ffffff" ; @ini_text_neu __text_neu__ = "#666" ; @ini_text_neu
__background_neu__ = "#0000a8" ; @ini_background_neu __background_neu__ = "#ddd" ; @ini_background_neu
; border color ; border color
__border__ = "#ffffff" ; @ini_border __border__ = "#ccc" ; @ini_border
; highlighted text (e.g. search snippets) ; highlighted text (e.g. search snippets)
__highlight__ = "#ffff00" ; @ini_highlight __highlight__ = "#ff9" ; @ini_highlight
; link color ; default link color
__link__ = "#00ffff" ; @ini_link __link__ = "#2b73b7" ; @ini_link
__luxtools_locationlink__ = "#b57d35" ; @ini_luxtools_locationlink
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
; these are used for other links __background_site__ = "#fbfaf9" ; @ini_background_site
__existing__ = "#00ff00" ; @ini_existing
__missing__ = "#ff5555" ; @ini_missing
; widths ; these are used for wiki links
__site_width__ = "100%" ; @ini_site_width __existing__ = "#080" ; @ini_existing
__missing__ = "#d30" ; @ini_missing
; site and sidebar widths
__site_width__ = "75em" ; @ini_site_width
__sidebar_width__ = "16em" ; @ini_sidebar_width __sidebar_width__ = "16em" ; @ini_sidebar_width
; cut off points for mobile devices
__tablet_width__ = "800px" ; @ini_tablet_width
__phone_width__ = "480px" ; @ini_phone_width
__theme_color__ = "#008800" ; @_ini_theme_color: theme_color of the web app
; color of the web app (used by the core, not by the template)
__theme_color__ = "#0000a8" ; @ini_theme_color

14
template.info.txt Normal file → Executable file
View File

@@ -1,7 +1,7 @@
base starter base dokuwiki
author Anika Henke author luxick
email anika@selfthinker.org email git@luxick.de
date 2024-01-21 date 2026-01-30
name Starter Template name luxtools DokuWiki Template
desc The template that gets you started desc Template specifically designed to be compatible with the luxtools suite of DokuWiki plugins.
url https://www.dokuwiki.org/template:starter url https://git.luxick.de/luxick/luxtools-template

34
tpl_footer.php Executable file
View File

@@ -0,0 +1,34 @@
<?php
/**
* Template footer, included in the main and detail files
*/
// must be run from within DokuWiki
if (!defined('DOKU_INC')) die();
?>
<!-- ********** FOOTER ********** -->
<footer id="dokuwiki__footer"><div class="pad">
<?php tpl_license(''); // license text ?>
<div class="buttons">
<?php
tpl_license('button', true, false, false); // license button, no wrapper
$target = ($conf['target']['extern']) ? 'target="' . $conf['target']['extern'] . '"' : '';
?>
<a href="https://www.dokuwiki.org/donate" title="Donate" <?php echo $target?>><img
src="<?php echo tpl_basedir(); ?>images/button-donate.gif" width="80" height="15" alt="Donate" /></a>
<a href="https://php.net" title="Powered by PHP" <?php echo $target?>><img
src="<?php echo tpl_basedir(); ?>images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a>
<a href="//validator.w3.org/check/referer" title="Valid HTML5" <?php echo $target?>><img
src="<?php echo tpl_basedir(); ?>images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a>
<a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" <?php echo $target?>><img
src="<?php echo tpl_basedir(); ?>images/button-css.png" width="80" height="15" alt="Valid CSS" /></a>
<a href="https://dokuwiki.org/" title="Driven by DokuWiki" <?php echo $target?>><img
src="<?php echo tpl_basedir(); ?>images/button-dw.png" width="80" height="15"
alt="Driven by DokuWiki" /></a>
</div>
<?php tpl_includeFile('footer.html'); ?>
</div></footer><!-- /footer -->

View File

@@ -1,47 +0,0 @@
<?php
/**
* Template Functions
*
* This file provides template specific custom functions that are
* not provided by the DokuWiki core.
* It is common practice to start each function with an underscore
* to make sure it won't interfere with future core functions.
*/
// must be run from within DokuWiki
if (!defined('DOKU_INC')) die();
function _tpl_usertools() {
/* the optional second parameter of tpl_action() switches between a link and a button,
e.g. a button inside a <li> would be: tpl_action('edit', 0, 'li') */
tpl_toolsevent('usertools', array(
'admin' => tpl_action('admin', 1, 'li', 1),
'profile' => tpl_action('profile', 1, 'li', 1),
'register' => tpl_action('register', 1, 'li', 1),
'login' => tpl_action('login', 1, 'li', 1),
));
}
function _tpl_sitetools() {
tpl_toolsevent('sitetools', array(
'recent' => tpl_action('recent', 1, 'li', 1),
'media' => tpl_action('media', 1, 'li', 1),
'index' => tpl_action('index', 1, 'li', 1),
));
}
function _tpl_pagetools() {
tpl_toolsevent('pagetools', array(
'edit' => tpl_action('edit', 1, 'li', 1),
'revisions' => tpl_action('revisions', 1, 'li', 1),
'backlink' => tpl_action('backlink', 1, 'li', 1),
'subscribe' => tpl_action('subscribe', 1, 'li', 1),
'revert' => tpl_action('revert', 1, 'li', 1),
'top' => tpl_action('top', 1, 'li', 1),
));
}
function _tpl_detailtools() {
echo tpl_action('mediaManager', 1, 'li', 1);
echo tpl_action('img_backto', 1, 'li', 1);
}

88
tpl_header.php Executable file
View File

@@ -0,0 +1,88 @@
<?php
/**
* Template header, included in the main and detail files
*/
// must be run from within DokuWiki
if (!defined('DOKU_INC')) die();
?>
<!-- ********** HEADER ********** -->
<header id="dokuwiki__header"><div class="pad group">
<?php tpl_includeFile('header.html') ?>
<div class="headings group">
<ul class="a11y skip">
<li><a href="#dokuwiki__content"><?php echo $lang['skip_to_content']; ?></a></li>
</ul>
<h1 class="logo"><?php
// get logo either out of the template images folder or data/media folder
$logoSize = [];
$logo = tpl_getMediaFile([
':wiki:logo.svg', ':logo.svg',
':wiki:logo.png', ':logo.png',
'images/logo.svg', 'images/logo.png'
], false, $logoSize);
// display logo and wiki title in a link to the home page
tpl_link(
wl(),
'<img src="' . $logo . '" ' . ($logoSize ? $logoSize[3] : '') . ' alt="" />' .
'<span>' . $conf['title'] . '</span>',
'accesskey="h" title="' . tpl_getLang('home') . ' [h]"'
);
?></h1>
<?php if ($conf['tagline']) : ?>
<p class="claim"><?php echo $conf['tagline']; ?></p>
<?php endif ?>
</div>
<div class="tools group">
<!-- USER TOOLS -->
<?php if ($conf['useacl']) : ?>
<div id="dokuwiki__usertools">
<h3 class="a11y"><?php echo $lang['user_tools']; ?></h3>
<ul>
<?php
if (!empty($_SERVER['REMOTE_USER'])) {
echo '<li class="user">';
tpl_userinfo(); /* 'Logged in as ...' */
echo '</li>';
}
echo (new \dokuwiki\Menu\UserMenu())->getListItems('action ');
?>
</ul>
</div>
<?php endif ?>
<!-- SITE TOOLS -->
<div id="dokuwiki__sitetools">
<h3 class="a11y"><?php echo $lang['site_tools']; ?></h3>
<?php tpl_searchform(); ?>
<div class="mobileTools">
<?php echo (new \dokuwiki\Menu\MobileMenu())->getDropdown($lang['tools']); ?>
</div>
<ul>
<?php echo (new \dokuwiki\Menu\SiteMenu())->getListItems('action ', false); ?>
</ul>
</div>
</div>
<!-- BREADCRUMBS -->
<?php if ($conf['breadcrumbs'] || $conf['youarehere']) : ?>
<div class="breadcrumbs">
<?php if ($conf['youarehere']) : ?>
<div class="youarehere"><?php tpl_youarehere() ?></div>
<?php endif ?>
<?php if ($conf['breadcrumbs']) : ?>
<div class="trace"><?php tpl_breadcrumbs() ?></div>
<?php endif ?>
</div>
<?php endif ?>
<hr class="a11y" />
</div></header><!-- /header -->