page-templator 1.0.1 → 1.0.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/lib/index.d.ts CHANGED
@@ -0,0 +1,4 @@
1
+ import { ITemplateBase, TArticleItem, TTemplateSettings } from './consts/types';
2
+ import { TemplateDarkBootstrap } from './templates/bootstrapDark';
3
+ import { TemplateBase } from './templates/base';
4
+ export { TemplateDarkBootstrap, TemplateBase, ITemplateBase, TArticleItem, TTemplateSettings };
package/lib/index.js CHANGED
@@ -1,2 +1,4 @@
1
- "use strict";
1
+ import { TemplateDarkBootstrap } from './templates/bootstrapDark';
2
+ import { TemplateBase } from './templates/base';
3
+ export { TemplateDarkBootstrap, TemplateBase };
2
4
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAkD,CAAA"}
@@ -3,16 +3,16 @@ class TemplateBase {
3
3
  this._settings = settings;
4
4
  }
5
5
  getHeadSection() {
6
- return `<meta charset="UTF-8" />
7
- <meta
8
- name="viewport"
9
- content="width=device-width, initial-scale=1, shrink-to-fit=no"
10
- />
11
- <meta http-equiv="x-ua-compatible" content="ie=edge" />
12
- <title>{TITLE}</title>
13
- <meta name="description" content="{DESCRIPTION}">
14
- <meta name="keywords" content="{KEYWORDS}">
15
- <meta name="author" content="{AUTHOR}">
6
+ return `<meta charset="UTF-8" />
7
+ <meta
8
+ name="viewport"
9
+ content="width=device-width, initial-scale=1, shrink-to-fit=no"
10
+ />
11
+ <meta http-equiv="x-ua-compatible" content="ie=edge" />
12
+ <title>{TITLE}</title>
13
+ <meta name="description" content="{DESCRIPTION}">
14
+ <meta name="keywords" content="{KEYWORDS}">
15
+ <meta name="author" content="{AUTHOR}">
16
16
  <link rel="icon" href="favicon.ico" type="image/x-icon" />`;
17
17
  }
18
18
  getBodyStart() {
@@ -28,16 +28,16 @@ class TemplateBase {
28
28
  return ``;
29
29
  }
30
30
  }
31
- export const fullpageTmpl = `<!DOCTYPE html>
32
- <html lang="{LANG}">
33
- <head>
34
- {HEAD_SECTION}
35
- </head>
36
- <body>
37
- {BODY_START}
38
- {CONTENT}
39
- {BODY_END}
40
- </body>
31
+ export const fullpageTmpl = `<!DOCTYPE html>
32
+ <html lang="{LANG}">
33
+ <head>
34
+ {HEAD_SECTION}
35
+ </head>
36
+ <body>
37
+ {BODY_START}
38
+ {CONTENT}
39
+ {BODY_END}
40
+ </body>
41
41
  </html>`;
42
42
  export { TemplateBase };
43
43
  //# sourceMappingURL=base.js.map
@@ -2,70 +2,70 @@ import _ from 'lodash';
2
2
  import { fullpageTmpl, TemplateBase } from './base';
3
3
  class TemplateDarkBootstrap extends TemplateBase {
4
4
  getHeadSection() {
5
- return `
6
- ${super.getHeadSection()}
7
- <link
8
- rel="stylesheet"
9
- href="https://use.fontawesome.com/releases/v5.15.2/css/all.css"
10
- />
11
- <link
12
- rel="stylesheet"
13
- href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"
14
- />
15
- <link rel="stylesheet" href="/wp-content/themes/wp/css/mdb.dark.min.css" />
5
+ return `
6
+ ${super.getHeadSection()}
7
+ <link
8
+ rel="stylesheet"
9
+ href="https://use.fontawesome.com/releases/v5.15.2/css/all.css"
10
+ />
11
+ <link
12
+ rel="stylesheet"
13
+ href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"
14
+ />
15
+ <link rel="stylesheet" href="/wp-content/themes/wp/css/mdb.dark.min.css" />
16
16
  `;
17
17
  }
18
18
  getBodyStart() {
19
- return `
20
- <header>
21
- <div
22
- class="p-5 text-center bg-image "
23
- style="
24
- height: 350px;
25
- background-image: url(<!--BACKGROUNDURL-->);
26
- "
27
- >
28
- <div class="mask" style="background-color: rgba(0, 0, 0, 0.6)">
29
- <div class="d-flex justify-content-center align-items-center h-100">
30
- <div class="text-white">
31
- <h1 class="mb-3">{H1}</h1>
32
- <h4 class="mb-3">
33
- <!--SUBHEADING-->
34
- </h4>
35
- <form class="d-flex input-group w-auto" method="GET" action="/">
36
- <div class="input-group">
37
- <input
38
- name="q"
39
- type="search"
40
- class="form-control rounded"
41
- placeholder="<!--SEARCHPLACEHOLDER-->"
42
- aria-label="Search"
43
- aria-describedby="search-addon"
44
- />
45
- <div class="input-group-text">
46
- <button class="input-group-text border-0">
47
- <i class="fas fa-search"></i>
48
- </button>
49
- </div>
50
- </div>
51
- </form>
52
- </div>
53
- </div>
54
- </div>
55
- </div>
56
- </header>
19
+ return `
20
+ <header>
21
+ <div
22
+ class="p-5 text-center bg-image "
23
+ style="
24
+ height: 350px;
25
+ background-image: url(<!--BACKGROUNDURL-->);
26
+ "
27
+ >
28
+ <div class="mask" style="background-color: rgba(0, 0, 0, 0.6)">
29
+ <div class="d-flex justify-content-center align-items-center h-100">
30
+ <div class="text-white">
31
+ <h1 class="mb-3">{H1}</h1>
32
+ <h4 class="mb-3">
33
+ <!--SUBHEADING-->
34
+ </h4>
35
+ <form class="d-flex input-group w-auto" method="GET" action="/">
36
+ <div class="input-group">
37
+ <input
38
+ name="q"
39
+ type="search"
40
+ class="form-control rounded"
41
+ placeholder="<!--SEARCHPLACEHOLDER-->"
42
+ aria-label="Search"
43
+ aria-describedby="search-addon"
44
+ />
45
+ <div class="input-group-text">
46
+ <button class="input-group-text border-0">
47
+ <i class="fas fa-search"></i>
48
+ </button>
49
+ </div>
50
+ </div>
51
+ </form>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </header>
57
57
  `;
58
58
  }
59
59
  getBodyEnd() {
60
- return `
61
- <script type="text/javascript" src="/wp-content/themes/wp/js/mdb.min.js"></script>
60
+ return `
61
+ <script type="text/javascript" src="/wp-content/themes/wp/js/mdb.min.js"></script>
62
62
  `;
63
63
  }
64
64
  getContent(opts) {
65
65
  switch (opts?.pageType) {
66
66
  case 'main':
67
- return `
68
- ${this.getNewsList(opts?.articleItems)}
67
+ return `
68
+ ${this.getNewsList(opts?.articleItems)}
69
69
  `;
70
70
  case 'article':
71
71
  return this.getArticle(opts?.articleContent);
@@ -93,14 +93,14 @@ class TemplateDarkBootstrap extends TemplateBase {
93
93
  return html;
94
94
  }
95
95
  getArticle(articleContent) {
96
- return `
97
- <div class="container my-5">
98
- <div class="row">
99
- <div class="col-lg-8 col-md-12 mb-4">
100
- ${articleContent || 'Loading...'}
101
- </div>
102
- </div>
103
- </div>
96
+ return `
97
+ <div class="container my-5">
98
+ <div class="row">
99
+ <div class="col-lg-8 col-md-12 mb-4">
100
+ ${articleContent || 'Loading...'}
101
+ </div>
102
+ </div>
103
+ </div>
104
104
  `;
105
105
  }
106
106
  getNewsList(articleItems) {
@@ -122,39 +122,39 @@ class TemplateDarkBootstrap extends TemplateBase {
122
122
  const continueText = _.shuffle(['Watch', 'Read'])[0];
123
123
  rows += this.getRow(articleItems.slice(i, i + rowPerCount), rowType, continueText);
124
124
  }
125
- return `
126
- <div class="container h-100 my-5">
127
- <section>
128
- <div class="text-center">
129
- <h4><strong>TREND NEWS</strong></h4>
130
- <hr class="my-4" />
131
- </div>
132
- ${rows}
133
- <hr class="my-4" />
134
- </section>
135
- </div>
125
+ return `
126
+ <div class="container h-100 my-5">
127
+ <section>
128
+ <div class="text-center">
129
+ <h4><strong>TREND NEWS</strong></h4>
130
+ <hr class="my-4" />
131
+ </div>
132
+ ${rows}
133
+ <hr class="my-4" />
134
+ </section>
135
+ </div>
136
136
  `;
137
137
  }
138
138
  getRow(articleItems, rowType, continueText) {
139
139
  if (!articleItems?.length) {
140
140
  return ``;
141
141
  }
142
- const block1 = `
143
- <div class="col-lg-4 col-md-12 mb-4 align-self-center">
144
- ${this.getRowItem(articleItems[0], rowType, continueText)}
145
- </div>
142
+ const block1 = `
143
+ <div class="col-lg-4 col-md-12 mb-4 align-self-center">
144
+ ${this.getRowItem(articleItems[0], rowType, continueText)}
145
+ </div>
146
146
  `;
147
147
  const rowItem2 = this.getRowItem(articleItems[1], rowType, continueText);
148
148
  const block2 = (rowItem2 &&
149
- `<div class="col-lg-4 col-md-6 mb-4 align-self-center ">
150
- ${rowItem2}
151
- </div>
149
+ `<div class="col-lg-4 col-md-6 mb-4 align-self-center ">
150
+ ${rowItem2}
151
+ </div>
152
152
  `) ||
153
153
  '';
154
154
  const rowItem3 = this.getRowItem(articleItems[2], rowType, continueText);
155
155
  const block3 = (rowItem3 &&
156
- `<div class="col-lg-4 col-md-6 mb-4 align-self-center ">
157
- ${rowItem3}
156
+ `<div class="col-lg-4 col-md-6 mb-4 align-self-center ">
157
+ ${rowItem3}
158
158
  </div>`) ||
159
159
  '';
160
160
  return `<div class="row justify-content-center">${_.shuffle([block1, block2, block3]).join('')}</div>`;
@@ -170,75 +170,75 @@ class TemplateDarkBootstrap extends TemplateBase {
170
170
  const lastUpdated = '';
171
171
  switch (type) {
172
172
  case 'micro':
173
- return `
174
- <div class="card mb-4">
175
- <div class="card-body">
176
- <h5 class="card-title">${title}</h5>
177
- <p class="card-text"></p>
178
- <a href='${href}' target="_blank" class="btn btn-primary">${continueText}</a>
179
- </div>
180
- </div>
173
+ return `
174
+ <div class="card mb-4">
175
+ <div class="card-body">
176
+ <h5 class="card-title">${title}</h5>
177
+ <p class="card-text"></p>
178
+ <a href='${href}' target="_blank" class="btn btn-primary">${continueText}</a>
179
+ </div>
180
+ </div>
181
181
  `;
182
182
  case 'img-overlay':
183
- return `
184
- <a href="${href}" target="_blank" class="card bg-dark text-white shadow-1-strong mb-4">
185
- <div class="bg-image">
186
- <img src="${thumb}" alt="${title}" class="img-fluid" loading="lazy" />
187
- <div class="mask" style="background-color: rgba(${_.random(0, 255)}, ${_.random(0, 255)}, ${_.random(0, 255)}, 0.${_.random(600, 700)})"></div>
188
- </div>
189
- <div class="card-img-overlay">
190
- <h2 class="card-title" style="background: #0000008c;padding: 10px;">${title}</h2>
191
- <p class="card-text">${description}</p>
192
- <p class="card-text">${lastUpdated}</p>
193
- </div>
194
- </a>
183
+ return `
184
+ <a href="${href}" target="_blank" class="card bg-dark text-white shadow-1-strong mb-4">
185
+ <div class="bg-image">
186
+ <img src="${thumb}" alt="${title}" class="img-fluid" loading="lazy" />
187
+ <div class="mask" style="background-color: rgba(${_.random(0, 255)}, ${_.random(0, 255)}, ${_.random(0, 255)}, 0.${_.random(600, 700)})"></div>
188
+ </div>
189
+ <div class="card-img-overlay">
190
+ <h2 class="card-title" style="background: #0000008c;padding: 10px;">${title}</h2>
191
+ <p class="card-text">${description}</p>
192
+ <p class="card-text">${lastUpdated}</p>
193
+ </div>
194
+ </a>
195
195
  `;
196
196
  case 'card':
197
- return `
198
- <div class="card mb-4">
199
- <div class="bg-image hover-overlay ripple" data-mdb-ripple-color="light">
200
- <img src="${thumb}" alt="${title}" class="img-fluid" loading="lazy" />
201
- <a href="${href}" target="_blank" >
202
- <div class="mask" style="background-color: rgba(251, 251, 251, 0.15)"></div>
203
- </a>
204
- </div>
205
- <div class="card-body">
206
- <h5 class="card-title">${title}</h5>
207
- <p class="card-text">${description}</p>
208
- <a href="${href}" target="_blank" class="btn btn-primary">${continueText}</a>
209
- </div>
210
- </div>
197
+ return `
198
+ <div class="card mb-4">
199
+ <div class="bg-image hover-overlay ripple" data-mdb-ripple-color="light">
200
+ <img src="${thumb}" alt="${title}" class="img-fluid" loading="lazy" />
201
+ <a href="${href}" target="_blank" >
202
+ <div class="mask" style="background-color: rgba(251, 251, 251, 0.15)"></div>
203
+ </a>
204
+ </div>
205
+ <div class="card-body">
206
+ <h5 class="card-title">${title}</h5>
207
+ <p class="card-text">${description}</p>
208
+ <a href="${href}" target="_blank" class="btn btn-primary">${continueText}</a>
209
+ </div>
210
+ </div>
211
211
  `;
212
212
  case 'card-featured':
213
- return `
214
- <div class="card text-center mb-4">
215
- <div class="card-header bg-white">${featured}</div>
216
- <div class="card-body">
217
- <h5 class="card-title">${title}</h5>
218
- <p class="card-text">${description}</p>
219
- <a href="${href}" target="_blank" class="btn btn-primary">${continueText}</a>
220
- </div>
221
- <div class="card-footer bg-white text-muted">${lastUpdated}</div>
222
- </div>
213
+ return `
214
+ <div class="card text-center mb-4">
215
+ <div class="card-header bg-white">${featured}</div>
216
+ <div class="card-body">
217
+ <h5 class="card-title">${title}</h5>
218
+ <p class="card-text">${description}</p>
219
+ <a href="${href}" target="_blank" class="btn btn-primary">${continueText}</a>
220
+ </div>
221
+ <div class="card-footer bg-white text-muted">${lastUpdated}</div>
222
+ </div>
223
223
  `;
224
224
  case 'card-vertical':
225
- return `
226
- <a href="${href}" target="_blank" class="card mb-4" style="max-width: 540px">
227
- <div class="row g-0">
228
- <div class="col-md-4">
229
- <img src="${thumb}" alt="${title}" loading="lazy" class="accordion-body img-fluid" />
230
- </div>
231
- <div class="col-md-8">
232
- <div class="card-body">
233
- <h5 class="card-title">${title}</h5>
234
- <p class="card-text">${description}</p>
235
- <p class="card-text">
236
- <small class="text-muted">${lastUpdated}</small>
237
- </p>
238
- </div>
239
- </div>
240
- </div>
241
- </a>
225
+ return `
226
+ <a href="${href}" target="_blank" class="card mb-4" style="max-width: 540px">
227
+ <div class="row g-0">
228
+ <div class="col-md-4">
229
+ <img src="${thumb}" alt="${title}" loading="lazy" class="accordion-body img-fluid" />
230
+ </div>
231
+ <div class="col-md-8">
232
+ <div class="card-body">
233
+ <h5 class="card-title">${title}</h5>
234
+ <p class="card-text">${description}</p>
235
+ <p class="card-text">
236
+ <small class="text-muted">${lastUpdated}</small>
237
+ </p>
238
+ </div>
239
+ </div>
240
+ </div>
241
+ </a>
242
242
  `;
243
243
  }
244
244
  return '';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "page-templator",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",