ChangeSet ID: 1115352429467059200004773 CVSROOT: /cvsroot/wine Module name: wiki Changes by: dimi@sc8-pr-cvs1.sourceforge.net 2005/05/05 21:07:09
Added files: . : AUTHORS LICENSE README favicon.ico logo.png winehq : winehq.py winehq/css : common.css print.css projection.css screen.css winehq/img : PythonPowered.png alert.png angry.png attention.png biggrin.png blank.gif checkmark.png devil.png draft.png flag-da.png flag-de.png flag-en.png flag-es.png flag-fi.png flag-fr.png flag-it.png flag-ja.png flag-ko.png flag-nl.png flag-pt.png flag-sv.png flag-us.png flag-zh.png frown.png icon-error.png icon-info.png idea.png logout.png moin-attach.png moin-bottom.png moin-deleted.png moin-diff.png moin-edit.png moin-email.png moin-ftp.png moin-help.png moin-home.png moin-icon.png moin-info.png moin-inter.png moin-new.png moin-news.png moin-parent.png moin-print.png moin-raw.png moin-rss.png moin-search.png moin-show.png moin-subscribe.png moin-telnet.png moin-top.png moin-unsubscribe.png moin-up.png moin-updated.png moin-www.png moin-xml.png moin-xml2.png moinmoin.png ohwell.png prio1.png prio2.png prio3.png redface.png sad.png smile.png smile2.png smile3.png smile4.png star_off.png star_on.png thumbs-up.png tired.png tongue.png winehq_border_bottom_left.gif winehq_border_bottom_right.gif winehq_border_dot_left.gif winehq_border_dot_right.gif winehq_border_top_left.gif winehq_border_top_right.gif
Log message: Add the rest of the wiki code.
Old revision New revision Changes Path Added 1.1 +0 -0 wiki/AUTHORS Added 1.1 +0 -0 wiki/LICENSE Added 1.1 +0 -0 wiki/README Added 1.1 +0 -0 wiki/favicon.ico Added 1.1 +0 -0 wiki/logo.png Added 1.1 +0 -0 wiki/winehq/winehq.py Added 1.1 +0 -0 wiki/winehq/css/common.css Added 1.1 +0 -0 wiki/winehq/css/print.css Added 1.1 +0 -0 wiki/winehq/css/projection.css Added 1.1 +0 -0 wiki/winehq/css/screen.css Added 1.1 +0 -0 wiki/winehq/img/PythonPowered.png Added 1.1 +0 -0 wiki/winehq/img/alert.png Added 1.1 +0 -0 wiki/winehq/img/angry.png Added 1.1 +0 -0 wiki/winehq/img/attention.png Added 1.1 +0 -0 wiki/winehq/img/biggrin.png Added 1.1 +0 -0 wiki/winehq/img/blank.gif Added 1.1 +0 -0 wiki/winehq/img/checkmark.png Added 1.1 +0 -0 wiki/winehq/img/devil.png Added 1.1 +0 -0 wiki/winehq/img/draft.png Added 1.1 +0 -0 wiki/winehq/img/flag-da.png Added 1.1 +0 -0 wiki/winehq/img/flag-de.png Added 1.1 +0 -0 wiki/winehq/img/flag-en.png Added 1.1 +0 -0 wiki/winehq/img/flag-es.png Added 1.1 +0 -0 wiki/winehq/img/flag-fi.png Added 1.1 +0 -0 wiki/winehq/img/flag-fr.png Added 1.1 +0 -0 wiki/winehq/img/flag-it.png Added 1.1 +0 -0 wiki/winehq/img/flag-ja.png Added 1.1 +0 -0 wiki/winehq/img/flag-ko.png Added 1.1 +0 -0 wiki/winehq/img/flag-nl.png Added 1.1 +0 -0 wiki/winehq/img/flag-pt.png Added 1.1 +0 -0 wiki/winehq/img/flag-sv.png Added 1.1 +0 -0 wiki/winehq/img/flag-us.png Added 1.1 +0 -0 wiki/winehq/img/flag-zh.png Added 1.1 +0 -0 wiki/winehq/img/frown.png Added 1.1 +0 -0 wiki/winehq/img/icon-error.png Added 1.1 +0 -0 wiki/winehq/img/icon-info.png Added 1.1 +0 -0 wiki/winehq/img/idea.png Added 1.1 +0 -0 wiki/winehq/img/logout.png Added 1.1 +0 -0 wiki/winehq/img/moin-attach.png Added 1.1 +0 -0 wiki/winehq/img/moin-bottom.png Added 1.1 +0 -0 wiki/winehq/img/moin-deleted.png Added 1.1 +0 -0 wiki/winehq/img/moin-diff.png Added 1.1 +0 -0 wiki/winehq/img/moin-edit.png Added 1.1 +0 -0 wiki/winehq/img/moin-email.png Added 1.1 +0 -0 wiki/winehq/img/moin-ftp.png Added 1.1 +0 -0 wiki/winehq/img/moin-help.png Added 1.1 +0 -0 wiki/winehq/img/moin-home.png Added 1.1 +0 -0 wiki/winehq/img/moin-icon.png Added 1.1 +0 -0 wiki/winehq/img/moin-info.png Added 1.1 +0 -0 wiki/winehq/img/moin-inter.png Added 1.1 +0 -0 wiki/winehq/img/moin-new.png Added 1.1 +0 -0 wiki/winehq/img/moin-news.png Added 1.1 +0 -0 wiki/winehq/img/moin-parent.png Added 1.1 +0 -0 wiki/winehq/img/moin-print.png Added 1.1 +0 -0 wiki/winehq/img/moin-raw.png Added 1.1 +0 -0 wiki/winehq/img/moin-rss.png Added 1.1 +0 -0 wiki/winehq/img/moin-search.png Added 1.1 +0 -0 wiki/winehq/img/moin-show.png Added 1.1 +0 -0 wiki/winehq/img/moin-subscribe.png Added 1.1 +0 -0 wiki/winehq/img/moin-telnet.png Added 1.1 +0 -0 wiki/winehq/img/moin-top.png Added 1.1 +0 -0 wiki/winehq/img/moin-unsubscribe.png Added 1.1 +0 -0 wiki/winehq/img/moin-up.png Added 1.1 +0 -0 wiki/winehq/img/moin-updated.png Added 1.1 +0 -0 wiki/winehq/img/moin-www.png Added 1.1 +0 -0 wiki/winehq/img/moin-xml.png Added 1.1 +0 -0 wiki/winehq/img/moin-xml2.png Added 1.1 +0 -0 wiki/winehq/img/moinmoin.png Added 1.1 +0 -0 wiki/winehq/img/ohwell.png Added 1.1 +0 -0 wiki/winehq/img/prio1.png Added 1.1 +0 -0 wiki/winehq/img/prio2.png Added 1.1 +0 -0 wiki/winehq/img/prio3.png Added 1.1 +0 -0 wiki/winehq/img/redface.png Added 1.1 +0 -0 wiki/winehq/img/sad.png Added 1.1 +0 -0 wiki/winehq/img/smile.png Added 1.1 +0 -0 wiki/winehq/img/smile2.png Added 1.1 +0 -0 wiki/winehq/img/smile3.png Added 1.1 +0 -0 wiki/winehq/img/smile4.png Added 1.1 +0 -0 wiki/winehq/img/star_off.png Added 1.1 +0 -0 wiki/winehq/img/star_on.png Added 1.1 +0 -0 wiki/winehq/img/thumbs-up.png Added 1.1 +0 -0 wiki/winehq/img/tired.png Added 1.1 +0 -0 wiki/winehq/img/tongue.png Added 1.1 +0 -0 wiki/winehq/img/winehq_border_bottom_left.gif Added 1.1 +0 -0 wiki/winehq/img/winehq_border_bottom_right.gif Added 1.1 +0 -0 wiki/winehq/img/winehq_border_dot_left.gif Added 1.1 +0 -0 wiki/winehq/img/winehq_border_dot_right.gif Added 1.1 +0 -0 wiki/winehq/img/winehq_border_top_left.gif Added 1.1 +0 -0 wiki/winehq/img/winehq_border_top_right.gif
Index: wiki/AUTHORS diff -u -p /dev/null wiki/AUTHORS:1.1 --- wiki/AUTHORS 6 May 2005 4: 7: 9 -0000 +++ /dev/null 6 May 2005 4: 7: 9 -0000 @@ -0,0 +1,2 @@ +Alina Silvestrovici alina@lattica.com +Dimitrie O. Paun dimi@lattica.com Index: wiki/LICENSE diff -u -p /dev/null wiki/LICENSE:1.1 --- wiki/LICENSE 6 May 2005 4: 7: 9 -0000 +++ /dev/null 6 May 2005 4: 7: 9 -0000 @@ -0,0 +1,341 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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 Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Index: wiki/README diff -u -p /dev/null wiki/README:1.1 --- wiki/README 6 May 2005 4: 7: 9 -0000 +++ /dev/null 6 May 2005 4: 7: 9 -0000 @@ -0,0 +1,18 @@ +INTRODUCTION +------------ + +This package gathers all the changes we had to make to the +standard MoinMoin distribution to build the Wine Wiki at: + http://wiki.winehq.org + +We are currently running MoinMoin 1.3.4 from: + http://moinmoin.wikiwikiweb.de + +FILES +----- + AUTHORS The list of contributors to the project + LICENSE This package is GPL + logo.png The logo (Wine Wiki) for the site + favicon.ico Same as on WineHQ.org + wikiconfig.py The main configuration file for the wiki + winehq/* The default theme for the site Index: wiki/winehq/winehq.py diff -u -p /dev/null wiki/winehq/winehq.py:1.1 --- wiki/winehq/winehq.py 6 May 2005 4: 7: 9 -0000 +++ /dev/null 6 May 2005 4: 7: 9 -0000 @@ -0,0 +1,412 @@ +# -*- coding: iso-8859-1 -*- +""" + MoinMoin theme for WineHQ. +""" + +from MoinMoin import wikiutil +from MoinMoin.Page import Page +from MoinMoin.theme import ThemeBase + +class Theme(ThemeBase): + """ here are the functions generating the html responsible for + the look and feel of your wiki site + """ + + name = "winehq" + + def title(self, d): + """ Assemble the title + + @param d: parameter dictionary + @rtype: string + @return: title html + """ + _ = self.request.getText + if d['title_link']: + content = ('<a title="%(title)s" href="%(href)s">%(text)s</a>') % { + 'title': _('Click to do a full-text search for this title'), + 'href': d['title_link'], + 'text': wikiutil.escape(d['title_text']), + } + else: + content = wikiutil.escape(d['title_text']) + + args = {} + args['title'] = content + args['blank'] = self.img_url('blank.gif') + args['dot_left'] = self.img_url('winehq_border_dot_left.gif') + args['top_left'] = self.img_url('winehq_border_top_left.gif') + args['bottom_left'] = self.img_url('winehq_border_bottom_left.gif') + args['dot_right'] = self.img_url('winehq_border_dot_right.gif') + args['top_right'] = self.img_url('winehq_border_top_right.gif') + args['bottom_right'] = self.img_url('winehq_border_bottom_right.gif') + + html = ''' + <table width="100%%" border="0" cellpadding="0" cellspacing="0" id="pagetitle"> + <tr> + <td valign="top" align="left"><img src="%(top_left)s" width="6" height="9" alt=""></td> + <td rowspan="3" valign="middle" align="right"><img src="%(dot_left)s" width="12" height="3" alt=""></td> + <td width="100%%" rowspan="3" align="center"><h1> %(title)s</h1></td> + <td rowspan="3" valign="middle" align="right"><img src="%(dot_right)s" width="12" height="3" alt=""></td> + <td valign="top" align="left"><img src="%(top_right)s" width="6" height="9" alt=""></td> + </tr> + <tr> + <td><img src="%(blank)s" width="1" height="1" alt=""></td> + <td><img src="%(blank)s" width="1" height="1" alt=""></td> + </tr> + <tr> + <td valign="bottom" align="right"><img src="%(bottom_left)s" width="6" height="9" alt=""></td> + <td valign="bottom" align="right"><img src="%(bottom_right)s" width="6" height="9" alt=""></td> + </tr> + </table> +''' + html1 = '<div id="pagetitle"><h1>%(title)s</h1></div' + + return html % args + + def msg(self, d): + """ Assemble the msg display + + Display a message with a widget or simple strings with a clear message link. + + @param d: parameter dictionary + @rtype: unicode + @return: msg display html + """ + _ = self.request.getText + msg = d['msg'] + if not msg: + return u'' + + if isinstance(msg, (str, unicode)): + # Render simple strings with a close link + close = d['page'].link_to(self.request, + text=_('Clear message'), + querystr={'action': 'show'}) + html = u'<p>%s (<span class="buttons">%s</span>)</p>\n' % (msg, close) + else: + # msg is a widget + html = msg.render() + + return u'<div id="message">\n%s\n</div>\n' % html + + def searchform(self, d): + """ + assemble HTML code for the search forms + + @param d: parameter dictionary + @rtype: unicode + @return: search form html + """ + _ = self.request.getText + form = self.request.form + updates = { + 'search_label' : _('Search:'), + 'search_value': wikiutil.escape(form.get('value', [''])[0], 1), + 'search_full_label' : _('Text', formatted=False), + 'search_title_label' : _('Titles', formatted=False), + } + d.update(updates) + + html = u''' +<form id="searchform" method="get" action=""> +<div> +<input type="hidden" name="action" value="fullsearch"> +<input type="hidden" name="context" value="180"> +<label for="searchinput">%(search_label)s</label> +<input id="searchinput" type="text" name="value" value="%(search_value)s" size="15" + onfocus="searchFocus(this)" onblur="searchBlur(this)" + onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search"> +</div> +</form> +<script type="text/javascript"> +<!--// Initialize search form +var f = document.getElementById('searchform'); +f.getElementsByTagName('label')[0].style.display = 'none'; +var e = document.getElementById('searchinput'); +searchChange(e); +searchBlur(e); +//--> +</script> +''' + return html % d + + def editbar(self, d): + """ Assemble the page edit bar. + + Display on existing page. Replace iconbar, showtext, edit text, + refresh cache and available actions. + + @param d: parameter dictionary + @rtype: unicode + @return: iconbar html + """ + page = d['page'] + if not self.shouldShowEditbar(page): + return '' + + # Use cached editbar if possible. + cacheKey = 'editbar' + cached = self._cache.get(cacheKey) + if cached: + return cached + + # Make new edit bar + request = self.request + _ = self.request.getText + link = wikiutil.link_tag + quotedname = wikiutil.quoteWikinameURL(page.page_name) + links = [] + add = links.append + + # Parent page + parent = page.getParentPage() + if parent: + add(parent.link_to(request, _("Show Parent", formatted=False))) + + available = request.getAvailableActions(page) + + # Page actions + if page.isWritable() and request.user.may.write(page.page_name): + add(link(request, quotedname + '?action=edit', _('Edit'))) + else: + add(_('Immutable Page', formatted=False)) + + add(link(request, quotedname + '?action=diff', + _('Show Changes', formatted=False))) + add(link(request, quotedname + '?action=info', + _('Get Info', formatted=False))) + add(self.subscribeLink(page)) + + # 'SpellCheck': _('Check Spelling', formatted=False), # rename action! + # 'LikePages': _('Show Like Pages', formatted=False), + # 'LocalSiteMap': _('Show Local Site Map', formatted=False), + + add(link(request, quotedname + '?action=raw', + _('Show Raw Text', formatted=False))) + add(link(request, quotedname + '?action=print', + _('Show Print View', formatted=False))) + + if ('AttachFile' in available): + add(link(request, quotedname + '?action=AttachFile', + _('Attach File', formatted=False))) + if ('RenamePage' in available): + add(link(request, quotedname + '?action=RenamePage', + _('Rename Page', formatted=False))) + if ('DeletePage' in available): + add(link(request, quotedname + '?action=DeletePage', + _('Delete Page', formatted=False))) + if page.canUseCache(): + add(link(request, quotedname + '?action=refresh', + _('Delete Cache', formatted=False))) + + # Format + items = '\n'.join(['<li>%s</li>' % item for item in links if item != '']) + html = u'<ul id="editbar">\n%s\n</ul>\n' % items + + # cache for next call + self._cache[cacheKey] = html + return html + + def sidetitle(self, title): + _ = self.request.getText + + args = {} + args['title'] = title + args['blank'] = self.img_url('blank.gif') + args['dot_right'] = self.img_url('winehq_border_dot_right.gif') + args['top_right'] = self.img_url('winehq_border_top_right.gif') + args['bottom_right'] = self.img_url('winehq_border_bottom_right.gif') + + html = ''' + <table width="100%%" border="0" cellpadding="0" cellspacing="0" class="sidetitle"> + <tr> + <td width="100%%" rowspan="3" align="left"><h1> %(title)s</h1></td> + <td rowspan="3" valign="middle" align="right"><img src="%(dot_right)s" width="12" height="3" border="0" alt=""></td> + <td valign="top" align="left"><img src="%(top_right)s" width="6" height="9" border="0" alt=""></td> + </tr> + <tr> + <td><img src="%(blank)s" width="1" height="1" border="0" alt=""></td> + </tr> + <tr> + <td valign="bottom" align="right"><img src="%(bottom_right)s" width="6" height="9" border="0" alt=""></td> + </tr> + </table> +''' + html1 = ''' + <table width="100%%" border="0" cellpadding="0" cellspacing="0" class="sidetitle"> + <tr> + <td width="100%%" align="left"><h1> %(title)s</h1></td> + <td> + <table width="100%%" border="0" cellpadding="0" cellspacing="0" class="sidetitle"> + <tr> + <td><img src="%(top_right)s" width="6" height="9" border="0" alt=""></td> + </tr> + <tr> + <td><img src="%(blank)s" width="1" height="1" border="0" alt=""></td> + </tr> + <tr> + <td valign="bottom" align="right"><img src="%(bottom_right)s" width="6" height="9" border="0" alt=""></td> + </tr> + </table> + </td> + </tr> + </table> +''' + + html1 = ''' + <table width="100%%" border="0" cellpadding="0" cellspacing="0" class="sidetitle"> + <tr> + <td width="100%%" rowspan="1" align="left"><h1> %(title)s</h1></td> + <td rowspan="3" valign="middle" align="right"></td> + <td valign="top" align="left"></td> + </tr> + <tr> + <td></td> + </tr> + <tr> + <td valign="bottom" align="right"></td> + </tr> + </table> +''' + return html % args + + def wikipanel(self, d): + """ Create wiki panel """ + _ = self.request.getText + html = [ + u'<div class="sidepanel">', + self.sidetitle(_("Wiki Links")), + u' <div class="sidecontent">', + self.navibar(d), + u' </div>', + u'</div>', + ] + return u'\n'.join(html) + + def pagepanel(self, d): + """ Create page panel """ + _ = self.request.getText + if self.shouldShowEditbar(d['page']): + html = [ + u'<div class="sidepanel">', + self.sidetitle(_("Page Tools")), + u' <div class="sidecontent">', + self.editbar(d), + u' </div>', + u'</div>', + ] + return u'\n'.join(html) + return '' + + def userpanel(self, d): + """ Create user panel """ + request = self.request + _ = request.getText + + #trail = self.trail(d) + #if trail: + # trail = u'<h2>%s</h2>\n' % _("Trail") + trail + + html = [ + u'<div class="sidepanel">', + self.sidetitle(_("User Tools")), + u' <div class="sidecontent">', + self.username(d), + #trail, + u' <ul id="pagetrail">', + u' <li>%s</li>' % Page(request, 'WikiSandBox').link_to(request, 'Wiki Sand Box'), + u' <li>%s</li>' % Page(request, 'SyntaxReference').link_to(request, 'Syntax Reference'), + u' </ul>', + u' </div>', + u'</div>' + ] + return u'\n'.join(html) + + def header(self, d): + """ + Assemble page header + + @param d: parameter dictionary + @rtype: string + @return: page header html + """ + _ = self.request.getText + + html = [ + # Custom html above header + self.emit_custom_html(self.cfg.page_header1), + + # Header + u'<div id="header">', + self.logo(), + u'</div>', + + # Custom html below header (not recomended!) + self.emit_custom_html(self.cfg.page_header2), + + u'<table width="100%%" border="0" cellpadding="0" cellspacing="0" id="contentwell">', + u' <tr>', + u' <td id="sidewell">', + + # Sidebar + u'<div id="sidebar">', + self.wikipanel(d), + self.pagepanel(d), + self.userpanel(d), + self.searchform(d), + u'<div id="credits_div">', + self.credits(d), + u'</div>', + u'</div>', + + u' </td>', + u' <td id="pagewell">', + + # Page + u'<div id="pagebar">', + self.msg(d), + self.title(d), + u'<div id="pagecontent"%s>' % self.content_lang_attr(), + ] + return u'\n'.join(html) + + def footer(self, d, **keywords): + """ Assemble page footer + + @param d: parameter dictionary + @keyword ...:... + @rtype: string + @return: page footer html + """ + page = d['page'] + html = [ + # Page end + # Used to extend the page to the bottom of the sidebar + u'<div id="pagebottom"></div>', + self.pageinfo(page), + + u'</div> <!-- end pagecontent -->', + u'</div> <!-- end pagebar -->', + u' </tr>', + u'</table>', + + # Custom html above footer + self.emit_custom_html(self.cfg.page_footer1), + + # And bellow + self.emit_custom_html(self.cfg.page_footer2), + ] + return u'\n'.join(html) + + +def execute(request): + """ + Generate and return a theme object + + @param request: the request object + @rtype: MoinTheme + @return: Theme object + """ + return Theme(request) + Index: wiki/winehq/css/common.css diff -u -p /dev/null wiki/winehq/css/common.css:1.1 --- wiki/winehq/css/common.css 6 May 2005 4: 7: 9 -0000 +++ /dev/null 6 May 2005 4: 7: 9 -0000 @@ -0,0 +1,266 @@ +/* common.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +html { + background-color: white; + color: black; + font-family: Arial, Lucida Grande, sans-serif; + font-size: 1em; + line-height: 1.25em; +} + + +/* links */ + +a {color: maroon;} +a:hover {color: red;} +a.nonexistent, a.badinterwiki {color: #404040;} + + +/* Headings */ + +h1 { + color: black; + font-size: 180%; + font-weight: bold; + text-align: left; + background-color: white; +} + +h1 a +{ + color: white; + text-decoration: none; +} +h1 a:visited { + color: white; + text-decoration: none; +} +h2, h3, h4, h5, h6 +{ + margin: 0; + padding: 0.5em 0 0.3em 0; + color: black; + line-height: 1.2em; +} + +h2 {font-size: 150%;} +h3 {font-size: 130%;} +h4 {font-size: 120%;} +h5, h6 {font-size: 100%;} + +ul { + padding: 0px; + margin: 10px 0px 10px 30px; +} + +li p { + margin: .25em 0; +} + +li.gap { + margin-top: 0.5em; +} + +a, img, img.drawing { + border: 0; +} + +dt { + font-weight: bold; +} + +pre { + padding: 0.5em; + font-family: courier, monospace; + border: 1pt solid #c0c0c0; + background: #F0ECE6; + white-space: pre; + /* begin css 3 or browser specific rules - do not remove! + see: http://forums.techguy.org/archive/index.php/t-249849.html */ + white-space: pre-wrap; + word-wrap: break-word; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + /* end css 3 or browser specific rules */ +} + +table +{ + margin: 0.5em 0; + border-collapse: collapse; +} + +td +{ + padding: 0.25em; + border: 1px solid tan; +} + +td { + margin: 0; + padding: 0; +} + +/* standard rule ---- */ +hr { + height: 1px; + background-color: #c0c0c0; + border: none; +} + +/* custom rules ----- to ---------- */ +.hr1 {height: 2px;} +.hr2 {height: 3px;} +.hr3 {height: 4px;} +.hr4 {height: 5px;} +.hr5 {height: 6px;} +.hr6 {height: 7px;} + +/* Replacement for html 3 u tag */ +.u {text-decoration: underline;} + +.footnotes ul { + padding: 0 2em; + margin: 0 0 1em; +} + +.footnotes li { + list-style: none; +} + +.info { + font-size: 0.85em; + color: gray; +} + +#pageinfo { + margin-top: 2em; +} + +/* eye catchers */ +.warning +{ + color: red; +} + +.error +{ + color: red; +} + +strong.highlight +{ + background-color: #ffcc99; + padding: 1pt; +} + +#credits img { + vertical-align: middle; +} + +/* Recent changes */ + +.recentchanges p { + margin: 0.25em; +} + +.recentchanges td { + vertical-align: top; + border: none; + border-bottom: 1pt solid #F0ECE6; + background: #F7F6F2; +} + +.rcdaybreak td { + background: tan; + border: none; +} + +.rcdaybreak td a { + font-size: 0.88em; +} + +.rcicon1, .rcicon2 { + text-align: center; +} + +.rcpagelink { + width: 33%; +} + +.rctime { + font-size: 0.88em; + white-space: nowrap; +} + +.rceditor { + white-space: nowrap; + font-size: 0.88em; +} + +.rccomment { + width: 66%; + color: gray; + font-size: 0.88em; +} + +.rcrss { + float: right; +} + +.recentchanges[dir="rtl"] .rcrss { + float: left; +} + +/* User Preferences */ + +.userpref table, .userpref td { + border: none; +} + + +/* CSS for new code_area markup used by Colorizer and ParserBase */ + +div.codearea { /* the div makes the border */ + margin: 0.5em 0; + padding: 0; + border: 1pt solid #AEBDCC; + background-color: #F3F5F7; + color: black; +} + +div.codearea pre { /* the pre has no border and is inside the div */ + margin: 0; + padding: 10pt; + border: none; +} + +a.codenumbers { /* format of the line numbering link */ + margin: 0 10pt; + font-size: 0.85em; + color: gray; +} + +/* format of certain syntax spans */ +div.codearea pre span.LineNumber {color: gray;} +div.codearea pre span.ID {color: #000000;} +div.codearea pre span.Operator {color: #0000C0;} +div.codearea pre span.Char {color: #004080;} +div.codearea pre span.Comment {color: #008000;} +div.codearea pre span.Number {color: #0080C0;} +div.codearea pre span.String {color: #004080;} +div.codearea pre span.SPChar {color: #0000C0;} +div.codearea pre span.ResWord {color: #A00000;} +div.codearea pre span.ConsWord {color: #008080; font-weight: bold;} +div.codearea pre span.Error {color: #FF8080; border: solid 1.5pt #FF0000;} +div.codearea pre span.ResWord2 {color: #0080ff; font-weight: bold;} +div.codearea pre span.Special {color: #0000ff;} +div.codearea pre span.Preprc {color: #803999;} + + Index: wiki/winehq/css/print.css diff -u -p /dev/null wiki/winehq/css/print.css:1.1 --- wiki/winehq/css/print.css 6 May 2005 4: 7: 9 -0000 +++ /dev/null 6 May 2005 4: 7: 9 -0000 @@ -0,0 +1,70 @@ +/* print.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +html { + font-family: Times, serif; + font-size: 12pt; +} + + +#pagetitle img { + display: none; +} + +#pagetitle td { + border: none; +} + +body { + /* Give about 3.4cm in Mozilla/Firefox and about 2.2cm in Safari */ + margin: 1.5cm; +} + +#title { + font-size: 30px; + font-weight: bold; +} + +h1 { + color: black; + font-size: 180%; + font-weight: bold; + text-align: left; + background-color: white; +} + +a, a:visited, a.nonexistent, a.badinterwiki { + color: black; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +pre { + font-size: 10pt; +} + +a.interwiki:before, a.badinterwiki:before { + content: attr(title) ":"; +} + +a.interwiki img, a.badinterwiki img { + display: none; +} + +.footnotes div { + width: 5em; + border-top: 1pt solid gray; +} + +/* user interface styles */ + +#header, #sidebar, #footer, #timings, #credits { + display: none; +} Index: wiki/winehq/css/projection.css diff -u -p /dev/null wiki/winehq/css/projection.css:1.1 --- wiki/winehq/css/projection.css 6 May 2005 4: 7: 9 -0000 +++ /dev/null 6 May 2005 4: 7: 9 -0000 @@ -0,0 +1,25 @@ +/* projection.css - MoinMoin Slide Styles + +Copyright (c) 2003 by Juergen Hermann +*/ + +@import url("screen.css"); + +html { line-height: 1.8em; } + +body, b, em, a, span, div, p, td { font-size: 22pt; } +/*h1 { font-size: 28pt; } */ +h2 { font-size: 24pt; } +h3 { font-size: 22pt; } +h4 { font-size: 20pt; } +h5 { font-size: 18pt; } +h6 { font-size: 16pt; } +tt,pre { font-size: 18pt; } +sup, sub { font-size: 14pt; } + +.navigation { + font-size: 16pt; + padding-top: 8pt; + padding-bottom: 8pt; +} + Index: wiki/winehq/css/screen.css diff -u -p /dev/null wiki/winehq/css/screen.css:1.1 --- wiki/winehq/css/screen.css 6 May 2005 4: 7: 9 -0000 +++ /dev/null 6 May 2005 4: 7: 9 -0000 @@ -0,0 +1,375 @@ +/* screen.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ +html { + background-color: #E2E2E2; +} + +body { + background-color: #E2E2E2; + margin: 0px; + padding: 0px; + border: 0px; + font-family: "bitstream vera sans", "verdana", "arial", "helvetica", sans-serif; + font-size: 12px; +} + +/* Link Colors */ + +A { color: #A50D0D; } +A:visited { color: #FF0000; } +A:hover { color: #FF6666; text-decoration: underline; } +A:active { color: #FF0000; } + + +.footnotes div { + width: 5em; + border-top: 1px solid #e5e5e5; +} + + +textarea { + font-size: 1em; + font-family: monospace; +} + +span.sep { + display: none; +} + +/* user interface styles */ + +#header { + background: #e5e5e5; +} + +#logo { + margin: 0; + margin-bottom: 1px; + padding: 0px 0px; + /* For text only logo */ + font-weight: bold; + font-size: 24px; + line-height: 1em; + white-space: nowrap; +} + +#logo img { + vertical-align: middle; +} + +#logo a { + color: black; + text-decoration: none; +} + +#searchform { + float: left; + padding: 10px 0px 0px 10px; + white-space: nowrap; +} + +*[dir="rtl"] #searchform { + float: left; +} + +#searchform form div { + display: block; + +} + +#contentwell table { + padding-right: 40px; +} + +#contentwell { + + margin: 0px; + padding: 0px; + border: 0; +} + +#sidewell { + margin: 0px; + padding: 0px; + border: 0; + width: 160; + vertical-align: top; +} + +#sidewell td { + padding: 0px; +} + +#pagewell td { + padding: 0px; + border: none; +} + +#pagewell { + margin: 0px; + padding: 0px; + border: 0; + width: 100%; + vertical-align: top; +} + +#pagebar { + margin: 0px 10px 0px 0px; + padding: 0px 0px 0px 3px; + font-size: 1em; + background: #e2e2e2; +} + +#pagecontent { + margin: 0px 43px 0px 8px; + padding: 5px 10px; + border: 1px solid #631818; + background: white ; +} + +#pagecontent p { + font-size: 12px; +} + +#pagetitle { + margin: 0px 35px 0px 3px; + height: 10px; +} + +#pagetitle h1 { + padding: 0em 0px; + margin: 0px; + font-size: 12px; + font-weight: bold; + text-align: center; + color: white; + background: #631818; +} + +#pagetitle td { + padding: 0px; + margin: 0px; + border: 0px; + background: #601919; +} + + +#sidebar { + margin: 0px 0px 10px 0px ; + float: left; + clear: left; + width: 100%; + padding: 0; + font-size: 1em; +} + +.actionsmenu { + width: 140px; +} + + +.sidepanel { + margin: 0 0 8px 0; + width: 150px; +} + +.sidecontent { + margin: 0 0 15px 0; + float: left ; + width: 143px; + background: #ffffff; + border: 1px solid #631818; + padding-bottom: 2px; +} + +.sidetitle { + float: left; + margin: 0px 0px 0px 0px; + background-color: #631818; + height: 10px; + } + +.sidetitle img { + margin: 0px; + padding: 0px; + border: 0; +} + +.sidetitle h1 { + padding: 0em; + margin: 0px; + font-size: 12px; + font-weight: bold; + color: white; + background: #631818; + text-align: left; +} + +/*.sidetitle table { + padding: 0px; + margin: 0px; + border: none; + border-collapse: 0; + background: black; + +} +.sidetitle tr { + padding: 0px; + margin: 0px; + border: 0px; +} +*/ + +.sidetitle td { padding: 0px; + margin: 0px; + border: 0; +} + +.sidepanel h2 { + margin: 0; + padding: 0.2em 10px; + font-size: 1em; + border: none; + color: black; + background: #ffffff; +} + +.sidepanel ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +.sidepanel li { + margin: 0; + padding: 1.5px 10px; + background: #ffffff; + font-size: 10px; + line-height: 2em; + +} + +.sidepanel li form { + margin: 0; +} + +.sidepanel a { + color: #000000; + text-decoration: underline; + font-size: 10px; + } + +.sidepanel a:hover { + color: #ff6563; + text-decoration: underline; +} + +#navibar li.current { + border: none; + background: #ffffff; +} + +#editbar { + background: #ffffff; +} + +#credits, #version, #timings{ + margin: 0px; + width: 150px; + padding: 0; + list-style-type: none; + text-align: center; + font-size: 0.88em; + color: gray; + float: left; +} + + +#message { + margin: 10px 43px 10px 10px; + background-color: #cfb5b5; + border: 1px solid #631818; +} + +#message p{ + margin: 5px 0; + padding: 0; + font-weight: bold; +} + +#message span.buttons { + font-weight: normal; +} + +form.dialog { + margin: 0 15px; +} + +.dialog td { + border: none; + padding: 5px; +} + +.dialog td.label { + text-align: right; + font-weight: bold; + width: 25%; +} + +*[dir="rtl"] .dialog td.label { + text-align: left; +} + +.dialog td.content input { + width: 100%; +} + +/* We use here dumb css1 ids becuase of IE suckiness */ +#editor-textarea, #editor-comment { + width: 100%; +} + +#pagebottom { + clear: both; +} + +#preview { + border: 2px solid #e5e5e5; + padding: .5em; + background: url(../img/draft.png); +} + +.diff { + width:99%; +} + +.diff-title { + background-color: #C0C0C0; +} + +.diff-added { + background-color: #E0FFE0; + vertical-align: sub; +} + +.diff-removed { + background-color: #FFFFE0; + vertical-align: sub; +} + +.diff-added span { + background-color: #80FF80; +} + +.diff-removed span { + background-color: #FFFF80; +} + +.searchresult dd span { + font-weight: bold; +} +