@ca-plant-list/ca-plant-list 0.2.14 → 0.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,9 @@
1
+ defaults:
2
+ -
3
+ scope:
4
+ path: ""
5
+ values:
6
+ layout: "html"
7
+
8
+ navbar-name: SITE NAME
9
+ bootstrap-prefix: https://cdn.jsdelivr.net/npm/bootstrap/dist
@@ -1,60 +1,57 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
3
 
4
- <head>
5
- <meta charset="utf-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1">
7
- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet"
8
- integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
9
- <title>{{page.title}}</title>
10
- <link href="{{site.baseurl}}/assets/css/main.css" rel="stylesheet">
11
- </head>
12
-
13
- <body>
14
-
15
- <nav class="navbar navbar-expand-md">
16
- <div class="container-xxl px-5">
17
- <button id="hamburger" class="navbar-toggler" type="button" data-bs-toggle="collapse"
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <link href="{{site.bootstrap-prefix}}/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
8
+ <title>{{page.title}}</title>
9
+ <link href="{{site.baseurl}}/assets/css/main.css" rel="stylesheet">
10
+ </head>
11
+
12
+ <body>
13
+
14
+ <nav class="navbar navbar-expand-md">
15
+ <div class="container-xxl px-5">
16
+ <button id="hamburger" class="navbar-toggler" type="button" data-bs-toggle="collapse"
18
17
  data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false"
19
18
  aria-label="Toggle navigation">
20
- <span class="navbar-toggler-icon"></span>
21
- </button>
22
- <a class="navbar-brand" href="{{'/' | relative_url}}">{{site.navbar-name}}</a>
23
- <div class="collapse navbar-collapse" id="navbarSupportedContent">
24
- <ul class="navbar-nav me-auto mb-lg-0">
25
- <li class="nav-item">
26
- <a class="nav-link" href="{{site.baseurl}}/index_lists.html">Plant Lists</a>
27
- </li>
28
- <li class="nav-item">
29
- <a class="nav-link" href="{{site.baseurl}}/rare_plants.html">Rare Plants</a>
30
- </li>
31
- <li class="nav-item">
32
- <a class="nav-link" href="{{site.baseurl}}/name_search.html">Name Search</a>
33
- </li>
34
- <li class="nav-item">
35
- <a class="nav-link" href="{{site.baseurl}}/glossary.html">Glossary</a>
36
- </li>
37
- {%include menu_extra.html %}
38
- </ul>
19
+ <span class="navbar-toggler-icon"></span>
20
+ </button>
21
+ <a class="navbar-brand" href="{{'/' | relative_url}}">{{site.navbar-name}}</a>
22
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
23
+ <ul class="navbar-nav me-auto mb-lg-0">
24
+ <li class="nav-item">
25
+ <a class="nav-link" href="{{site.baseurl}}/index_lists.html">Plant Lists</a>
26
+ </li>
27
+ <li class="nav-item">
28
+ <a class="nav-link" href="{{site.baseurl}}/rare_plants.html">Rare Plants</a>
29
+ </li>
30
+ <li class="nav-item">
31
+ <a class="nav-link" href="{{site.baseurl}}/name_search.html">Name Search</a>
32
+ </li>
33
+ <li class="nav-item">
34
+ <a class="nav-link" href="{{site.baseurl}}/glossary.html">Glossary</a>
35
+ </li>
36
+ {%include menu_extra.html %}
37
+ </ul>
38
+ </div>
39
39
  </div>
40
- </div>
41
- </nav>
40
+ </nav>
42
41
 
43
- <div class="container-xxl px-5">
44
- <h1>{{page.title}}</h1>
45
- {{content}}
46
- </div>
42
+ <div class="container-xxl px-5">
43
+ <h1>{{page.title}}</h1>
44
+ {{content}}
45
+ </div>
47
46
 
48
- <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js"
49
- integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa"
50
- crossorigin="anonymous"></script>
47
+ <script src="{{site.bootstrap-prefix}}/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
51
48
 
52
- {%if page.js%}
53
- <script src="{{site.baseurl}}/assets/js/{{page.js}}" type="module"></script>{%endif%}
49
+ {%if page.js%}
50
+ <script src="{{site.baseurl}}/assets/js/{{page.js}}" type="module"></script>{%endif%}
54
51
 
55
- <script src="{{site.baseurl}}/assets/js/ui.js" type="module"></script>
52
+ <script src="{{site.baseurl}}/assets/js/ui.js" type="module"></script>
56
53
 
57
- {%include analytics.html%}
58
- </body>
54
+ {%include analytics.html%}
55
+ </body>
59
56
 
60
- </html>
57
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ca-plant-list/ca-plant-list",
3
- "version": "0.2.14",
3
+ "version": "0.2.15",
4
4
  "description": "Tools to create Jekyll files for a website listing plants in an area of California.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import * as child_process from "node:child_process";
4
+ import * as path from "node:path";
5
+ import { Files } from "@ca-plant-list/ca-plant-list";
3
6
  import { Config } from "../lib/config.js";
4
7
  import { DataLoader } from "../lib/dataloader.js";
5
8
  import { PageRenderer } from "../lib/pagerenderer.js";
@@ -22,6 +25,38 @@ const OPTION_HELP = [
22
25
  },
23
26
  ];
24
27
 
28
+ class JekyllRenderer {
29
+
30
+ #srcDir = "./output";
31
+ #destDir = "./public";
32
+
33
+ async renderPages() {
34
+
35
+ function addConfigFile( configFiles, dir, name ) {
36
+ const fullPath = path.join( dir, name );
37
+ if ( Files.exists( fullPath ) ) {
38
+ configFiles.push( fullPath );
39
+ }
40
+ }
41
+
42
+ // Remove existing files.
43
+ Files.rmDir( this.#destDir );
44
+
45
+ const options = [ "--source", this.#srcDir, "--destination", this.#destDir ];
46
+
47
+ // Find out what config files are available.
48
+ const configFiles = [];
49
+ addConfigFile( configFiles, this.#srcDir, "_config.yml" );
50
+ addConfigFile( configFiles, this.#srcDir, "_config-local.yml" );
51
+ addConfigFile( configFiles, ".", "_config-dev.yml" );
52
+ options.push( "--config", "\"" + configFiles.join() + "\"" );
53
+
54
+ const result = child_process.execSync( "bundle exec jekyll build " + options.join( " " ) );
55
+ console.log( result.toString() );
56
+ }
57
+
58
+ }
59
+
25
60
  const cr = new CommandRunner(
26
61
  "ca-plant-list",
27
62
  "A tool to generate a website with local plant data.",
@@ -32,9 +67,12 @@ const cr = new CommandRunner(
32
67
  );
33
68
  await cr.processCommandLine();
34
69
 
35
- function generateSite( options ) {
70
+ async function generateSite( options ) {
36
71
  const dataDir = options.datadir;
37
72
  PageRenderer.render( OUTPUT_DIR, new Config( dataDir ), DataLoader.load( dataDir ) );
38
73
  ErrorLog.write( OUTPUT_DIR + "/errors.tsv" );
74
+
75
+ const r = new JekyllRenderer();
76
+ await r.renderPages();
39
77
  }
40
78