\documentclass[DIV=13,%
               BCOR=0mm,%
               headinclude=false,%
               footinclude=false,open=any,%
               fontsize=10pt,%
               oneside,%
               paper=a5]%
               {scrbook}



\usepackage[noautomatic]{imakeidx}



\usepackage{microtype}
\usepackage{graphicx}
\usepackage{alltt}
\usepackage{verbatim}
\usepackage[shortlabels]{enumitem}
\usepackage{tabularx}
\usepackage[normalem]{ulem}
\def\hsout{\bgroup \ULdepth=-.55ex \ULset}
% https://tex.stackexchange.com/questions/22410/strikethrough-in-section-title
% Unclear if \protect \hsout is needed. Doesn't looks so
\DeclareRobustCommand{\sout}[1]{\texorpdfstring{\hsout{#1}}{#1}}
\usepackage{wrapfig}

% avoid breakage on multiple <br><br> and avoid the next [] to be eaten
\newcommand*{\forcelinebreak}{\strut\\*{}}

\newcommand*{\hairline}{%
  \bigskip%
  \noindent \hrulefill%
  \bigskip%
}

% reverse indentation for biblio and play

\newenvironment*{amusebiblio}{
  \leftskip=\parindent
  \parindent=-\parindent
  \smallskip
  \indent
}{\smallskip}

\newenvironment*{amuseplay}{
  \leftskip=\parindent
  \parindent=-\parindent
  \smallskip
  \indent
}{\smallskip}

\newcommand*{\Slash}{\slash\hspace{0pt}}


% http://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url
\PassOptionsToPackage{hyphens}{url}\usepackage[hyperfootnotes=false,hidelinks,breaklinks=true]{hyperref}
\usepackage{bookmark}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{english}
\setmainfont{texgyrepagella-regular.otf}[Script=Latin,%
 Ligatures=TeX,%
 Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/,%
 BoldFont=texgyrepagella-bold.otf,%
 BoldItalicFont=texgyrepagella-bolditalic.otf,%
 ItalicFont=texgyrepagella-italic.otf]
\setmonofont{cmuntt.ttf}[Script=Latin,%
 Ligatures=TeX,%
 Scale=MatchLowercase,%
 Path=/usr/share/fonts/truetype/cmu/,%
 BoldFont=cmuntb.ttf,%
 BoldItalicFont=cmuntx.ttf,%
 ItalicFont=cmunit.ttf]
\setsansfont{cmunss.ttf}[Script=Latin,%
 Ligatures=TeX,%
 Scale=MatchLowercase,%
 Path=/usr/share/fonts/truetype/cmu/,%
 BoldFont=cmunsx.ttf,%
 BoldItalicFont=cmunso.ttf,%
 ItalicFont=cmunsi.ttf]
\newfontfamily\englishfont{texgyrepagella-regular.otf}[Script=Latin,%
 Ligatures=TeX,%
 Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/,%
 BoldFont=texgyrepagella-bold.otf,%
 BoldItalicFont=texgyrepagella-bolditalic.otf,%
 ItalicFont=texgyrepagella-italic.otf]



\renewcommand*{\partpagestyle}{empty}


% global style

\pagestyle{plain}




\usepackage{indentfirst}

% remove the numbering
\setcounter{secnumdepth}{-2}

% remove labels from the captions
\renewcommand*{\captionformat}{}
\renewcommand*{\figureformat}{}
\renewcommand*{\tableformat}{}
\KOMAoption{captions}{belowfigure,nooneline}
\addtokomafont{caption}{\centering}







\deffootnote[3em]{0em}{4em}{\textsuperscript{\thefootnotemark}~}


\addtokomafont{disposition}{\rmfamily}
\addtokomafont{descriptionlabel}{\rmfamily}


\frenchspacing
% avoid vertical glue
\raggedbottom

% this will generate overfull boxes, so we need to set a tolerance
% \pretolerance=1000
% pretolerance is what is accepted for a paragraph without
% hyphenation, so it makes sense to be strict here and let the user
% accept tweak the tolerance instead.
\tolerance=200
% Additional tolerance for bad paragraphs only
\setlength{\emergencystretch}{30pt}

% (try to) forbid widows/orphans
\clubpenalty=10000
\widowpenalty=10000





% given that we said footinclude=false, this should be safe
\setlength{\footskip}{2\baselineskip}

\title{Version 2.4}
\date{}
\author{}
\subtitle{}




% https://groups.google.com/d/topic/comp.text.tex/6fYmcVMbSbQ/discussion
\hypersetup{%
pdfencoding=auto,
pdftitle={Version 2.4},%
pdfauthor={},%
pdfsubject={},%
pdfkeywords={releases}%
}


\begin{document}






  \begin{titlepage}


  \strut\vskip 2em
  \begin{center}

  {\usekomafont{title}{\huge Version 2.4\par}}%
  \vskip 1em
  
  \vskip 2em
  
  \vskip 1.5em



   
   \vfill



  
    \strut\par
  


  \end{center}


     \end{titlepage}
     
     \cleardoublepage



\tableofcontents
% start a new right-handed page

\cleardoublepage



\chapter{Overview}

\section{Parent-children relationship between texts}


You can now use the \texttt{\#parent} directive in a text, which will become
its child. A child text will not be listed in the categories listing
and will inherit them from the parent.


\begin{alltt}
\#title Example
\#parent my-other-text-uri
\end{alltt}


The infobox will link to the parent, and the parent will have a box
pointing to the children.

\section{Binary uploads}


The support for attached files has been extended. You can now upload
audio and video files (you will probably need to tweak the max upload
size in the admin) and create pages to display them without the
infobox.


Example source:


\begin{alltt}
\#ATTACH t-t-test-1.webm t-t-test-2.pdf t-t-test-4.mp3 t-t-test-3.mp4
\#title File Gallery
\#blob 1
\end{alltt}


Resulting in such page:


\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-nodes-9.png}
\end{figure}

\section{Express publishing}


A new option has been added in the admin, "Speed up the publishing
process", which will skip the revision page if you have the permission
to publish and there are no conflicts. Also when the publishing is
complete, you will be redirected automatically to the target page.


This makes sense if you are the only one working on the site and the
publishing procedure seems too long and kind of gratuitous (it's not,
really!) to you.

\section{Let's Encrypt}


The version 1 of the ACME protocol is going away soon, so Amusewiki is
now using the version 2, thanks to
\href{https://metacpan.org/pod/Net::ACME2}{\texttt{Net::ACME2}}. Unofficial
Debian packages are available for Stretch and Buster at
\href{https://packages.amusewiki.org/}{packages.amusewiki.org}

\section{Custom category types}


You may need more flexibility than just authors and topics. For that
you can now create your own category type, e.g. publisher or location
(You can find the admin console at \texttt{/settings/categories}).


\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-cat-1.png}
\end{figure}


Then you would add to the header:


\begin{alltt}
\#title test custom formats (all)
\#publisher My publisher
\#location Zagreb

Text...
\end{alltt}


And they would appear in the text infobox.


\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-cat-2.png}
\end{figure}


On \texttt{/category/location} you have the listing of the locations.


\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-cat-5.png}
\end{figure}


And the location page \texttt{/category/location/zagreb}


\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-cat-3.png}
\end{figure}

\section{Introducing nodes}


The development for Amusewiki 2.4 started in the late spring 2019
developing a new feature, the "nodes", to overcome the limitation of
the single level author\Slash{}topic structure and to gain the ability to
build arbitrary trees of texts.


Sometimes this approach can be better than having the category
hardcoded into the text, but it's your choice. You can use this or the
classical system, or both.


The feature is still marked as experimental, but it can be accessed under
\href{/node}{\texttt{/node}}


A quick demo would probably give you a better idea of what is about.


\begin{figure}[p]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-nodes-1.png}
\caption[]{\noindent Create the initial node}
\end{figure}
\clearpage


\begin{figure}[p]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-nodes-2.png}
\caption[]{\noindent Add a title and an optional body, and attach texts}
\end{figure}
\clearpage


