@moonwave99/goffre 0.1.0 → 0.1.2

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.
package/README.md CHANGED
@@ -7,31 +7,31 @@ It uses [handlebars][handlebars] as templating system and [markdown + frontmatte
7
7
  ## Installation
8
8
 
9
9
  ```bash
10
- $ npm install goffre --save
10
+ npm install @moonwave99/goffre --save
11
11
  ```
12
12
 
13
13
  ## Basic Usage
14
14
 
15
15
  ```js
16
- import { load, render } from "goffre";
16
+ import { load, render } from "@moonwave99/goffre";
17
17
 
18
18
  (async () => {
19
- const { pages } = await load();
20
-
21
- try {
22
- const results = await render({ pages });
23
- console.log(`Generated ${results.length} pages`);
24
- } catch (error) {
25
- console.log("Error generating site", error);
26
- }
19
+ const { pages } = await load();
20
+
21
+ try {
22
+ const results = await render({ pages });
23
+ console.log(`Generated ${results.length} pages`);
24
+ } catch (error) {
25
+ console.log("Error generating site", error);
26
+ }
27
27
  })();
28
28
  ```
29
29
 
30
30
  Default paths:
31
31
 
32
- - **markdown files**: `./data` - used by `load()`
33
- - **output folder**: `./dist` - used by `render()`
34
- - **handlebars views**: `./src/views` - used by `render()`
32
+ - **markdown files**: `./data` - used by `load()`
33
+ - **output folder**: `./dist` - used by `render()`
34
+ - **handlebars views**: `./src/views` - used by `render()`
35
35
 
36
36
  See [examples](#examples) for a more advanced use case, and the [documentation][docs] for the complete reference.
37
37
 
@@ -66,18 +66,18 @@ The `render()` method writes then every incoming page to `{page.slug}.html` - yo
66
66
  ```js
67
67
  const { pages } = await load({ dataPath });
68
68
  const results = await render({
69
- buildPath,
70
- sitePath,
71
- pages: [
72
- ...pages,
73
- {
74
- title: "Goffre | Mini static site generator",
75
- description:
76
- "Goffre is a minimal static site generator available to the node.js ecosystem.",
77
- slug: "index",
78
- content: await readFile(path.join("..", "README.md"), "utf8"),
79
- },
80
- ],
69
+ buildPath,
70
+ sitePath,
71
+ pages: [
72
+ ...pages,
73
+ {
74
+ title: "Goffre | Mini static site generator",
75
+ description:
76
+ "Goffre is a minimal static site generator available to the node.js ecosystem.",
77
+ slug: "index",
78
+ content: await readFile(path.join("..", "README.md"), "utf8"),
79
+ },
80
+ ],
81
81
  });
82
82
  ```
83
83
 
@@ -97,11 +97,11 @@ The scripts of `package.json` will look more or less like:
97
97
 
98
98
  ```json
99
99
  {
100
- "clean": "rm -rf dist",
101
- "dev:client": "webpack serve --mode development",
102
- "dev:site": "nodemon -e js,json,md,handlebars --watch index.js --watch data --watch src/views",
103
- "build:client": "webpack --mode production",
104
- "build:site": "node index.js"
100
+ "clean": "rm -rf dist",
101
+ "dev:client": "webpack serve --mode development",
102
+ "dev:site": "nodemon -e js,json,md,handlebars --watch index.js --watch data --watch src/views",
103
+ "build:client": "webpack --mode production",
104
+ "build:site": "node index.js"
105
105
  }
106
106
  ```
107
107
 
@@ -109,17 +109,15 @@ Just `npm run dev:client` and `npm run dev:site` in two terminal tabs and you ar
109
109
 
110
110
  ## Examples
111
111
 
112
- - [devblog][examples-devblog] - a personal website with blog posts and project pages
113
- - this page of course
112
+ - [devblog][examples-devblog] - a personal website with blog posts and project pages
113
+ - this page of course
114
114
 
115
115
  [handlebars]: https://handlebarsjs.com/
116
- [express-handlebars]: https://www.npmjs.com/package/express-handlebars
117
116
  [mdfront]: https://www.google.com/search?q=markdown+frontmatter
118
117
  [webpack]: https://webpack.js.org/
119
118
  [webpack-dev-server]: https://webpack.js.org/configuration/dev-server/
120
119
  [http-server]: https://www.npmjs.com/package/http-server
121
120
  [nodemon]: https://www.npmjs.com/package/nodemon
122
- [example]: https://github.com/moonwave99/goffre/tree/main/examples/devblog
123
121
  [docs]: https://github.com/moonwave99/goffre/tree/main/examples/devblog
124
122
  [webpack-config]: https://github.com/moonwave99/goffre/blob/main/homepage/webpack.config.cjs
125
123
  [examples-devblog]: https://goffre-examples-devblog.netlify.app/
package/dist/index.d.ts CHANGED
@@ -1,5 +1,44 @@
1
1
  import { MarkedExtension, RendererObject } from 'marked';
2
+ import { HelperOptions } from 'handlebars';
2
3
 
4
+ type Context = {
5
+ data: {
6
+ root: {
7
+ options?: {
8
+ domain?: string;
9
+ env?: {
10
+ mode?: string;
11
+ };
12
+ };
13
+ };
14
+ };
15
+ };
16
+ type HelperContext = Context & Omit<HelperOptions, "fn" | "inverse">;
17
+ type BlockContext = Context & HelperOptions;
18
+ declare const markdown: (text: string) => string | Promise<string>;
19
+ declare const getParamLink: (url: string, options: HelperContext) => string;
20
+ declare const getAsset: (asset: string, context: Omit<HelperContext, "hash">) => string;
21
+ declare const getSitemapLink: (page: Page, context: HelperContext) => string;
22
+ declare const getLink: (page: Page, context: HelperContext) => string;
23
+ declare const getNavClass: ({ slug }: Page, currentPage: Page) => string;
24
+ declare const list: (context: Page[], options: BlockContext) => string;
25
+ declare const nextItem: (context: Page, options: Pick<BlockContext, "hash" | "fn">) => string | undefined;
26
+ declare const prevItem: (context: Page, options: Pick<BlockContext, "hash" | "fn">) => string | undefined;
27
+
28
+ declare const defaultHelpers_getAsset: typeof getAsset;
29
+ declare const defaultHelpers_getLink: typeof getLink;
30
+ declare const defaultHelpers_getNavClass: typeof getNavClass;
31
+ declare const defaultHelpers_getParamLink: typeof getParamLink;
32
+ declare const defaultHelpers_getSitemapLink: typeof getSitemapLink;
33
+ declare const defaultHelpers_list: typeof list;
34
+ declare const defaultHelpers_markdown: typeof markdown;
35
+ declare const defaultHelpers_nextItem: typeof nextItem;
36
+ declare const defaultHelpers_prevItem: typeof prevItem;
37
+ declare namespace defaultHelpers {
38
+ export { defaultHelpers_getAsset as getAsset, defaultHelpers_getLink as getLink, defaultHelpers_getNavClass as getNavClass, defaultHelpers_getParamLink as getParamLink, defaultHelpers_getSitemapLink as getSitemapLink, defaultHelpers_list as list, defaultHelpers_markdown as markdown, defaultHelpers_nextItem as nextItem, defaultHelpers_prevItem as prevItem };
39
+ }
40
+
41
+ declare const helpers: typeof defaultHelpers;
3
42
  type Page = {
4
43
  slug: string;
5
44
  link?: string;
@@ -80,4 +119,4 @@ type PaginatedResult<T extends Page> = {
80
119
  };
81
120
  declare function paginate<T extends Page>({ collection, size, sortBy, order, }: PaginateParams<T>): PaginatedResult<T>[];
82
121
 
83
- export { type Page, getSlug, getSorter, getTemplate, load, loadJSON, loadMarkdown, paginate, render };
122
+ export { type Page, getSlug, getSorter, getTemplate, helpers, load, loadJSON, loadMarkdown, paginate, render };
package/dist/index.js CHANGED
@@ -94,6 +94,7 @@ var prevItem = (context, options) => {
94
94
  };
95
95
 
96
96
  // lib/goffre.ts
97
+ var helpers = helpers_exports;
97
98
  var require2 = createRequire(import.meta.url);
98
99
  var { readFile, outputFile } = fs;
99
100
  var DEFAULT_DATA_PATH = path.join(process.cwd(), "data");
@@ -387,6 +388,7 @@ export {
387
388
  getSlug,
388
389
  getSorter,
389
390
  getTemplate,
391
+ helpers,
390
392
  load,
391
393
  loadJSON,
392
394
  loadMarkdown,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moonwave99/goffre",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Mini static site generator",
5
5
  "author": {
6
6
  "name": "Diego Caponera",