Files
libertytoolsio/pagefind_instructions.html

232 lines
6.7 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>pagefind_instructions</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
svg {
height: auto;
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
border: none;
border-top: 1px solid #1a1a1a;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<h1 id="instructions-for-installing-and-running-pagefind">Instructions
for Installing and Running PageFind</h1>
<h2 id="install-nvm-and-npx">Install <code>nvm</code> and
<code>npx</code></h2>
<p>There are a few ways to install PageFind. I used the <code>npx</code>
method, but you can check out other ways from their <a
href="https://pagefind.app/docs/installation/">website</a>. Below is the
<code>npx</code> method. 1. Install <code>nvm</code> from the <a
href="https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating">git
repo</a> using the <code>Install and Update Script</code>. -
<code>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash</code>
- <code>nvm install --lts</code> 2. Install <code>npm</code> -
<code>sudo apt install npm</code> 3. Verify Installations -
<code>which npx</code> should print out the path to the <code>npx</code>
binary. - <code>npx --version</code> should give you the version that
was installed.</p>
<h2 id="include-pagefind-script-into-website">Include PageFind Script
into Website</h2>
<ol type="1">
<li>In the <code>config.toml</code> file of the root of the
<code>libertytools.io</code> project, set the following:
<ul>
<li><code>BookSearch = true</code></li>
</ul></li>
<li><code>cd libertytoolsio/themes/hugo-book/layouts/_partials/docs</code></li>
<li>Make a backup of <code>search.html</code>:
<ul>
<li><code>cp search.html search.html.bkup</code></li>
</ul></li>
<li>Open <code>search.html</code> and delete the contents. Replace the
contents with the following script from the <a
href="https://pagefind.app/docs/">pagefind website</a>:</li>
</ol>
<pre><code>&lt;link href=&quot;/pagefind/pagefind-ui.css&quot; rel=&quot;stylesheet&quot;&gt;
&lt;script src=&quot;/pagefind/pagefind-ui.js&quot;&gt;&lt;/script&gt;
&lt;div id=&quot;search&quot;&gt;&lt;/div&gt;
&lt;script&gt;
window.addEventListener(&#39;DOMContentLoaded&#39;, (event) =&gt; {
new PagefindUI({ element: &quot;#search&quot;, showSubResults: true });
});
&lt;/script&gt;</code></pre>
<h2 id="index-the-website">Index the Website</h2>
<p>Once the pagefind script has been copied into the
<code>libertytoolsio/themes/hugo-book/layouts/_partials/docs/search.html</code>,
the search bar should persist across all pages created. To index the
website for pagefind we first have to build the site using
<code>hugo</code>, then we will have to index the contents of the site
using the <code>npx</code> wrapper. 1. Build the site: - From the
project root (i.e. <code>libertytoolsio/</code>), -
<code>hugo serve</code> 2. Building the site will publish the html and
shit to the <code>public/</code> directory. We now have to index and
rebuild the site in order for pagefind to persist: - From the project
root, <code>npx -y pagefind --site public --serve</code> - If all goes
well, you should see something like
<code>Serving "public" at http://localhost:1414</code> at the bottom of
the output. Paste the address <code>http://localhost:1414</code> into a
browser. You should now see the search bar in the upper left, and it
should be available on all pages.</p>
</body>
</html>