Add a new script to compile resources.
- No more dependency to reswrap binary (everything is done in python) - Resource strings can be directly accessed. As side effect, it add a check at compilation if the resource is declared and compiled in the binary. - The resource content can be overwritten at runtime with a env variable. There is also few clean in the static as some files shoul be in the tools directory. The compile_resource script is install to let other project use it.
@ -1,43 +0,0 @@
|
||||
#!/bin/sh
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
RESOURCE_FILE=$SCRIPT_DIR/../src/common/resourceTools.h
|
||||
MAP="static std::map<std::string, std::pair<const unsigned char*, unsigned int> > createResourceMap() { \n"
|
||||
MAP=$MAP"\tstd::map<std::string, std::pair<const unsigned char*, unsigned int> > m; \n"
|
||||
|
||||
# Delete old version of the file
|
||||
rm -f "$RESOURCE_FILE"
|
||||
|
||||
# Create header of resourceTools.h
|
||||
cat << EOF > "$RESOURCE_FILE"
|
||||
#ifndef KIWIX_RESOURCETOOLS_H
|
||||
#define KIWIX_RESOURCETOOLS_H
|
||||
|
||||
#include <string>
|
||||
#include <string.h>
|
||||
#include <map>
|
||||
|
||||
std::string getResourceAsString(const std::string &name);
|
||||
|
||||
EOF
|
||||
|
||||
# Goes through all files in /static/
|
||||
for FILE in `find . -type f | sed 's/\.\///' | grep -v .svn | grep -v Makefile | grep -v .sh | grep -v "~" | grep -v "#"`
|
||||
do
|
||||
FILE_ID=`echo "$FILE" | sed "s/\//_/g" | sed "s/\./_/g" | sed "s/\-/_/g"`
|
||||
echo "Inserting $FILE... [$FILE_ID]"
|
||||
reswrap -s -x -oa $RESOURCE_FILE -r $FILE_ID $FILE
|
||||
MAP=$MAP"\tm[\""$FILE"\"] = std::pair <const unsigned char*, unsigned int>("$FILE_ID", sizeof "$FILE_ID"); \n";
|
||||
done;
|
||||
MAP=$MAP"\treturn m; \n";
|
||||
MAP=$MAP"} \n\n"
|
||||
MAP=$MAP"static std::map<std::string, std::pair<const unsigned char*, unsigned int> > resourceMap = createResourceMap(); \n\n"
|
||||
|
||||
# Create the map table
|
||||
# map<int, int> m = map_list_of (1,2) (3,4) (5,6) (7,8);
|
||||
echo $MAP >> "$RESOURCE_FILE"
|
||||
|
||||
# Create the footer
|
||||
cat << EOF >> "$RESOURCE_FILE"
|
||||
#endif
|
||||
|
||||
EOF
|
9789
static/jquery-ui/external/jquery/jquery.js
vendored
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 335 B |
Before Width: | Height: | Size: 207 B |
Before Width: | Height: | Size: 262 B |
Before Width: | Height: | Size: 262 B |
Before Width: | Height: | Size: 332 B |
Before Width: | Height: | Size: 280 B |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 4.4 KiB |
7
static/jquery-ui/jquery-ui.min.css
vendored
13
static/jquery-ui/jquery-ui.min.js
vendored
5
static/jquery-ui/jquery-ui.structure.min.css
vendored
5
static/jquery-ui/jquery-ui.theme.min.css
vendored
7
static/meson.build
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
|
||||
lib_resources = custom_target('resources',
|
||||
input: 'resources_list.txt',
|
||||
output: ['kiwixlib-resources.cpp', 'kiwixlib-resources.h'],
|
||||
command:[res_compiler, '--cxxfile', '@OUTPUT0@', '--hfile', '@OUTPUT1@', '@INPUT@']
|
||||
)
|
4
static/resources_list.txt
Normal file
@ -0,0 +1,4 @@
|
||||
results.ct2
|
||||
stopwords/en
|
||||
stopwords/he
|
||||
stopwords/fra
|
@ -1,127 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
|
||||
<style type="text/css">
|
||||
body{
|
||||
color: #00000;
|
||||
font: small/normal Arial,Helvetica,Sans-Serif;
|
||||
margin-top: 0.5em;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
a{
|
||||
color: #04c;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #639
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline
|
||||
}
|
||||
|
||||
.header {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin:0;
|
||||
padding:0
|
||||
}
|
||||
|
||||
.results {
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
.results li {
|
||||
list-style-type:none;
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
.results a {
|
||||
font-size: 110%;
|
||||
text-decoration: underline
|
||||
}
|
||||
|
||||
cite {
|
||||
font-style:normal;
|
||||
word-wrap:break-word;
|
||||
display: block;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.informations {
|
||||
color: #388222;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.footer {
|
||||
padding: 0;
|
||||
margin-top: 1em;
|
||||
width: 100%;
|
||||
float: left
|
||||
}
|
||||
|
||||
.footer a, .footer span {
|
||||
display: block;
|
||||
padding: .3em .7em;
|
||||
margin: 0 .38em 0 0;
|
||||
text-align:center;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.footer a:hover {
|
||||
background: #ededed;
|
||||
}
|
||||
|
||||
.footer ul, .footer li {
|
||||
list-style:none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.footer li {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.selected {
|
||||
background: #ededed;
|
||||
}
|
||||
|
||||
</style>
|
||||
<title>Search: <TMPL_var searchPattern></title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<div class="header">
|
||||
<TMPL_if results>Results <b><TMPL_var resultStart>-<TMPL_var resultEnd></b> of <b><TMPL_var count></b> for <b><TMPL_var searchPattern></b><TMPL_else>No result were found for <b><TMPL_var searchPattern></b></TMPL_if>
|
||||
</div>
|
||||
|
||||
<div class="results">
|
||||
<ul>
|
||||
<TMPL_foreach results as result>
|
||||
<li><a href="<TMPL_var protocolPrefix><TMPL_var contentId>/<TMPL_var result.url>"><TMPL_var result.title></a>
|
||||
<cite><TMPL_if result.snippet><TMPL_var result.snippet>...</TMPL_if></cite>
|
||||
<TMPL_if wordCount><div class="informations"><TMPL_var wordCount> words</div></TMPL_if>
|
||||
</li>
|
||||
</TMPL_foreach>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<ul>
|
||||
<TMPL_if (resultLastPageStart>0)>
|
||||
<li><a href="<TMPL_var searchProtocolPrefix>content=<TMPL_var contentId>&pattern=<TMPL_var searchPatternEncoded>&start=0&end=<TMPL_var resultRange>">◀</a></li>
|
||||
</TMPL_if>
|
||||
<TMPL_foreach pages as page>
|
||||
<li><a <TMPL_if page.selected>class="selected"</TMPL_if> href="<TMPL_var searchProtocolPrefix>content=<TMPL_var contentId>&pattern=<TMPL_var searchPatternEncoded>&start=<TMPL_var page.start>&end=<TMPL_var page.end>"><TMPL_var page.label></a></li>
|
||||
</TMPL_foreach>
|
||||
<TMPL_if (resultLastPageStart>0)>
|
||||
<li><a href="<TMPL_var searchProtocolPrefix>content=<TMPL_var contentId>&pattern=<TMPL_var searchPatternEncoded>&start=<TMPL_var resultLastPageStart>&end=<TMPL_var (resultLastPageStart+resultRange)>">▶</a></li>
|
||||
</TMPL_if>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,22 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Welcome to Kiwix Server</title>
|
||||
<script type="text/javascript" src="/skin/jquery-ui/external/jquery/jquery.js"></script>
|
||||
<script type="text/javascript" src="/skin/jquery-ui/jquery-ui.min.js"></script>
|
||||
<link type="text/css" href="/skin/jquery-ui/jquery-ui.min.css" rel="Stylesheet" />
|
||||
<link type="text/css" href="/skin/jquery-ui/jquery-ui.theme.min.css" rel="Stylesheet" />
|
||||
<script>
|
||||
$(function() {
|
||||
$( "#accordion" ).accordion();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body class="kiwix">
|
||||
|
||||
<div id="accordion" class="kiwix">
|
||||
__BOOKS__
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,24 +0,0 @@
|
||||
<script type="text/javascript" src="/skin/jquery-ui/external/jquery/jquery.js"></script>
|
||||
<script type="text/javascript" src="/skin/jquery-ui/jquery-ui.min.js"></script>
|
||||
<script>
|
||||
var jk = jQuery.noConflict();
|
||||
jk(function() {
|
||||
jk( "#kiwixsearchbox" ).autocomplete({
|
||||
|
||||
source: "/suggest?content=__CONTENT__",
|
||||
dataType: "json",
|
||||
cache: false,
|
||||
|
||||
select: function(event, ui) {
|
||||
jk( "#kiwixsearchbox" ).val(ui.item.value);
|
||||
jk( "#kiwixsearchform" ).submit();
|
||||
},
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
/* cybook hack */
|
||||
if (navigator.userAgent.indexOf("bookeen/cybook") != -1) {
|
||||
jk("html").addClass("cybook");
|
||||
}
|
||||
</script>
|
@ -1,50 +0,0 @@
|
||||
#kiwixtoolbar {
|
||||
position: fixed;
|
||||
padding: .5em;
|
||||
left:0;
|
||||
right:0;
|
||||
top: 0;
|
||||
z-index:100;
|
||||
max-height: 2.8em;
|
||||
}
|
||||
|
||||
#kiwixsearchbox {
|
||||
width: 20em;
|
||||
}
|
||||
|
||||
.kiwixsearch {
|
||||
float: right;
|
||||
}s
|
||||
|
||||
/* Try to fix buggy stuff in jquery-ui autocomplete */
|
||||
#ui-id-1, .ui-autocomplete {
|
||||
background: white !important;
|
||||
border: solid 1px grey !important;
|
||||
}
|
||||
|
||||
li.ui-state-focus {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Specific CSS for Bookeen Cybook device (800x600 B&W ereader) */
|
||||
.cybook #kiwixtoolbar button, .cybook #kiwixtoolbar input {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.cybook #kiwixsearchbox {
|
||||
width: 7em;
|
||||
}
|
||||
.cybook a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
@media only screen and (min--moz-device-pixel-ratio: 1.5),
|
||||
only screen and (-o-min-device-pixel-ratio: 1.5/1),
|
||||
only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||
only screen and (min-device-pixel-ratio: 1.5) {
|
||||
#kiwixtoolbar button, #kiwixtoolbar input {
|
||||
font-size: 2em;
|
||||
}
|
||||
#kiwixsearchbox {
|
||||
width: 7em;
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
<link type="text/css" href="/skin/jquery-ui/jquery-ui.min.css" rel="Stylesheet" />
|
||||
<link type="text/css" href="/skin/jquery-ui/jquery-ui.theme.min.css" rel="Stylesheet" />
|
||||
<span class="kiwix">
|
||||
<span id="kiwixtoolbar" class="ui-widget-header">
|
||||
<a href="/"><button>Library</button></a>
|
||||
<a href="/__CONTENT__/"><button>Home</button></a>
|
||||
<a href="/random?content=__CONTENT__"><button>Random</button></a>
|
||||
<form class="kiwixsearch" method="GET" action="/search" id="kiwixsearchform">
|
||||
<input type="hidden" name="content" value="__CONTENT__" />
|
||||
<input autocomplete="off" class="ui-autocomplete-input" id="kiwixsearchbox" name="pattern" type="text">
|
||||
<input type="submit" value="Search">
|
||||
</form>
|
||||
</span>
|
||||
</span>
|
||||
<div style="display: block; height: 3em;"></div>
|