diff --git a/COPYING b/COPYING deleted file mode 100644 index d159169..0000000 --- a/COPYING +++ /dev/null @@ -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. - - - Copyright (C) - - 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. - - , 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. diff --git a/README b/README deleted file mode 100644 index 9fb7949..0000000 --- a/README +++ /dev/null @@ -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. \ No newline at end of file diff --git a/conf/default.php b/conf/default.php deleted file mode 100644 index 3bbada1..0000000 --- a/conf/default.php +++ /dev/null @@ -1,8 +0,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; +} diff --git a/css/_tabs.css b/css/_tabs.css new file mode 100755 index 0000000..507f49e --- /dev/null +++ b/css/_tabs.css @@ -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; +} diff --git a/css/_toc.css b/css/_toc.css new file mode 100755 index 0000000..469e927 --- /dev/null +++ b/css/_toc.css @@ -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); +} diff --git a/css/basic.css b/css/basic.less old mode 100644 new mode 100755 similarity index 56% rename from css/basic.css rename to css/basic.less index 21f1e0b..4644c92 --- a/css/basic.css +++ b/css/basic.less @@ -8,27 +8,19 @@ * @author Anika Henke */ -@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 { overflow-x: auto; overflow-y: scroll; } html, body { - background-color: __background__; - color: __text__; + color: @ini_text; + background: @ini_background_site url(images/page-gradient.png) top left repeat-x; margin: 0; padding: 0; } 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 */ -webkit-text-size-adjust: 100%; } @@ -36,17 +28,21 @@ body { /*____________ headers ____________*/ +caption, +figcaption, +summary, +legend { + padding: 0; + margin: 0 0 .35em; + line-height: 1.2; +} h1, h2, h3, h4, h5, h6 { - font-family: "Perfect DOS VGA 437", Constantia, Utopia, Lucidabright, Lucida, Georgia, "Nimbus Roman No9 L", serif; font-weight: bold; - color: __text_neu__; - text-align: left; - background-color: inherit; padding: 0; line-height: 1.2; clear: left; /* ideally 'both', but problems with toc */ @@ -61,7 +57,7 @@ h6 { } h1 { - font-size: 2.25em; + font-size: 2em; margin: 0 0 0.444em; } h2 { @@ -86,17 +82,6 @@ h6 { } /* 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 ____________*/ @@ -114,10 +99,11 @@ fieldset, address { margin: 0 0 1.4em 0; /* bottom margin = line-height */ padding: 0; - text-align: left; } -div { +div, +video, +audio { margin: 0; padding: 0; } @@ -143,7 +129,6 @@ dd { [dir=rtl] dd { margin: 0 1.5em 0 0; } - dt { font-weight: bold; margin: 0; @@ -163,24 +148,12 @@ li li { font-size: 100%; } -ul { - list-style: disc outside; -} -ol { - list-style: decimal outside; -} -ol ol { - list-style-type: lower-alpha; -} -ol ol ol { - list-style-type: upper-roman; -} -ol ol ol ol { - list-style-type: upper-alpha; -} -ol ol ol ol ol { - list-style-type: lower-roman; -} +ul { list-style: square outside; } +ol { list-style: decimal outside; } +ol ol { list-style-type: lower-alpha; } +ol ol ol { list-style-type: upper-roman; } +ol ol ol ol { list-style-type: upper-alpha; } +ol ol ol ol ol { list-style-type: lower-roman; } /*____________ tables ____________*/ @@ -189,7 +162,7 @@ table { border-collapse: collapse; empty-cells: show; border-spacing: 0; - border: 1px solid __border__; + border: 1px solid @ini_border; } caption { @@ -205,12 +178,11 @@ td { padding: .3em .5em; margin: 0; vertical-align: top; - border: 1px solid __border__; + border: 1px solid @ini_border; } th { font-weight: bold; - background-color: __background_alt__; - color: inherit; + background-color: @ini_background_alt; text-align: left; } [dir=rtl] th { @@ -221,11 +193,12 @@ th { /*____________ links ____________*/ a { + outline: none; } a:link, a:visited { text-decoration: none; - color: __link__; + color: @ini_link; } a:link:hover, a:visited:hover, @@ -235,29 +208,22 @@ a:link:active, a:visited:active { text-decoration: underline; } -a:link:focus, -a:visited:focus { - outline: 1px dotted; -} -a:link:active, -a:visited:active { - color: #c00; -} /*____________ misc ____________*/ -img, -svg { +img { border-width: 0; vertical-align: middle; color: #666; background-color: transparent; font-style: italic; + object-fit: cover; +} +video { + height: auto; } - img, -svg, object, embed, iframe, @@ -265,41 +231,28 @@ video, audio { max-width: 100%; } - -img, -svg, -video { - height: auto; -} - -iframe { - border-width: 0; - background-color: inherit; -} - -button img, -button svg { +button img { max-width: none; } +table img { + max-width: 50vw; +} hr { - border-style: solid; - border-width: 1px 0 0; - text-align: center; + border-top: solid @ini_border; + border-bottom: solid @ini_background; + border-width: 1px 0; height: 0; - width: 100%; + text-align: center; clear: both; } acronym, abbr { - font-style: normal; -} -acronym[title], -abbr[title] { cursor: help; border-bottom: 1px dotted; text-decoration: none; + font-style: normal; } em acronym, em abbr { @@ -307,7 +260,7 @@ em abbr { } mark { - background: __highlight__; + background-color: @ini_highlight; 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; /* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */ font-size: 1em; - background-color: __background_alt__; - color: __text__; direction: ltr; text-align: left; + background-color: @ini_background_site; + color: @ini_text; + box-shadow: inset 0 0 .3em @ini_border; + border-radius: 2px; } pre { - border: 1px solid __border__; - padding: 0 .2em; overflow: auto; word-wrap: normal; + border: 1px solid @ini_border; + border-radius: 2px; + box-shadow: inset 0 0 .5em @ini_border; + padding: .7em 1em; } blockquote { padding: 0 .5em; - border: solid __border__; + border: solid @ini_border; border-width: 0 0 0 .25em; } [dir=rtl] blockquote { @@ -360,29 +317,30 @@ small { } wbr { - display: inline-block; + display: inline-block; /* for IE 11 */ } /*____________ forms ____________*/ +/* for all of the form styles, style.ini colours are not used on purpose (except for fieldset border) */ + form { display: inline; margin: 0; padding: 0; } - fieldset { padding: .7em 1em 0; padding: .7rem 1rem; /* for those browsers understanding :last-child */ - border: 1px solid #999; + border: 1px solid @ini_text_alt; } fieldset > :last-child { margin-bottom: 0; } legend { + margin: 0; padding: 0 .1em; } - label { vertical-align: middle; cursor: pointer; @@ -399,65 +357,13 @@ output, meter, progress { font: inherit; - color: inherit; - /* background-color destroys button look */ + font-weight: normal; + color: #333; + background-color: #fff; line-height: normal; margin: 0; vertical-align: middle; - -moz-box-sizing: content-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; + box-sizing: border-box; } select { @@ -471,3 +377,95 @@ option { font-style: 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; +} diff --git a/css/content.css b/css/content.css deleted file mode 100644 index edd8fab..0000000 --- a/css/content.css +++ /dev/null @@ -1,169 +0,0 @@ -/** - * This file provides the main design styles for the page content. - * - * @author Anika Henke - * @author Andreas Gohr - */ - - -/*____________ 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 */ -.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; -} diff --git a/css/content.less b/css/content.less new file mode 100755 index 0000000..9b26cce --- /dev/null +++ b/css/content.less @@ -0,0 +1,404 @@ +/** + * This file provides the main design styles for the page content. + * + * @author Anika Henke + * @author Andreas Gohr + * @author Clarence Lee + */ + +/*____________ 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 */ +.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; + } +} diff --git a/css/design.css b/css/design.css deleted file mode 100644 index 1286370..0000000 --- a/css/design.css +++ /dev/null @@ -1,274 +0,0 @@ -/** - * This file provides the main design styles for the - * bits that surround the content. - * - * @author Anika Henke - * @author Andreas Gohr - */ - - -/* 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; -} diff --git a/css/design.less b/css/design.less new file mode 100755 index 0000000..e295327 --- /dev/null +++ b/css/design.less @@ -0,0 +1,364 @@ +/** + * This file provides the main design styles for the + * bits that surround the content. + * + * @author Anika Henke + * @author Andreas Gohr + * @author Clarence Lee + */ + +.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; +} diff --git a/css/includes.css b/css/includes.css deleted file mode 100644 index bc18996..0000000 --- a/css/includes.css +++ /dev/null @@ -1,4 +0,0 @@ -/** - * This file provides styles for included seperate html files - * (added through "include hooks"). - */ diff --git a/css/mobile.css b/css/mobile.css deleted file mode 100644 index 3a88e52..0000000 --- a/css/mobile.css +++ /dev/null @@ -1,78 +0,0 @@ -/** - * This file provides style changes for small screens. - * - * @author Anika Henke - */ - -@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 */ \ No newline at end of file diff --git a/css/mobile.less b/css/mobile.less new file mode 100755 index 0000000..a52c723 --- /dev/null +++ b/css/mobile.less @@ -0,0 +1,332 @@ +/** + * This file provides styles for mobile devices + * and smaller screens (up to 480px and 768px width). + * + * @author Anika Henke + */ + +/* 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 */ diff --git a/css/pagetools.less b/css/pagetools.less new file mode 100755 index 0000000..5473594 --- /dev/null +++ b/css/pagetools.less @@ -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 + * @author Andreas Gohr + */ + +#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; + } + } +} diff --git a/css/print.css b/css/print.css old mode 100644 new mode 100755 index a7f7286..dd5d71b --- a/css/print.css +++ b/css/print.css @@ -11,13 +11,15 @@ body { } /* hide certain sections */ +.a11y, audio, video, #dokuwiki__header .tools, #dokuwiki__aside, .dokuwiki .breadcrumbs, -.dokuwiki .toc, +.dokuwiki .pageId, #dw__toc, +h3.toggle, #dokuwiki__pagetools, #dokuwiki__footer { display: none; @@ -32,7 +34,6 @@ caption, legend { clear: both; } - ul { list-style: disc outside; } @@ -52,15 +53,12 @@ ol ol ol ol ol { list-style-type: lower-roman; } -/* undo icons */ a:link, a:visited { text-decoration: none; border-bottom: 1pt dotted; color: #333; background-color: inherit; - background-image: none; - padding: 0; } /* display href after link */ @@ -74,15 +72,19 @@ a.mail:after { /* code blocks */ pre { font-family: monospace; + white-space: pre-wrap; } dl.code dt, dl.file dt { font-weight: bold; } +mark { + font-weight: bold; +} + /* images */ -img, -svg { +img { border-width: 0; vertical-align: middle; } @@ -90,19 +92,15 @@ img.media { margin: .2em 0; } img.medialeft { - margin: .2em 1.5em .2em 0; + margin: .2em 1em .2em 0; } img.mediaright { - margin: .2em 0 .2em 1.5em; + margin: .2em 0 .2em 1em; } img.mediacenter { margin: .2em auto; } -mark { - font-weight: bold; -} - blockquote { padding: 0 10pt; margin: 0; @@ -114,6 +112,9 @@ blockquote { } /* tables */ +.dokuwiki div.table { + margin-bottom: 1.4em; +} table { border-collapse: collapse; empty-cells: show; @@ -126,14 +127,13 @@ td { margin: 0; vertical-align: top; border: 1pt solid #666; - text-align: left; -} -[dir=rtl] th, -[dir=rtl] td { - text-align: right; } th { font-weight: bold; + text-align: left; +} +[dir=rtl] th { + text-align: right; } @@ -142,14 +142,40 @@ th { #dokuwiki__header { border-bottom: 2pt solid #ccc; } -#dokuwiki__header h1 { +#dokuwiki__header .logo { font-size: 1.5em; + font-weight: bold; } -#dokuwiki__header h1 a { +#dokuwiki__header .logo a { 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 { clear: both; - border-top: 1pt solid #000; + border-top: 1pt dotted #999; 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; +} diff --git a/css/structure.css b/css/structure.css deleted file mode 100644 index a01cea5..0000000 --- a/css/structure.css +++ /dev/null @@ -1,61 +0,0 @@ -/** - * This file provides styles for the general layout structure. - * - * @author Anika Henke - */ - -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; -} - diff --git a/css/structure.less b/css/structure.less new file mode 100755 index 0000000..3ea2f83 --- /dev/null +++ b/css/structure.less @@ -0,0 +1,89 @@ +/** + * This file provides styles for the general layout structure. + * + * @author Anika Henke + */ +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; +} diff --git a/css/tuivision.css b/css/tuivision.css deleted file mode 100644 index 8b9d2b3..0000000 --- a/css/tuivision.css +++ /dev/null @@ -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; -} diff --git a/css/usertools.less b/css/usertools.less new file mode 100755 index 0000000..efdf16c --- /dev/null +++ b/css/usertools.less @@ -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; + } + } +} diff --git a/detail.php b/detail.php old mode 100644 new mode 100755 index aa94b9b..9eaaad3 --- a/detail.php +++ b/detail.php @@ -1,4 +1,5 @@ - + - + - <?php echo hsc(tpl_img_getTag('IPTC.Headline',$IMG))?> + <?php echo hsc(tpl_img_getTag('IPTC.Headline', $IMG))?> [<?php echo strip_tags($conf['title'])?>] - - + -
- +
- - + -
- -

+
- + +
+ -
-

+ +
+ - - - -
+
+ + + + ' . $ERROR . ''; + else : ?> + +

+ + + +
+ +
$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 '
'.$lang[$tag[1]].':
'; - if ($tag[2] == 'date') { - echo dformat($value); - } else { - echo hsc($value); - } - echo '
'; - } + echo '
' . $lang['reference'] . ':
'; + $media_usage = ft_mediause($IMG, true); + if ($media_usage !== []) { + foreach ($media_usage as $path) { + echo '
' . html_wikilink($path) . '
'; } + } else { + echo '
' . $lang['nothingfound'] . '
'; + } ?> -
+
+

+
+ -
-
+ + + - +
+ */ ?> - -
+
+ +
+ + + + + +
+ + + diff --git a/fonts/Perfect DOS VGA 437 Win.ttf b/fonts/Perfect DOS VGA 437 Win.ttf deleted file mode 100644 index d03b1c5..0000000 Binary files a/fonts/Perfect DOS VGA 437 Win.ttf and /dev/null differ diff --git a/images/apple-touch-icon.png b/images/apple-touch-icon.png old mode 100644 new mode 100755 index 45fa4e7..87c99a9 Binary files a/images/apple-touch-icon.png and b/images/apple-touch-icon.png differ diff --git a/images/button-css.png b/images/button-css.png new file mode 100755 index 0000000..5c0f5a9 Binary files /dev/null and b/images/button-css.png differ diff --git a/images/button-donate.gif b/images/button-donate.gif new file mode 100755 index 0000000..bba284e Binary files /dev/null and b/images/button-donate.gif differ diff --git a/images/button-dw.png b/images/button-dw.png new file mode 100755 index 0000000..8d6aea8 Binary files /dev/null and b/images/button-dw.png differ diff --git a/images/button-html5.png b/images/button-html5.png new file mode 100755 index 0000000..f7b0688 Binary files /dev/null and b/images/button-html5.png differ diff --git a/images/button-php.gif b/images/button-php.gif new file mode 100755 index 0000000..19aefb0 Binary files /dev/null and b/images/button-php.gif differ diff --git a/images/button-rss.png b/images/button-rss.png new file mode 100755 index 0000000..aa6b7fc Binary files /dev/null and b/images/button-rss.png differ diff --git a/images/dokuwiki.svg b/images/dokuwiki.svg new file mode 100755 index 0000000..d5f2d7b --- /dev/null +++ b/images/dokuwiki.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/favicon.ico b/images/favicon.ico old mode 100644 new mode 100755 diff --git a/images/license.txt b/images/license.txt new file mode 100755 index 0000000..7d12604 --- /dev/null +++ b/images/license.txt @@ -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 diff --git a/images/logo.png b/images/logo.png new file mode 100755 index 0000000..a1f4995 Binary files /dev/null and b/images/logo.png differ diff --git a/images/page-background.svg b/images/page-background.svg new file mode 100755 index 0000000..086341d --- /dev/null +++ b/images/page-background.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/images/page-gradient.png b/images/page-gradient.png new file mode 100755 index 0000000..38c7419 Binary files /dev/null and b/images/page-gradient.png differ diff --git a/images/pagetools-build.php b/images/pagetools-build.php new file mode 100755 index 0000000..42e5bc0 --- /dev/null +++ b/images/pagetools-build.php @@ -0,0 +1,121 @@ + + * @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); +} + diff --git a/images/pagetools-sprite.png b/images/pagetools-sprite.png new file mode 100755 index 0000000..8e7f7f8 Binary files /dev/null and b/images/pagetools-sprite.png differ diff --git a/images/pagetools/00_default.png b/images/pagetools/00_default.png new file mode 100755 index 0000000..bcb2de0 Binary files /dev/null and b/images/pagetools/00_default.png differ diff --git a/images/pagetools/01_edit.png b/images/pagetools/01_edit.png new file mode 100755 index 0000000..99f3093 Binary files /dev/null and b/images/pagetools/01_edit.png differ diff --git a/images/pagetools/02_create.png b/images/pagetools/02_create.png new file mode 100755 index 0000000..57fa68d Binary files /dev/null and b/images/pagetools/02_create.png differ diff --git a/images/pagetools/03_draft.png b/images/pagetools/03_draft.png new file mode 100755 index 0000000..ce1c6cf Binary files /dev/null and b/images/pagetools/03_draft.png differ diff --git a/images/pagetools/04_show.png b/images/pagetools/04_show.png new file mode 100755 index 0000000..1ced340 Binary files /dev/null and b/images/pagetools/04_show.png differ diff --git a/images/pagetools/05_source.png b/images/pagetools/05_source.png new file mode 100755 index 0000000..dffe193 Binary files /dev/null and b/images/pagetools/05_source.png differ diff --git a/images/pagetools/06_revert.png b/images/pagetools/06_revert.png new file mode 100755 index 0000000..18c6444 Binary files /dev/null and b/images/pagetools/06_revert.png differ diff --git a/images/pagetools/07_revisions.png b/images/pagetools/07_revisions.png new file mode 100755 index 0000000..e599d01 Binary files /dev/null and b/images/pagetools/07_revisions.png differ diff --git a/images/pagetools/08_backlink.png b/images/pagetools/08_backlink.png new file mode 100755 index 0000000..aa34e27 Binary files /dev/null and b/images/pagetools/08_backlink.png differ diff --git a/images/pagetools/09_subscribe.png b/images/pagetools/09_subscribe.png new file mode 100755 index 0000000..36254ff Binary files /dev/null and b/images/pagetools/09_subscribe.png differ diff --git a/images/pagetools/10_top.png b/images/pagetools/10_top.png new file mode 100755 index 0000000..b930fd2 Binary files /dev/null and b/images/pagetools/10_top.png differ diff --git a/images/pagetools/11_mediamanager.png b/images/pagetools/11_mediamanager.png new file mode 100755 index 0000000..71b5a33 Binary files /dev/null and b/images/pagetools/11_mediamanager.png differ diff --git a/images/pagetools/12_back.png b/images/pagetools/12_back.png new file mode 100755 index 0000000..6d6093e Binary files /dev/null and b/images/pagetools/12_back.png differ diff --git a/images/pagetools/license.txt b/images/pagetools/license.txt new file mode 100755 index 0000000..299624c --- /dev/null +++ b/images/pagetools/license.txt @@ -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/ diff --git a/images/search.png b/images/search.png new file mode 100755 index 0000000..a07a721 Binary files /dev/null and b/images/search.png differ diff --git a/images/toc-arrows.png b/images/toc-arrows.png new file mode 100755 index 0000000..4a353e4 Binary files /dev/null and b/images/toc-arrows.png differ diff --git a/images/toc-bullet.png b/images/toc-bullet.png new file mode 100755 index 0000000..a2dfa47 Binary files /dev/null and b/images/toc-bullet.png differ diff --git a/images/usertools.png b/images/usertools.png new file mode 100755 index 0000000..6810227 Binary files /dev/null and b/images/usertools.png differ diff --git a/lang/de/lang.php b/lang/de/lang.php new file mode 100755 index 0000000..7e4b466 --- /dev/null +++ b/lang/de/lang.php @@ -0,0 +1,19 @@ + + * @author Jürgen Fredriksson + * @author Anika Henke + */ +$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'; diff --git a/lang/de/settings.php b/lang/de/settings.php deleted file mode 100644 index 6eb3c99..0000000 --- a/lang/de/settings.php +++ /dev/null @@ -1,7 +0,0 @@ - -*/ - -$lang['__existing__'] = '既存ページへのリンク色'; -$lang['__missing__'] = '存在しないページへのリンク色'; -$lang['__site_width__'] = 'サイトの全体幅(任意の長さの単位を使用可能: % px em 他)'; -$lang['__sidebar_width__'] = 'サイドバーがある場合、サイドバーの幅(任意の長さの単位を使用可能: % px em 他)'; diff --git a/lang/ja/settings.php b/lang/ja/settings.php deleted file mode 100644 index 89534db..0000000 --- a/lang/ja/settings.php +++ /dev/null @@ -1,8 +0,0 @@ - -*/ - -$lang['hideTools'] = 'ログインしていない場合、ツールを隠す'; diff --git a/lang/ja/style.txt b/lang/ja/style.txt deleted file mode 100644 index bf5801f..0000000 --- a/lang/ja/style.txt +++ /dev/null @@ -1,4 +0,0 @@ -ファビコンを変更したい場合、メディア管理を利用して ''wiki'' またはルート名前空間に ''favicon.ico'' をアップロードして下さい。 -自動的にその画像を使用します。 -アクセス制限のある wiki を使用している場合、アクセスコントロール管理で ''wiki''(またはルート)名前空間を全員読取可に設定して下さい。 -そうでないとログインしていないユーザーにファビコンが表示されません。 diff --git a/lang/ko/lang.php b/lang/ko/lang.php deleted file mode 100644 index 0929d3b..0000000 --- a/lang/ko/lang.php +++ /dev/null @@ -1,10 +0,0 @@ - - */ - -$lang['hideTools'] = 'Скрывать инструменты гостям?'; diff --git a/main.php b/main.php old mode 100644 new mode 100755 index 1c027d7..24020a0 --- a/main.php +++ b/main.php @@ -1,175 +1,88 @@ + * @author Clarence Lee * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) */ 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']) ); -$showSidebar = page_findnearest($conf['sidebar']) && ($ACT=='show'); -$sidebarElement = tpl_getConf('sidebarIsNav') ? 'nav' : 'aside'; +$hasSidebar = page_findnearest($conf['sidebar']); +$showSidebar = $hasSidebar && ($ACT == 'show'); ?> - + - + <?php tpl_pagetitle() ?> [<?php echo strip_tags($conf['title']) ?>] - - - - + - - - - - +
- - -
- + echo ($showSidebar) ? 'showSidebar' : ''; ?> "> -
    -
  • -
+ -
-
-
+
- -
- - - - < id="dokuwiki__aside" class="aside include group" aria-label=""> -
- + + +
-
- > +
+
-
- - +
+ -
+
+ +
+ + -
- - -
+ -
+
- - -
+
+ + +
+
+ + + - - - - - - -
-
- - - -
+
+
diff --git a/mediamanager.php b/mediamanager.php old mode 100644 new mode 100755 index b412da5..bd29ad3 --- a/mediamanager.php +++ b/mediamanager.php @@ -1,45 +1,44 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) */ + // must be run from within DokuWiki if (!defined('DOKU_INC')) die(); -@require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */ ?> - + - + <?php echo hsc($lang['mediaselect'])?> [<?php echo strip_tags($conf['title'])?>] - - + -
+
-
-
+
-
+
diff --git a/script.js b/script.js old mode 100644 new mode 100755 index bb0a34b..88dae90 --- a/script.js +++ b/script.js @@ -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 () { - 'use strict'; +function tpl_dokuwiki_mobile(){ - function extractHotkey(linkEl) { - if (!linkEl) return ''; + // the z-index in mobile.css is (mis-)used purely for detecting the screen mode here + var screen_mode = jQuery('#screen__mode').css('z-index') + ''; - // Prefer the human-facing "[X]" in the title when present. - // DokuWiki commonly uses titles like "Edit this page [E]". - var title = linkEl.getAttribute('title') || ''; - var match = title.match(/\[([^\]]+)\]\s*$/); - if (match && match[1]) return match[1].trim(); + // determine our device pattern + // TODO: consider moving into dokuwiki core + switch (screen_mode) { + case '1': + if (device_class.match(/tablet/)) return; + device_class = 'mobile tablet'; + break; + case '2': + if (device_class.match(/phone/)) return; + device_class = 'mobile phone'; + break; + default: + if (device_class == 'desktop') return; + device_class = 'desktop'; + } - var accessKey = linkEl.getAttribute('accesskey') || ''; - if (accessKey) return accessKey.trim().toUpperCase(); + jQuery('html').removeClass(device_classes).addClass(device_class); - return ''; - } + // handle some layout changes based on change in device + var $handle = jQuery('#dokuwiki__aside h3.toggle'); + var $toc = jQuery('#dw__toc h3'); - function prependHotkey(linkEl, hotkey) { - if (!hotkey) return; - if (linkEl.querySelector('.luxtools__hotkey')) return; + 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 label = (linkEl.textContent || '').trim(); - if (!label) return; +jQuery(function(){ + var resizeTimer; + dw_page.makeToggle('#dokuwiki__aside h3.toggle','#dokuwiki__aside div.content'); - linkEl.textContent = ''; + tpl_dokuwiki_mobile(); + jQuery(window).on('resize', + function(){ + if (resizeTimer) clearTimeout(resizeTimer); + resizeTimer = setTimeout(tpl_dokuwiki_mobile,200); + } + ); - var span = document.createElement('span'); - span.className = 'luxtools__hotkey red-168-text'; - span.textContent = hotkey; + // 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); - linkEl.appendChild(span); - linkEl.appendChild(document.createTextNode(' ' + label)); - } + 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 () { - var pagetools = document.getElementById('dokuwiki__pagetools'); - if (!pagetools) return; - - 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); - } - }); -})(); + // blur when clicked + jQuery('#dokuwiki__pagetools div.tools>ul>li>a').on('click', function(){ + this.blur(); + }); +}); diff --git a/style.ini b/style.ini old mode 100644 new mode 100755 index 0cbb64d..495e55e --- a/style.ini +++ b/style.ini @@ -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 ; To extend this file or make changes to it, it is recommended to create @@ -16,38 +16,30 @@ [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 -; 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/mobile.less = all +css/print.css = print ; This section is used to configure some placeholder values used in @@ -62,33 +54,40 @@ css/print.css = print ;------ guaranteed dokuwiki color placeholders that every plugin can use ; main text and background colors -; TurboVision-style dark defaults -__text__ = "#ffffff" ; @ini_text -__background__ = "#000000" ; @ini_background +__text__ = "#333" ; @ini_text +__background__ = "#fff" ; @ini_background ; alternative text and background colors -__text_alt__ = "#c0c0c0" ; @ini_text_alt -__background_alt__ = "#0000a8" ; @ini_background_alt +__text_alt__ = "#999" ; @ini_text_alt +__background_alt__ = "#eee" ; @ini_background_alt ; neutral text and background colors -__text_neu__ = "#ffffff" ; @ini_text_neu -__background_neu__ = "#0000a8" ; @ini_background_neu +__text_neu__ = "#666" ; @ini_text_neu +__background_neu__ = "#ddd" ; @ini_background_neu ; border color -__border__ = "#ffffff" ; @ini_border +__border__ = "#ccc" ; @ini_border ; highlighted text (e.g. search snippets) -__highlight__ = "#ffff00" ; @ini_highlight +__highlight__ = "#ff9" ; @ini_highlight -; link color -__link__ = "#00ffff" ; @ini_link +; default link color +__link__ = "#2b73b7" ; @ini_link + +__luxtools_locationlink__ = "#b57d35" ; @ini_luxtools_locationlink ;-------------------------------------------------------------------------- -; these are used for other links -__existing__ = "#00ff00" ; @ini_existing -__missing__ = "#ff5555" ; @ini_missing +__background_site__ = "#fbfaf9" ; @ini_background_site + +; these are used for wiki links +__existing__ = "#080" ; @ini_existing +__missing__ = "#d30" ; @ini_missing + +; site and sidebar widths +__site_width__ = "75em" ; @ini_site_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 -; widths -__site_width__ = "100%" ; @ini_site_width -__sidebar_width__ = "16em" ; @ini_sidebar_width -; color of the web app (used by the core, not by the template) -__theme_color__ = "#0000a8" ; @ini_theme_color diff --git a/template.info.txt b/template.info.txt old mode 100644 new mode 100755 index 83e368b..0cadb55 --- a/template.info.txt +++ b/template.info.txt @@ -1,7 +1,7 @@ -base starter -author Anika Henke -email anika@selfthinker.org -date 2024-01-21 -name Starter Template -desc The template that gets you started -url https://www.dokuwiki.org/template:starter +base dokuwiki +author luxick +email git@luxick.de +date 2026-01-30 +name luxtools DokuWiki Template +desc Template specifically designed to be compatible with the luxtools suite of DokuWiki plugins. +url https://git.luxick.de/luxick/luxtools-template diff --git a/tpl_footer.php b/tpl_footer.php new file mode 100755 index 0000000..b892ba8 --- /dev/null +++ b/tpl_footer.php @@ -0,0 +1,34 @@ + + + +
+ + +
+ + >Donate + >Powered by PHP + >Valid HTML5 + >Valid CSS + >Driven by DokuWiki +
+ + +
diff --git a/tpl_functions.php b/tpl_functions.php deleted file mode 100644 index 8031fe6..0000000 --- a/tpl_functions.php +++ /dev/null @@ -1,47 +0,0 @@ - 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); -} diff --git a/tpl_header.php b/tpl_header.php new file mode 100755 index 0000000..9eb6088 --- /dev/null +++ b/tpl_header.php @@ -0,0 +1,88 @@ + + + +
+ + + +
+
    +
  • +
+ +

' . + '' . $conf['title'] . '', + 'accesskey="h" title="' . tpl_getLang('home') . ' [h]"' + ); + ?>

+ +

+ +
+ +
+ + +
+

+
    + '; + tpl_userinfo(); /* 'Logged in as ...' */ + echo ''; + } + echo (new \dokuwiki\Menu\UserMenu())->getListItems('action '); + ?> +
+
+ + + +
+

+ +
+ getDropdown($lang['tools']); ?> +
+
    + getListItems('action ', false); ?> +
+
+ +
+ + + + + + +
+