lib/css.cc

Code
Comments
Other
Rev Date Author Line
177 02 Sep 06 peter 1 // $Id$
177 02 Sep 06 peter 2
177 02 Sep 06 peter 3 /*
379 20 Jun 07 jari 4   Copyright (C) 2006 Peter Johansson
978 12 Dec 09 peter 5   Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
1635 30 Mar 23 peter 6   Copyright (C) 2009, 2010 Peter Johansson
177 02 Sep 06 peter 7
687 04 Aug 08 peter 8   This file is part of svndigest, http://dev.thep.lu.se/svndigest
177 02 Sep 06 peter 9
177 02 Sep 06 peter 10   svndigest is free software; you can redistribute it and/or modify it
177 02 Sep 06 peter 11   under the terms of the GNU General Public License as published by
693 11 Sep 08 jari 12   the Free Software Foundation; either version 3 of the License, or
177 02 Sep 06 peter 13   (at your option) any later version.
177 02 Sep 06 peter 14
177 02 Sep 06 peter 15   svndigest is distributed in the hope that it will be useful, but
177 02 Sep 06 peter 16   WITHOUT ANY WARRANTY; without even the implied warranty of
177 02 Sep 06 peter 17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
177 02 Sep 06 peter 18   General Public License for more details.
177 02 Sep 06 peter 19
177 02 Sep 06 peter 20   You should have received a copy of the GNU General Public License
693 11 Sep 08 jari 21   along with svndigest. If not, see <http://www.gnu.org/licenses/>.
177 02 Sep 06 peter 22 */
177 02 Sep 06 peter 23
284 06 May 07 peter 24 #include <config.h>
234 09 Apr 07 peter 25
1253 31 Oct 10 peter 26 #include "css.h"
1253 31 Oct 10 peter 27
177 02 Sep 06 peter 28 #include <fstream>
177 02 Sep 06 peter 29 #include <string>
177 02 Sep 06 peter 30
177 02 Sep 06 peter 31 namespace theplu{
177 02 Sep 06 peter 32 namespace svndigest{
177 02 Sep 06 peter 33
201 09 Sep 06 peter 34   void print_css(const std::string& str)
177 02 Sep 06 peter 35   {
201 09 Sep 06 peter 36     std::ofstream s(str.c_str());
215 01 Oct 06 peter 37     s << "<-- svndigest.css generated by " << PACKAGE_STRING << "\n"
215 01 Oct 06 peter 38
379 20 Jun 07 jari 39       << "Copyright (C) 2006 Peter Johansson\n"
984 13 Dec 09 peter 40       << "Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson\n"
1182 25 Aug 10 peter 41       << "Copyright (C) 2009, 2010 Peter Johansson\n"
1513 23 Sep 12 peter 42       << "\nThis file is part of svndigest, "
687 04 Aug 08 peter 43       << "http://dev.thep.lu.se/svndigest\n\n"
215 01 Oct 06 peter 44
1513 23 Sep 12 peter 45       << "svndigest is free software; you can redistribute it and/or "
215 01 Oct 06 peter 46       << "modify it\n"
215 01 Oct 06 peter 47       << "under the terms of the GNU General Public License as published by\n"
693 11 Sep 08 jari 48       << "the Free Software Foundation; either version 3 of the License, or\n"
215 01 Oct 06 peter 49       << "(at your option) any later version.\n\n"
215 01 Oct 06 peter 50
215 01 Oct 06 peter 51       << "svndigest is distributed in the hope that it will be useful, but\n"
215 01 Oct 06 peter 52       << "WITHOUT ANY WARRANTY; without even the implied warranty of\n"
215 01 Oct 06 peter 53       << "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
215 01 Oct 06 peter 54       << "General Public License for more details.\n\n"
215 01 Oct 06 peter 55
215 01 Oct 06 peter 56       << "You should have received a copy of the GNU General Public License\n"
693 11 Sep 08 jari 57       << "along with svndigest. If not, see <http://www.gnu.org/licenses/>.\n"
215 01 Oct 06 peter 58
760 29 Jan 09 peter 59       << "\n\nThis file was initially inspired by the cascading style sheet\n"
215 01 Oct 06 peter 60       << "within the Trac open source project (http://trac.edgewall.org/)\n"
215 01 Oct 06 peter 61       << "Copyright (C) 2003-2006 Edgewall Software\n"
215 01 Oct 06 peter 62       << "All rights reserved.\n\n"
215 01 Oct 06 peter 63
215 01 Oct 06 peter 64       << "Redistribution and use in source and binary forms, with or without\n"
215 01 Oct 06 peter 65       << "modification, are permitted provided that the following conditions\n"
215 01 Oct 06 peter 66       << "are met:\n\n"
1513 23 Sep 12 peter 67
215 01 Oct 06 peter 68       << "1. Redistributions of source code must retain the above copyright\n"
215 01 Oct 06 peter 69       << "   notice, this list of conditions and the following disclaimer.\n"
379 20 Jun 07 jari 70       << "2. Redistributions in binary form must reproduce the above copyright\n"
215 01 Oct 06 peter 71       << "   notice, this list of conditions and the following disclaimer in\n"
215 01 Oct 06 peter 72       << "   the documentation and/or other materials provided with the\n"
215 01 Oct 06 peter 73       << "   distribution.\n"
215 01 Oct 06 peter 74       << "3. The name of the author may not be used to endorse or promote\n"
215 01 Oct 06 peter 75       << "   products derived from this software without specific prior\n"
215 01 Oct 06 peter 76       << "   written permission.\n\n"
1513 23 Sep 12 peter 77
215 01 Oct 06 peter 78       << "THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS\n"
215 01 Oct 06 peter 79       << "OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n"
215 01 Oct 06 peter 80       << "WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n"
215 01 Oct 06 peter 81       << "ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\n"
215 01 Oct 06 peter 82       << "DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n"
215 01 Oct 06 peter 83       << "DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n"
215 01 Oct 06 peter 84       << "GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n"
215 01 Oct 06 peter 85       << "INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n"
215 01 Oct 06 peter 86       << "WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n"
215 01 Oct 06 peter 87       << "NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n"
216 01 Oct 06 peter 88       << "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.-->\n";
215 01 Oct 06 peter 89
177 02 Sep 06 peter 90     s << "body {\n";
177 02 Sep 06 peter 91     s << " background: #fff; \n";
177 02 Sep 06 peter 92     s << " color: #000; \n";
177 02 Sep 06 peter 93     s << " margin: 0px; \n";
177 02 Sep 06 peter 94     s << " padding: 0; \n";
177 02 Sep 06 peter 95     s << "} \n";
177 02 Sep 06 peter 96     s << "\n";
379 20 Jun 07 jari 97
177 02 Sep 06 peter 98     s << "#menu {\n";
177 02 Sep 06 peter 99     s << " background: #eee;\n";
177 02 Sep 06 peter 100     s << " width: 100%;\n";
177 02 Sep 06 peter 101     s << " margin: 0px;\n";
177 02 Sep 06 peter 102     s << " padding: 0px;\n";
177 02 Sep 06 peter 103     s << "}\n\n";
177 02 Sep 06 peter 104     s << "#menu ul\n";
177 02 Sep 06 peter 105     s << "{ \n";
177 02 Sep 06 peter 106     s << "padding: 0px;\n";
177 02 Sep 06 peter 107     s << "margin: 0px;list-style-type: none; text-align: center;"
177 02 Sep 06 peter 108       << "border-bottom: 1px solid black;}\n";
177 02 Sep 06 peter 109     s << "#menu ul li { display: inline; border-right: 1px solid black;}\n";
1513 23 Sep 12 peter 110     s << "#menu ul li a {text-decoration: none; padding-right: 1em;"
177 02 Sep 06 peter 111       << "padding-left: 1em; margin: 0px;}\n";
177 02 Sep 06 peter 112     s << "#menu ul li a:hover{ color: #000; background: #ddd;}\n";
212 15 Sep 06 peter 113     s << "#menu ul li.highlight a {color: #fff; background: #777; }";
177 02 Sep 06 peter 114     s << "\n";
177 02 Sep 06 peter 115     s << "#main {\n";
177 02 Sep 06 peter 116     s << " margin: 10px; \n";
177 02 Sep 06 peter 117     s << "}\n";
177 02 Sep 06 peter 118     s << "\n";
379 20 Jun 07 jari 119
177 02 Sep 06 peter 120     s << "body, th, td {\n";
177 02 Sep 06 peter 121     s << " font: normal 13px verdana,arial,'Bitstream Vera Sans',"
177 02 Sep 06 peter 122       << "helvetica,sans-serif;\n";
177 02 Sep 06 peter 123     s << "}\n";
177 02 Sep 06 peter 124     s << ":link, :visited {\n";
177 02 Sep 06 peter 125     s << " text-decoration: none;\n";
177 02 Sep 06 peter 126     s << " color: #b00;\n";
177 02 Sep 06 peter 127     s << "}\n";
177 02 Sep 06 peter 128     s << "\n";
379 20 Jun 07 jari 129
201 09 Sep 06 peter 130     s << "div.main {\n";
1513 23 Sep 12 peter 131     s << "margin-top: 50px;\n";
223 09 Mar 07 peter 132     s << "margin-left: 50px;\n";
223 09 Mar 07 peter 133     s << " \n";
201 09 Sep 06 peter 134     s << "}\n";
379 20 Jun 07 jari 135
1513 23 Sep 12 peter 136     s << "table.main {\n";
223 09 Mar 07 peter 137     s << " text-align: left;\n";
223 09 Mar 07 peter 138     s << " padding: 0 1em .1em 0;\n";
223 09 Mar 07 peter 139     s << "}\n";
223 09 Mar 07 peter 140     s << "table.main th {\n";
223 09 Mar 07 peter 141     s << " text-align: left;\n";
223 09 Mar 07 peter 142     s << " padding: 0 1em 0.5em 0;\n";
223 09 Mar 07 peter 143     s << " font-size: 150%;\n";
223 09 Mar 07 peter 144     s << " font-wheight: bold;\n";
223 09 Mar 07 peter 145     s << "}\n";
223 09 Mar 07 peter 146     s << "table.main td {\n";
223 09 Mar 07 peter 147     s << " padding: 0 1em .1em 0;\n";
380 21 Jun 07 jari 148     s << "}\n\n";
1025 11 Jan 10 peter 149     s << "div.main img { border: 0; }\n";
379 20 Jun 07 jari 150
400 28 Jun 07 peter 151     s << "p.plot { text-align: center; }\n";
400 28 Jun 07 peter 152     s << "p.plot img { border: 0; }\n";
400 28 Jun 07 peter 153
400 28 Jun 07 peter 154     s << "p.footer {\n";
400 28 Jun 07 peter 155     s << "text-align: center;\n";
400 28 Jun 07 peter 156     s << "font-size: 70%;\n";
400 28 Jun 07 peter 157     s << "}\n\n";
400 28 Jun 07 peter 158
379 20 Jun 07 jari 159     s << "table.blame {\n";
401 28 Jun 07 jari 160     s << " border: 1px solid #ddd;\n";
379 20 Jun 07 jari 161     s << " border-spacing: 0;\n";
401 28 Jun 07 jari 162     s << " border-top: 0;\n";
401 28 Jun 07 jari 163     s << " empty-cells: show;\n";
401 28 Jun 07 jari 164     s << " font-size: 12px;\n";
401 28 Jun 07 jari 165     s << " line-height: 130%;\n";
401 28 Jun 07 jari 166     s << " padding: 0;\n";
401 28 Jun 07 jari 167     s << " margin: 0 auto;\n";
401 28 Jun 07 jari 168     s << " table-layout: fixed;\n";
379 20 Jun 07 jari 169     s << " width: 100%;\n";
379 20 Jun 07 jari 170     s << "}\n";
379 20 Jun 07 jari 171     s << "table.blame th {\n";
401 28 Jun 07 jari 172     s << " border-right: 1px solid #d7d7d7;\n";
401 28 Jun 07 jari 173     s << " border-bottom: 1px solid #998;\n";
401 28 Jun 07 jari 174     s << " font-size: 11px;\n";
379 20 Jun 07 jari 175     s << "}\n";
401 28 Jun 07 jari 176     s << "table.blame th.author { width: 5em; text-align:right }\n";
380 21 Jun 07 jari 177     s << "table.blame th.date { width: 8em; text-align:center }\n";
403 28 Jun 07 peter 178     s << "table.blame th.rev { width: 3em }\n";
403 28 Jun 07 peter 179     s << "table.blame th.line { width: 3em }\n";
379 20 Jun 07 jari 180     s << "table.blame thead th {\n";
401 28 Jun 07 jari 181     s << " background: #eee;\n";
401 28 Jun 07 jari 182     s << " border-top: 1px solid #d7d7d7;\n";
401 28 Jun 07 jari 183     s << " color: #999;\n";
401 28 Jun 07 jari 184     s << " padding: 0 .25em;\n";
401 28 Jun 07 jari 185     s << " text-align: center;\n";
401 28 Jun 07 jari 186     s << " white-space: nowrap;\n";
379 20 Jun 07 jari 187     s << "}\n";
401 28 Jun 07 jari 188     s << "table.blame tbody td {\n";
401 28 Jun 07 jari 189     s << " border-right: 1px solid #f0f0f0;\n";
401 28 Jun 07 jari 190     s << " font: normal 11px monospace;\n";
401 28 Jun 07 jari 191     s << " overflow: hidden;\n";
401 28 Jun 07 jari 192     s << " padding: 1px 2px;\n";
401 28 Jun 07 jari 193     s << " vertical-align: top;\n";
379 20 Jun 07 jari 194     s << "}\n";
401 28 Jun 07 jari 195     s << "table.blame tbody td.author { text-align: right; }\n";
405 29 Jun 07 peter 196     s << "table.blame tbody td.date {text-align:right;padding-right:1.45em;}\n";
403 28 Jun 07 peter 197     s << "table.blame tbody td.rev { text-align: right; }\n";
832 30 Oct 09 peter 198     std::string bg_lt_code("cfcfff");
832 30 Oct 09 peter 199     std::string bg_lt_comment("e8e8ff");
832 30 Oct 09 peter 200     std::string bg_lt_other("ffffff");
1513 23 Sep 12 peter 201     s << "table.blame tbody td.line-code { text-align: right; "
832 30 Oct 09 peter 202       << "background: #" << bg_lt_code << "; }\n";
403 28 Jun 07 peter 203     s << "table.blame tbody td.line-comment { text-align: right; "
832 30 Oct 09 peter 204       << "background: #" << bg_lt_comment << "; }\n";
403 28 Jun 07 peter 205     s << "table.blame tbody td.line-other { text-align: right; "
832 30 Oct 09 peter 206       << "background: #" << bg_lt_other << "; }\n";
401 28 Jun 07 jari 207     s << "table.blame tbody tr:hover { background: #eed; }\n";
498 14 Oct 07 peter 208     s << "table.blame tbody td a { display: block; }\n";
379 20 Jun 07 jari 209     s << "\n";
379 20 Jun 07 jari 210
177 02 Sep 06 peter 211     s << "table.listings {\n";
177 02 Sep 06 peter 212     s << " clear: both;\n";
177 02 Sep 06 peter 213     s << " border-bottom: 1px solid #d7d7d7;\n";
177 02 Sep 06 peter 214     s << " border-collapse: collapse;\n";
177 02 Sep 06 peter 215     s << " border-spacing: 0;\n";
177 02 Sep 06 peter 216     s << " margin-top: 1em;\n";
177 02 Sep 06 peter 217     s << " width: 100%;\n";
177 02 Sep 06 peter 218     s << "}\n";
177 02 Sep 06 peter 219     s << "\n";
177 02 Sep 06 peter 220     s << "table.listings th {\n";
177 02 Sep 06 peter 221     s << " text-align: left;\n";
177 02 Sep 06 peter 222     s << " padding: 0 1em .1em 0;\n";
177 02 Sep 06 peter 223     s << " font-size: 12px\n";
177 02 Sep 06 peter 224     s << "}\n";
177 02 Sep 06 peter 225     s << "table.listings thead { background: #f7f7f0 }\n";
177 02 Sep 06 peter 226     s << "table.listings thead th {\n";
177 02 Sep 06 peter 227     s << " border: 1px solid #d7d7d7;\n";
177 02 Sep 06 peter 228     s << " border-bottom-color: #999;\n";
177 02 Sep 06 peter 229     s << " font-size: 11px;\n";
177 02 Sep 06 peter 230     s << " font-wheight: bold;\n";
177 02 Sep 06 peter 231     s << " padding: 2px .5em;\n";
177 02 Sep 06 peter 232     s << " vertical-align: bottom;\n";
177 02 Sep 06 peter 233     s << "}\n";
177 02 Sep 06 peter 234     s << "\n";
177 02 Sep 06 peter 235     s << "table.listings tbody td, table.listing tbody th {\n";
177 02 Sep 06 peter 236     s << " border: 1px dotted #ddd;\n";
177 02 Sep 06 peter 237     s << " padding: .33em .5em;\n";
177 02 Sep 06 peter 238     s << " vertical-align: top;\n";
177 02 Sep 06 peter 239     s << "}\n";
177 02 Sep 06 peter 240     s << "\n";
177 02 Sep 06 peter 241     s << "table.listings tbody tr { border-top: 1px solid #ddd }\n";
177 02 Sep 06 peter 242     s << "table.listings tbody tr.light { background-color: #fcfcfc }\n";
177 02 Sep 06 peter 243     s << "table.listings tbody tr.dark { background-color: #f7f7f7 }\n";
177 02 Sep 06 peter 244     s << "table.listings tbody tr:hover { background: #eed }\n";
177 02 Sep 06 peter 245     s << "table.listings tbody td { text-align: left }\n";
367 12 Jun 07 peter 246     s << "table.listings tbody td a { display: block; }\n";
190 07 Sep 06 peter 247     s << "table.listings tbody td.directory a { font-weight: bold }\n";
177 02 Sep 06 peter 248     s << "\n";
379 20 Jun 07 jari 249
177 02 Sep 06 peter 250     s << ".sep { color: #666}\n";
832 30 Oct 09 peter 251     s << "div.blame_legend .code { background: #" << bg_lt_code << "; }\n"
832 30 Oct 09 peter 252       << "div.blame_legend .comment { background: #" << bg_lt_comment << "; }\n"
832 30 Oct 09 peter 253       << "div.blame_legend .other { background: #" << bg_lt_other << "; }\n"
831 29 Oct 09 peter 254       << "div.blame_legend {\n"
831 29 Oct 09 peter 255       << "float: left;\n"
831 29 Oct 09 peter 256       << "font-size: 9px;\n"
831 29 Oct 09 peter 257       << "margin: 1em 0;\n"
831 29 Oct 09 peter 258       << "padding: .5em;\n"
831 29 Oct 09 peter 259       << "} \n"
831 29 Oct 09 peter 260       << "div.blame_legend dt {\n"
831 29 Oct 09 peter 261       << "background: #fff;\n"
831 29 Oct 09 peter 262       << "border: 1px solid #999;\n"
831 29 Oct 09 peter 263       << "float: left;\n"
831 29 Oct 09 peter 264       << "margin: .1em .5em .1em 2em;\n"
831 29 Oct 09 peter 265       << "overflow: hidden;\n"
831 29 Oct 09 peter 266       << "width: .8em; height: .8em;\n"
831 29 Oct 09 peter 267       << "}\n"
831 29 Oct 09 peter 268       << "div.blame_legend dl, div.blame_legend dd {\n"
831 29 Oct 09 peter 269       << "display: inline;\n"
831 29 Oct 09 peter 270       << "float: left;\n"
831 29 Oct 09 peter 271       << "padding: 0;\n"
831 29 Oct 09 peter 272       << "margin: 0;\n"
831 29 Oct 09 peter 273       << "margin-right: 1.5em;\n"
831 29 Oct 09 peter 274       << "}\n";
201 09 Sep 06 peter 275     s.close();
177 02 Sep 06 peter 276   }
177 02 Sep 06 peter 277
177 02 Sep 06 peter 278 }} // end of namespace svndigest and namespace theplu