mirror of https://github.com/kiwix/libkiwix.git
Introduce HTMLDumper
HTMLDumper class will be used to dump library in HTML format. It inherits from LibraryDumper
This commit is contained in:
parent
f1873876b2
commit
d8656ec149
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2023 Nikhil Tanwar <2002nikhiltanwar@gmail.com>
|
||||||
|
*
|
||||||
|
* 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 3 of the License, or
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef KIWIX_HTML_DUMPER_H
|
||||||
|
#define KIWIX_HTML_DUMPER_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "library_dumper.h"
|
||||||
|
|
||||||
|
namespace kiwix
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class to dump Library in HTML format.
|
||||||
|
*/
|
||||||
|
class HTMLDumper : public LibraryDumper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
HTMLDumper(const Library* library, const NameMapper* NameMapper);
|
||||||
|
~HTMLDumper();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dump library in HTML
|
||||||
|
*
|
||||||
|
* @return HTML content
|
||||||
|
*/
|
||||||
|
std::string dumpPlainHTML() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // KIWIX_HTML_DUMPER_H
|
|
@ -0,0 +1,37 @@
|
||||||
|
#include "html_dumper.h"
|
||||||
|
#include "libkiwix-resources.h"
|
||||||
|
#include "tools/otherTools.h"
|
||||||
|
|
||||||
|
namespace kiwix
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Constructor */
|
||||||
|
HTMLDumper::HTMLDumper(const Library* library, const NameMapper* nameMapper)
|
||||||
|
: LibraryDumper(library, nameMapper)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/* Destructor */
|
||||||
|
HTMLDumper::~HTMLDumper()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string HTMLDumper::dumpPlainHTML() const
|
||||||
|
{
|
||||||
|
kainjow::mustache::list booksData;
|
||||||
|
for ( const auto& bookId : library->getBooksIds() ) {
|
||||||
|
const auto bookEx = library->getBookById(bookId);
|
||||||
|
const auto bookName = bookEx.getName();
|
||||||
|
booksData.push_back(kainjow::mustache::object{
|
||||||
|
{"name", bookName}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return render_template(
|
||||||
|
RESOURCE::templates::no_js_library_page_html,
|
||||||
|
kainjow::mustache::object{
|
||||||
|
{"books", booksData }
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace kiwix
|
|
@ -5,6 +5,7 @@ kiwix_sources = [
|
||||||
'manager.cpp',
|
'manager.cpp',
|
||||||
'libxml_dumper.cpp',
|
'libxml_dumper.cpp',
|
||||||
'opds_dumper.cpp',
|
'opds_dumper.cpp',
|
||||||
|
'html_dumper.cpp',
|
||||||
'library_dumper.cpp',
|
'library_dumper.cpp',
|
||||||
'downloader.cpp',
|
'downloader.cpp',
|
||||||
'server.cpp',
|
'server.cpp',
|
||||||
|
|
|
@ -53,6 +53,7 @@ extern "C" {
|
||||||
#include "name_mapper.h"
|
#include "name_mapper.h"
|
||||||
#include "search_renderer.h"
|
#include "search_renderer.h"
|
||||||
#include "opds_dumper.h"
|
#include "opds_dumper.h"
|
||||||
|
#include "html_dumper.h"
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
|
|
||||||
#include <zim/uuid.h>
|
#include <zim/uuid.h>
|
||||||
|
|
|
@ -37,6 +37,7 @@ templates/catalog_v2_categories.xml
|
||||||
templates/catalog_v2_languages.xml
|
templates/catalog_v2_languages.xml
|
||||||
templates/url_of_search_results_css
|
templates/url_of_search_results_css
|
||||||
templates/viewer_settings.js
|
templates/viewer_settings.js
|
||||||
|
templates/no_js_library_page.html
|
||||||
opensearchdescription.xml
|
opensearchdescription.xml
|
||||||
ft_opensearchdescription.xml
|
ft_opensearchdescription.xml
|
||||||
catalog_v2_searchdescription.xml
|
catalog_v2_searchdescription.xml
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||||
|
<link type="root" href="{{root}}">
|
||||||
|
<title>Welcome to Kiwix Server</title>
|
||||||
|
<link
|
||||||
|
type="text/css"
|
||||||
|
href="{{root}}/skin/index.css?KIWIXCACHEID"
|
||||||
|
rel="Stylesheet"
|
||||||
|
/>
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="{{root}}/skin/favicon/apple-touch-icon.png?KIWIXCACHEID">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="{{root}}/skin/favicon/favicon-32x32.png?KIWIXCACHEID">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="{{root}}/skin/favicon/favicon-16x16.png?KIWIXCACHEID">
|
||||||
|
<link rel="manifest" href="{{root}}/skin/favicon/site.webmanifest?KIWIXCACHEID">
|
||||||
|
<link rel="mask-icon" href="{{root}}/skin/favicon/safari-pinned-tab.svg?KIWIXCACHEID" color="#5bbad5">
|
||||||
|
<link rel="shortcut icon" href="{{root}}/skin/favicon/favicon.ico?KIWIXCACHEID">
|
||||||
|
<meta name="msapplication-TileColor" content="#da532c">
|
||||||
|
<meta name="msapplication-config" content="{{root}}/skin/favicon/browserconfig.xml?KIWIXCACHEID">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
<style>
|
||||||
|
@font-face {
|
||||||
|
font-family: "poppins";
|
||||||
|
src: url("{{root}}/skin/fonts/Poppins.ttf?KIWIXCACHEID") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "roboto";
|
||||||
|
src: url("{{root}}/skin/fonts/Roboto.ttf?KIWIXCACHEID") format("truetype");
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
VERY REAL TEST :))))))))
|
||||||
|
{{#books}}
|
||||||
|
<div>{{name}}</div>
|
||||||
|
{{/books}}
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue