Commit Graph

3043 Commits

Author SHA1 Message Date
Veloman Yunkan
2b1f556c20 Merge pull request #1239 from kiwix/translatewiki
Localisation updates from https://translatewiki.net.
2025-11-10 18:41:03 +04:00
translatewiki.net
e0cd5a1642 Localisation updates from https://translatewiki.net. 2025-11-10 13:13:07 +01:00
Kelson
0a9ba9b678 Merge pull request #1237 from kiwix/release-14.1.0
Release 14.1.0
14.1.0
2025-10-31 15:17:48 +01:00
Emmanuel Engelhart
db9607e55e 14.1.0 changelog 2025-10-31 15:12:00 +01:00
Emmanuel Engelhart
592e22732e Bump-up version to 14.1.0 2025-10-31 15:12:00 +01:00
Kelson
17f0ad2cf4 Merge pull request #1234 from vighnesh-sawant/standard-port-enhancment
Add functions which return displayable addresses
2025-10-31 14:55:35 +01:00
Vighnesh
4928509991 Implement a function which returns server access url 2025-10-31 18:11:22 +05:30
Vighnesh
c2df0a99fe Normalize m_root in Server itself 2025-10-31 18:11:22 +05:30
Vighnesh
cffca3ad85 Sync m_addr of Server and InternalServer 2025-10-31 18:11:22 +05:30
Kelson
0a2bebe7a3 Merge pull request #1218 from kiwix/translatewiki
Localisation updates from https://translatewiki.net.
2025-10-31 12:44:38 +01:00
translatewiki.net
bdb1f09884 Localisation updates from https://translatewiki.net. 2025-10-30 13:12:50 +01:00
Kelson
f98b79348b Merge pull request #1235 from kiwix/macos-15
Use macos-15 in CI
2025-10-29 13:00:13 +01:00
Emmanuel Engelhart
2b8927e66e Use macos-15 in CI 2025-10-27 18:00:23 +01:00
Kelson
d0fb8214c3 Merge pull request #1233 from kiwix/fix-compilation-libicu76
Fix build with ICU 76+
2025-10-27 18:00:05 +01:00
Emmanuel Engelhart
d5894092fd Fix build with ICU 76+ 2025-10-27 15:45:27 +01:00
Kelson
dd09e3ce5f Merge pull request #1231 from kiwix/requires-libzim-9.4.0
Requires now libzim 9.4.0
2025-10-24 13:16:20 +02:00
Emmanuel Engelhart
92954bbbe4 Requires now libzim 9.4.0 2025-10-24 12:46:09 +02:00
Kelson
7a9edccbc5 Merge pull request #1200 from kiwix/kiwix-serve-pagination-fix
Fix kiwix-serve pagination
2025-10-24 12:35:29 +02:00
Emmanuel Engelhart
e9e76e0901 Adapt tests to results offset starting at 0 2025-10-24 12:24:20 +02:00
Emmanuel Engelhart
ad9377083f Add search template variable 'startLabel' 2025-10-24 12:24:20 +02:00
Emmanuel Engelhart
d857b0f8f6 Fix kiwix-serve pagination 2025-10-24 12:24:20 +02:00
Kelson
759d430232 Merge pull request #1230 from kiwix/spelling_correction
Spelling correction of full titles
2025-10-14 11:24:52 +02:00
Veloman Yunkan
e402dcabcb Another way of testing that an existing spellings DB is reused
Under Windows and Packages CI workflows the previous approach to testing
that an existing spellings DB file is reused didn't work since it relied
on an auxiliary test ensuring that a spellings database cannot be
created in a read-only directory, whereas

1. under Windows a temporary directory couldn't be made read-only
   (leading to the failure of the auxiliary test)

2. in the Packages workflow the build was run with root privileges
   and the read-onliness of the target directory was ignored
   (leading to the same failure).

