232 lines
6.7 KiB
HTML
232 lines
6.7 KiB
HTML
<!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><link href="/pagefind/pagefind-ui.css" rel="stylesheet">
|
||
<script src="/pagefind/pagefind-ui.js"></script>
|
||
<div id="search"></div>
|
||
<script>
|
||
window.addEventListener('DOMContentLoaded', (event) => {
|
||
new PagefindUI({ element: "#search", showSubResults: true });
|
||
});
|
||
</script></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>
|