Veloman Yunkan
190156e095
Setting Cache-Control: for three types of content
...
At this point the ETag value for ZIM content is still generated from the
timestamp of the server start-up time.
2022-10-19 19:21:28 +04:00
Veloman Yunkan
b81cb3a8e9
Got rid of raw mode in response generation
2022-09-21 15:41:40 +04:00
Veloman Yunkan
6cc677b8ad
Dropped ContentResponse::contentDecorationAllowed()
2022-09-21 15:41:40 +04:00
Veloman Yunkan
a674561110
Dropped root link injection
...
The only place that the root link is now used is in /skin/index.js,
so added it in static/templates/index.html. But it seems that nothing
prevents us from from switching from aboslute paths to relative paths
in /skin/index.js, which will eliminate the need for the root link
altogether.
As a result of this change content is never decorated by kiwix serve.
2022-09-21 15:41:40 +04:00
Veloman Yunkan
685e7f8ad4
Unconditional blocking of external links
2022-09-21 15:41:40 +04:00
Veloman Yunkan
0ce36e6246
Got rid of isHomePage in ContentResponse::build()
2022-09-21 15:41:40 +04:00
Veloman Yunkan
eb0a45b13e
Undefaulted bool params of ContentResponse::build()
...
This resulted in compiler aided discovery of all call sites where the
default values were used. For OPDS/catalog requests now passing true for the
`raw` parameter, since XML content isn't supposed to undergo any
transformations.
2022-09-21 15:41:40 +04:00
Veloman Yunkan
c988511561
Removed unused param from ContentResponse::build()
...
Removed the isHomePage param from one of the variants of
`ContentResponse::build()`. The other overload is dangerous since
failing to review&update all of its call site may result in changed
semantics. Will do it in a couple of separate commits.
2022-09-21 15:41:40 +04:00
Veloman Yunkan
c73e6f9a81
Dropped unused params from ContentResponse ctor
2022-09-21 15:41:40 +04:00
Veloman Yunkan
0cf4850a9b
Dropped TaskbarInfo
2022-09-21 15:41:40 +04:00
Veloman Yunkan
40c496d401
Removed old-style taskbar injection
...
Double-toolbar in the viewer has gone.
Some clean-up has to be performed after this change.
2022-09-21 15:41:40 +04:00
Emmanuel Engelhart
1062bd73a3
It's libkiwix, not kiwixlib
2022-09-11 16:05:25 +02:00
Matthieu Gautier
71e2df7406
Explicit std
...
Removed headers were `using namespace std`.
So we have to be explicit everywhere.
2022-07-02 16:33:32 +02:00
Matthieu Gautier
cadd2a5cbb
Make the HTTPErrorHtmlResponse not Html only.
2022-06-03 15:46:41 +02:00
Matthieu Gautier
4695f47dd2
Introduce operator+= to simplify response creation.
2022-05-23 10:56:39 +02:00
Matthieu Gautier
fba0f09f4f
Do not compress content smaller than 1400 Bytes
2022-04-27 18:23:39 +02:00
Matthieu Gautier
0d294c50a5
[SERVER] Support gzip encoding instead of deflate.
...
The `compress` function is copied from httplib
2022-04-27 18:23:38 +02:00
Veloman Yunkan
a0d9a824e1
Internationalized searchbox tooltip
2022-04-13 16:40:20 +02:00
Veloman Yunkan
11be821c46
Internationalized "Go to a randomly selected page"
...
At this point a potential issue has been revealed. Now we produce
the final HTML via 2-level template expansion
1. Render parameterized messages
2. Render the HTML template
In which templates we should use double mustache "{{}}" (HTML-escaping)
tags and where we may use triple mustache "{{{}}}" (non-escaping) tags?
2022-04-13 16:40:20 +02:00
Veloman Yunkan
3da81a3d0f
Internationalized "Go to the main page" button
2022-04-13 16:40:20 +02:00
Veloman Yunkan
f73be3cde7
Initializing mustache data via initializer list
2022-04-13 16:40:20 +02:00
Veloman Yunkan
c2bfeb4030
"Go to welcome page" is internationalized
2022-04-13 16:40:20 +02:00
Veloman Yunkan
fbd23a8329
Fully internationalized 400, 404 & 500 error pages
2022-04-13 16:40:20 +02:00
Veloman Yunkan
387f977d6c
Enter ParameterizedMessage
2022-04-13 16:40:20 +02:00
Veloman Yunkan
202ec81d8b
URL-not-found message went into i18n JSON resource
...
Yet, the URL-not-found message is not yet fully internationalized
since its usage is hardcoded to English.
2022-04-13 16:40:20 +02:00
Veloman Yunkan
dbcbdff275
Added an optional CSS link to error.html
2022-04-05 20:49:09 +04:00
Veloman Yunkan
2a20e87341
Got rid of Response::build_500()
...
This change is not tested (mostly due to the difficulties of triggering
an internal server error).
2022-04-04 18:35:20 +02:00
Veloman Yunkan
545d409150
Reused HTTPErrorHtmlResponse in HTTP400HtmlResponse
2022-04-04 18:35:20 +02:00
Veloman Yunkan
89dc9afc28
Renamed 404.html to error.html
...
404.html no longer contains anything specific to the 404 error and will
henceforth serve (with some enhancements) as a general purpose error
page template.
2022-04-04 18:35:20 +02:00
Veloman Yunkan
647118dd5e
Enter HTTPErrorHtmlResponse
...
In addition to serving as a base class for `HTTP404HtmlResponse`,
`HTTPErrorHtmlResponse` is going to be used for a couple of other error
pages.
2022-04-04 18:35:20 +02:00
Veloman Yunkan
d8a60db739
Preparing for a single error page template
2022-04-04 18:35:20 +02:00
Veloman Yunkan
f4059f3faf
Got rid of withTaskbarInfo()
2022-04-04 18:35:20 +02:00
Veloman Yunkan
800cc5b68a
Got rid of Response::build_404()
2022-04-04 18:35:19 +02:00
Matthieu Gautier
feb30d08aa
Correctly define the variable `urlNotFoundMsg` and `invalidUrlMsg`.
...
As we must declare the two variables as `extern` in response.h,
we must define it somewhere (and `response.cpp` is a good place).
2022-04-01 11:58:57 +02:00
Matthieu Gautier
b1643e422e
Introduce HTTP400HtmlResponse.
...
HTTP400HtmlResponse is build on the same design than HTTP404HtmlResponse.
2022-03-28 17:35:15 +02:00
Veloman Yunkan
ec2e10b40e
Moved taskbarInfo into ContentResponseBlueprint
2022-03-28 14:56:40 +02:00
Veloman Yunkan
2da8ea1650
Moved function definition to cpp
2022-03-28 14:56:40 +02:00
Veloman Yunkan
0ecbdbcf63
Enter TaskbarInfo
...
After this change it's time to say thank you and good-bye to
`withTaskbarInfo()`. But it will take a while.
2022-03-28 14:56:40 +02:00
Veloman Yunkan
48d377ca44
HTTP404HtmlResponse::operator+(const std::string&)
2022-03-28 14:56:40 +02:00
Veloman Yunkan
1a5e2eda0f
HTTP404HtmlResponse::operator+(UrlNotFoundMsg)
2022-03-28 14:56:40 +02:00
Veloman Yunkan
89785a259a
Enter HTTP404HtmlResponse
2022-03-28 14:56:40 +02:00
Veloman Yunkan
668063205c
Enter UrlNotFoundMsg iomanipulator-like class
2022-03-28 14:56:40 +02:00
Veloman Yunkan
df98c58d07
Enter ContentResponseBlueprint
2022-03-28 14:56:40 +02:00
Veloman Yunkan
ff8da65c68
Separated make404ResponseData()
2022-03-28 14:56:40 +02:00
Veloman Yunkan
ae60ba806b
Made 404.html error template a little more generic
...
The fact that an info message was moved into C++ code is temporary
since it will be moved to a message resource file soon.
2022-03-28 14:56:40 +02:00
Veloman Yunkan
8cfcf2ea86
A new overload of Response::build_404()
2022-03-28 14:56:40 +02:00
Veloman Yunkan
26c16bb1b2
Renamed a variable
2022-03-28 14:56:40 +02:00
Veloman Yunkan
ca965d448f
Got rid of 2 parameters in Response::build_404()
...
Instead of passing the `bookName` and `bookTitle` parameters to
`Response::build_404()`, `withTaskbarInfo()` is applied to its result
when needed. Note, that in `InternalServer::handle_raw()`
`withTaskbarInfo()` was not utilized since the results of the `/raw`
endpoint are not supposed to be decorated with a taskbar.
2022-03-28 14:56:40 +02:00
Veloman Yunkan
6d16d7386d
Changed the signature of ContentResponse::set_taskbar()
2022-03-28 14:56:40 +02:00
Veloman Yunkan
40e9a19c48
Introduced withTaskbarInfo() helper function
...
This was done in preparation for removing the `bookName` and `bookTitle`
parameters from `Response::build_404()`, but since the new function
could already be put to some use in this commit that was done too.
2022-03-28 14:56:40 +02:00