\begin{figure}[p]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-nodes-3.png}
\caption[]{\noindent Overview of the tree, you can add a child node}
\end{figure}
\clearpage


\begin{figure}[p]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-nodes-5.png}
\caption[]{\noindent An attached text will carry the breadcrumbs}
\end{figure}
\clearpage


\begin{figure}[p]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-nodes-6.png}
\caption[]{\noindent The updated sitemap}
\end{figure}
\clearpage


\begin{figure}[p]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-nodes-7.png}
\caption[]{\noindent The node page with texts and children nodes}
\end{figure}
\clearpage


\begin{figure}[p]
\centering
\includegraphics[keepaspectratio=true,height=0.75\textheight,width=\textwidth]{a-v-nodes-8.png}
\caption[]{\noindent When adding a text, you can attach it to a node right away}
\end{figure}
\clearpage

\chapter{Changes}

\section{2.459 (2020-07-03)}


\begin{itemize}
\item\relax 
Store the feed teaser in the Xapian DB to improve Meta output




\end{itemize}
\section{2.458 (2020-06-22)}


\begin{itemize}
\item\relax 
Permit multiple addresses in notification \href{https://github.com/melmothx/amusewiki/issues/346}{GH\#346})



\item\relax 
Show fixed categories in listings as labels




\end{itemize}
\section{2.457 (2020-06-18)}


\begin{itemize}
\item\relax 
New themes: robotojournal and purplejournal




\end{itemize}
\section{2.456 (2020-06-12)}


\begin{itemize}
\item\relax 
Updated i18n: DE, PL, MK



\item\relax 
New feature: grant read access to private sites, git and mirror via
IP whitelisting. The feature is accessible via the admin panel and
with a new script, \texttt{amusewiki-whitelist-ip}




\end{itemize}
\section{2.455 (2020-05-31)}


\begin{itemize}
\item\relax 
Updated i18n (added PL)



\item\relax 
Support the use of a stripped down TeX Live installation (packaged
as \texttt{amusewiki-texlive}). Now the debian package depends on that OR on
texlive-full, but this is the supported solution.



\item\relax 
Update jquery to current 3.5.1



\item\relax 
Add opt-in to generate a named toc instead of \texttt{toc1}, \texttt{toc2}, etc.



\item\relax 
Remove modal ToC (which was not working as expected) and replaced
with navbar dropdown



\item\relax 
Improved cover handling for mobile




\end{itemize}
\section{2.454 (2020-05-07)}


\begin{itemize}
\item\relax 
Fix redundant\Slash{}harmful pagination on publish\Slash{}all



\item\relax 
Update i18n (tr)




\end{itemize}
\section{2.453 (2020-05-01)}


\begin{itemize}
\item\relax 
Add \Slash{}site-admin\Slash{}users route for site administrators for user
management. (\href{https://github.com/melmothx/amusewiki/issues/340}{GH\#340})




\end{itemize}
\section{2.452 (2020-04-18)}


\begin{itemize}
\item\relax 
Implement robots.txt override from the database (new option in the admin panel) \href{https://github.com/melmothx/amusewiki/issues/338}{GH\#338}




\end{itemize}
\section{2.451 (2020-04-13)}


\begin{itemize}
\item\relax 
Adjustments to tests and migration from amusewiki-cgit service




\end{itemize}
\section{2.450 (2020-04-12)}


\begin{itemize}
\item\relax 
Bump ckeditor version. Users are advised to upgrade it with
\texttt{./script/install\_js.sh --clean}



\item\relax 
Remove the need for an external service for cgit (\href{https://github.com/melmothx/amusewiki/issues/245}{GH\#245})



\item\relax 
Simplify the setup for using the offline editing with git (\href{https://github.com/melmothx/amusewiki/issues/336}{GH\#336})




\end{itemize}
\section{2.442 2020-02-25}


\begin{itemize}
\item\relax 
Enable ipv6 ports on nginx



\item\relax 
Bump dependency on Text::Amuse to bring in the short form of headings



\item\relax 
Improve messages for git pulling (\href{https://github.com/melmothx/amusewiki/issues/331}{GH\#331} and \href{https://github.com/melmothx/amusewiki/issues/332}{GH\#332})



\item\relax 
Add site option no\_autoassign\_pubdate (\href{https://github.com/melmothx/amusewiki/issues/330}{GH\#330})




\end{itemize}
\section{2.441 2020-01-17}


\begin{itemize}
\item\relax 
Fix bug with arbitrary pagination size in the pagination widget
(the current size was not displayed if not a standard one)



\item\relax 
Fix crash on \Slash{}opds\Slash{}search with non-latin1 characters




\end{itemize}
\section{2.440 2020-01-08}


\begin{itemize}
\item\relax 
Introduce an experimental feature for parent-children relationships
between texts (\href{https://github.com/melmothx/amusewiki/issues/208}{GH\#208})




\end{itemize}
\section{2.431 2019-12-23}


\begin{itemize}
\item\relax 
Logging tuning




\end{itemize}
\section{2.430 2019-12-23}


\begin{itemize}
\item\relax 
Include deferred texts in search results for logged in (\href{https://github.com/melmothx/amusewiki/issues/327}{GH\#327})



\item\relax 
Replace cronjob with unit file for nginx reloading on demand (\href{https://github.com/melmothx/amusewiki/issues/326}{GH\#326})



\item\relax 
Upgrade the encryption of user passwords



\item\relax 
Refactor the password resetting feature asking (\href{https://github.com/melmothx/amusewiki/issues/328}{GH\#328})




\end{itemize}
\section{2.420 2019-12-04}


\begin{itemize}
\item\relax 
Refactor the static indexes (\href{https://github.com/melmothx/amusewiki/issues/325}{GH\#325})



\item\relax 
Keep the custom formats name stable across migrations (\href{https://github.com/melmothx/amusewiki/issues/321}{GH\#321})




\end{itemize}
\section{2.412 2019-12-01 [SECURITY]}


\begin{itemize}
\item\relax 
Restrict remote repositories set in the web interface to git\Slash{}http.


In some configurations with hostile users, having local gits could
lead to information disclosure of other repositories (setting the
remote path to a known local git, the merge will not happen, but the
commit summary would be listed).




\end{itemize}
\section{2.411 2019-11-29}


\begin{itemize}
\item\relax 
Extend the use of datatables and localize them (\href{https://github.com/melmothx/amusewiki/issues/324}{GH\#324})




\end{itemize}
\section{2.410 2019-11-28}


\begin{itemize}
\item\relax 
Use datatables.net Javascript for large tables in the admin (users,
sites and jobs) instead of monolithic tables and\Slash{}or pagination.



\item\relax 
Permit the creation of custom category types beside the predefined
authors\Slash{}topics (\href{https://github.com/melmothx/amusewiki/issues/311}{GH\#311})



\item\relax 
Use Text::Unidecode instead of the custom code



\item\relax 
List and allow to use existing custom formats in the BookBuilder as
preloaded settings. (\href{https://github.com/melmothx/amusewiki/issues/320}{GH\#320})



\item\relax 
List and allow to use existing images as cover in the BookBuilder
(\href{https://github.com/melmothx/amusewiki/issues/314}{GH\#314})



\item\relax 
Allow custom format selection in the header (\href{https://github.com/melmothx/amusewiki/issues/310}{GH\#310})



\item\relax 
Add binary attachments to the infobox (\href{https://github.com/melmothx/amusewiki/issues/309}{GH\#309})



\item\relax 
When a text is not published, redirect it to \Slash{}console\Slash{}unpublished
instead of a 404 for logged in users (\href{https://github.com/melmothx/amusewiki/issues/316}{GH\#316})




\end{itemize}

To take advantage of the new BookBuilder features with images, you may
want to reindex the site with amusewiki-bootstrap-archive --refresh.
This step is however optional and doesn't prevent the normal
functioning of the sites (you're just not going to see the images as
available on the BookBuilder until you reindex the affected texts).

\section{2.401 2019-11-01}


\begin{itemize}
\item\relax 
Add CLI options to control the jobber polling interval and
parallelization.



\item\relax 
Add id attributes where missing in the top bar, for better styling




\end{itemize}
\section{2.400 2019-10-27}


\begin{itemize}
\item\relax 
Upgraded RU localization



\item\relax 
Improved express publishing




\end{itemize}
\section{2.392 2019-08-23}


\begin{itemize}
\item\relax 
Upgraded HR and IT localization




\end{itemize}
\section{2.391 2019-08-15}


\begin{itemize}
\item\relax 
Migrate from \texttt{Protocol::ACME} to \texttt{Net::ACME2} to get Let's Encrypt
certificate using the new protocol, given that the old one is
getting sinked soon.



\item\relax 
New site option: express\_publishing. If in effect, the publishing
procedure is speeded up and if no conflict is found, the text will
be published right away. This is useful if there are no external
contributions.



\item\relax 
Add List-Id to our mails, so clients have a chance to pick it up.



\item\relax 
Support per-format template files via newest Text::Amuse::Compile




\end{itemize}
\section{2.390 2019-07-25}


\begin{itemize}
\item\relax 
Added experimental node system. It's accessible to logged in users
under \texttt{/node}. The basic functionality is there. Probably needs
refinement with locale-aware sorting. This permits to create
arbitrary category trees.



\item\relax 
Added experimental feature for adding binary files like
video\Slash{}audio. Available in the configuration panel.




\end{itemize}






% begin final page

\clearpage



% new page for the colophon

\thispagestyle{empty}

\begin{center}





\bigskip
\includegraphics[width=0.25\textwidth]{logo-amw.pdf}
\bigskip

\end{center}

\strut

\vfill

\begin{center}




Version 2.4






\bigskip



   

       

       

       

       

       
   



\bigskip
\textbf{amusewiki.org}


\end{center}

% end final page with colophon


\end{document}


% No format ID passed.