So the test was rewritten to actually check the content of the target
directory as well as the modifications times of the target directory and
the database file.
2025-10-09 17:15:17 +04:00
Veloman Yunkan
54bd29e3ed A more portable spelling correction unit-test
Packages workflow jobs run under Ubuntu 22.04 Jammy and 24.04 Noble with
different versions of libxapian.so. So the spelling correction unit test
must adapt accordingly.
2025-10-09 15:08:04 +04:00
Veloman Yunkan
5c8aa240ad SpellingsDB is created in a cache directory
The path parameter of the SpellingsDB constructor has been changed to
denote the path of the cache directory where spellings databases for
different ZIM archive should be stored. The filename of the spellings
database is generated from the ZIM archive UUID and the current version
of the spellings database implementation.
2025-10-06 17:20:22 +04:00
Veloman Yunkan
39672f0532 SpellingsDB reuses an existing database
Also the underlying Xapian database is now in a single-file format.
2025-10-06 17:20:13 +04:00
Veloman Yunkan
e0491adc85 Extracted testSpellingCorrections()
... so that it can be reused in a test where an existing spellings
database is opened.
2025-10-06 17:19:42 +04:00
Veloman Yunkan
286649e8c3 Enter SpellingsDB 2025-10-06 17:19:32 +04:00
Veloman Yunkan
b799c0648b ZIM file for testing spelling correction
The ZIM file test/data/spelling_correction_test.zim was generated using
the script test/data/create_zim_file_for_testing_spelling_correction
included in this commit.
2025-10-02 20:02:08 +04:00
Kelson
050906c1b2 Merge pull request #1226 from kiwix/new_illustrations_api
Switched to the new illustrations API
2025-09-25 19:53:14 +02:00
Veloman Yunkan
f5e35b4c5d Switched to the new illustrations API 2025-09-25 12:21:07 +04:00
Kelson
2a858dcc82 Merge pull request #1224 from kiwix/previewable_books_for_empty_root
Empty urlRootLocation doesn't disable book preview links
2025-09-13 21:48:33 +02:00
Veloman Yunkan
ac9be80369 InternalServer::setContentAccessUrl(LibraryDumper&)
Code deduplication
2025-09-13 18:34:54 +04:00
Veloman Yunkan
d0a48cc9cc LibraryDumper::content{Server -> Access}Url
Renamed contentServerUrl in LibraryDumper to contentAccessUrl to avoid
confusion with contentServerUrl concept at Server/InternalServer level
(roughly, contentAccessUrl = contentServerUrl + "/content").
2025-09-13 18:34:54 +04:00
Veloman Yunkan
67b7e25494 Empty root isn't confused with missing contentServerURL
Running kiwix-serve without --catalogOnly and
--urlRootLocation resulted in non-clickable book tiles since
empty root was confused with empty contentServerURL which controlled
whether book preview links should be activated.

This commit fixes that bug and adds respective unit-tests.
2025-09-13 18:34:02 +04:00
Kelson
2b4b90f8a3 Merge pull request #1219 from kiwix/catalog_only_mode
Support for catalog only mode of kiwix-serve
2025-09-11 13:45:32 +02:00
Veloman Yunkan
208dd96edd Catalog-only mode of nojs welcome page 2025-09-08 18:52:50 +04:00
Veloman Yunkan
51ffa31037 Book preview link is derived from the content URL
Now the book preview link is derived from the content URL link found in
the OPDS entry for a book.  If no content URL is present in the OPDS
entry for a book, then preview link is disabled.
2025-09-08 18:39:48 +04:00
Veloman Yunkan
968d1c1067 Support for setting the content server URL 2025-09-08 18:39:48 +04:00
Veloman Yunkan
c205a4703b Welcome page no longer depends on viewer_settings.js
The dependence of the welcome page on viewer_settings.js was added
in commit cc6aa9b162 as a hack which
stayed there after the need for it was removed by PR#1044.
2025-09-08 18:39:48 +04:00
Veloman Yunkan
8bff8d5891 Fixed indentation 2025-09-08 18:39:48 +04:00
Veloman Yunkan
94e51e363c Illustrations are not suppressed for ZIM-less books 2025-09-08 18:39:48 +04:00
Veloman Yunkan
25e03ce597 Support for catalog-only mode 2025-09-08 18:39:48 +04:00
Veloman Yunkan
8a3c4c92e0 Enhanced test library.xml with an entry not backed by a ZIM file
The test data was modified so that support for catalog only mode
of kiwix-serve can be properly tested.

The effect of this change in the test data on the library_server unit
test demonstrates that although the new entry does not appear in the
catalog (for example, no catalog_v2_entries* test cases were affected)
the category and language of this ghost entry slipped into the
observable output.
2025-09-08 18:39:48 +04:00
Kelson
95fc478e37 Merge pull request #1213 from kiwix/anchorage_2025.08.15
Viewer detects & tracks intrapage navigation too
2025-09-08 13:51:03 +02:00
Veloman Yunkan
26253ebf8f Viewer iframe location is checked every 0.1s
The only way to detect change of the iframe location performed via
`History.pushState()` or `History.replaceState()` is to constantly
monitor it, since those methods don't trigger any events.
2025-09-08 12:51:10 +04:00
Veloman Yunkan
34c6a3bfab Viewer detects & tracks intrapage navigation too
Clicking intrapage links (of the form <a href="#anchor">) inside the
viewer iframe is detected by the viewer and reflected in the URL in the
address bar.

The solution only works if following the link is performed by the
browser as a default action. It doesn't work if the changed URL in the
address bar after clicking a link is a result of `History.pushState()`
or `History.replaceState()` being called by javascript code installed as
an event handled on the link (which is the case in single page
applications).
2025-09-01 16:37:38 +04:00
Veloman Yunkan
5c1f8de891 Merge pull request #1212 from kiwix/viewer_chaperon_mode
Viewer chaperon mode
2025-09-01 13:22:33 +04:00
Veloman Yunkan
334ca0295e Viewer chaperon mode
Viewer now rewrites internal links so that opening them in a new
tab/window keeps the viewer around. Thus the viewer acts as a chaperon
for the users preventing them from finding themselves out of the
viewer's supervision. Of course there are ways to circumvent such
oversight, however it has always been the case with chaperons in all
cultures in all epochs.
2025-09-01 12:31:41 +04:00
Kelson
e2186cfb7b Merge pull request #1215 from kiwix/translatewiki
Localisation updates from https://translatewiki.net.
2025-08-29 20:25:25 +02:00