huge upgrade to theme and pagefind search bar.
This commit is contained in:
231
pagefind_instructions.html
Normal file
231
pagefind_instructions.html
Normal file
@@ -0,0 +1,231 @@
|
||||
<!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>
|
||||
Reference in New Issue
Block a user