writr 1.7.1 → 1.8.6
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 +18 -4
- package/bin/writr +1 -5
- package/dist/cache.js +0 -2
- package/dist/cache.js.map +1 -1
- package/dist/config.d.ts +4 -1
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/data/dataService.js +7 -9
- package/dist/data/dataService.js.map +1 -1
- package/dist/data/fileDataProvider.js +14 -12
- package/dist/data/fileDataProvider.js.map +1 -1
- package/dist/generator.d.ts +8 -0
- package/dist/generator.js +58 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.js +72 -57
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +6 -0
- package/dist/log.js +17 -0
- package/dist/log.js.map +1 -0
- package/dist/migrate/ghostMigrationProvider.d.ts +9 -0
- package/dist/migrate/ghostMigrationProvider.js +67 -0
- package/dist/migrate/ghostMigrationProvider.js.map +1 -0
- package/dist/migrate/jekyllMigrationProvider.d.ts +4 -0
- package/dist/migrate/jekyllMigrationProvider.js +15 -0
- package/dist/migrate/jekyllMigrationProvider.js.map +1 -0
- package/dist/migrate/mediumMigrationProvider.d.ts +7 -0
- package/dist/migrate/mediumMigrationProvider.js +30 -0
- package/dist/migrate/mediumMigrationProvider.js.map +1 -0
- package/dist/migrate/migrationProviderInterface.d.ts +3 -0
- package/dist/migrate/migrationProviderInterface.js +3 -0
- package/dist/migrate/migrationProviderInterface.js.map +1 -0
- package/dist/migrate/wordpressMigrationProvider.d.ts +12 -0
- package/dist/migrate/wordpressMigrationProvider.js +105 -0
- package/dist/migrate/wordpressMigrationProvider.js.map +1 -0
- package/dist/migrate.d.ts +6 -0
- package/dist/migrate.js +38 -0
- package/dist/migrate.js.map +1 -0
- package/dist/post.js +2 -4
- package/dist/post.js.map +1 -1
- package/dist/render/atomRenderProvider.js +3 -3
- package/dist/render/atomRenderProvider.js.map +1 -1
- package/dist/render/htmRenderlProvider.js +12 -12
- package/dist/render/htmRenderlProvider.js.map +1 -1
- package/dist/render/imageRenderProvider.js +3 -3
- package/dist/render/imageRenderProvider.js.map +1 -1
- package/dist/render/jsonRenderProvider.js +4 -6
- package/dist/render/jsonRenderProvider.js.map +1 -1
- package/dist/serve.d.ts +16 -0
- package/dist/serve.js +33 -0
- package/dist/serve.js.map +1 -0
- package/dist/storage/fileStorageProvider.d.ts +2 -3
- package/dist/storage/fileStorageProvider.js +12 -22
- package/dist/storage/fileStorageProvider.js.map +1 -1
- package/dist/storage/storageProviderInterface.d.ts +1 -0
- package/dist/storage/storageService.d.ts +3 -4
- package/dist/storage/storageService.js +5 -3
- package/dist/storage/storageService.js.map +1 -1
- package/dist/tag.js +3 -4
- package/dist/tag.js.map +1 -1
- package/dist/utils/parser.d.ts +5 -0
- package/dist/utils/parser.js +41 -0
- package/dist/utils/parser.js.map +1 -0
- package/dist/utils/setup.d.ts +8 -0
- package/dist/utils/setup.js +79 -0
- package/dist/utils/setup.js.map +1 -0
- package/init/article-complex.md +40 -0
- package/init/article-ejs.md +40 -0
- package/init/article-unpublished.md +11 -0
- package/init/article1-simple.md +13 -0
- package/init/article1.md +11 -0
- package/init/article2.md +14 -0
- package/init/big-content.md +11 -0
- package/init/config.json +9 -0
- package/init/images/Introducing Docula 1.png +0 -0
- package/init/images/Introducing Docula 2.jpeg +0 -0
- package/init/images/Introducing Docula 3.png +0 -0
- package/init/images/Introducing Docula 4.png +0 -0
- package/init/permalink-test.md +13 -0
- package/init/templates/index.hjs +13 -0
- package/init/templates/partials/header.hjs +2 -0
- package/init/templates/post.hjs +19 -0
- package/init/templates/post2.hjs +17 -0
- package/init/templates/post3.ejs +7 -0
- package/init/templates/tag.hjs +9 -0
- package/package.json +25 -19
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GhostMigrationProvider = void 0;
|
|
4
|
+
const got_1 = require("got");
|
|
5
|
+
const log_1 = require("../log");
|
|
6
|
+
const parser_1 = require("../utils/parser");
|
|
7
|
+
const storageService_1 = require("../storage/storageService");
|
|
8
|
+
class GhostMigrationProvider {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.parser = new parser_1.Parser();
|
|
11
|
+
this.storage = new storageService_1.StorageService();
|
|
12
|
+
}
|
|
13
|
+
async fetchPosts(src) {
|
|
14
|
+
try {
|
|
15
|
+
const url = new URL(src);
|
|
16
|
+
const { searchParams, origin } = url;
|
|
17
|
+
const key = searchParams.get('key');
|
|
18
|
+
let totalPosts;
|
|
19
|
+
const { posts, meta } = await (0, got_1.default)(`${origin}/ghost/api/v2/content/posts/?key=${key}`).json();
|
|
20
|
+
totalPosts = [...posts];
|
|
21
|
+
const { pagination: { pages } } = meta;
|
|
22
|
+
for (let i = 2; i <= pages; i++) {
|
|
23
|
+
const { posts } = await (0, got_1.default)(`${origin}/ghost/api/v2/content/posts/?key=${key}&page=${i}`).json();
|
|
24
|
+
totalPosts = totalPosts.concat(posts);
|
|
25
|
+
}
|
|
26
|
+
return totalPosts;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
throw new Error(error.message);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async saveMedia(mediaFetched, dest) {
|
|
33
|
+
const { mediaUrl, slug } = mediaFetched;
|
|
34
|
+
const response = await (0, got_1.default)(mediaUrl);
|
|
35
|
+
const { rawBody: media, headers } = response;
|
|
36
|
+
const mime_type = headers['content-type'];
|
|
37
|
+
const extension = mime_type.split('/')[1];
|
|
38
|
+
const filename = `${slug}.${extension}`;
|
|
39
|
+
await this.storage.set(`${dest}/images/${filename}`, media);
|
|
40
|
+
return `/images/${filename}`;
|
|
41
|
+
}
|
|
42
|
+
async migrate(src, dest) {
|
|
43
|
+
try {
|
|
44
|
+
new log_1.ConsoleMessage().info('Migrating from Ghost to Writr');
|
|
45
|
+
const posts = await this.fetchPosts(src);
|
|
46
|
+
for (const post of posts) {
|
|
47
|
+
const { title, slug, html, feature_image, published_at } = post;
|
|
48
|
+
// Markdown header generation
|
|
49
|
+
let mdContent = this.parser.generateMdHeaders({ title, slug, date: published_at });
|
|
50
|
+
if (feature_image) {
|
|
51
|
+
const mediaPath = await this.saveMedia({ mediaUrl: feature_image, slug }, dest);
|
|
52
|
+
mdContent += `\n\n`;
|
|
53
|
+
}
|
|
54
|
+
// Markdown html content
|
|
55
|
+
mdContent += this.parser.htmlToMd(html);
|
|
56
|
+
await this.storage.set(`${dest}/${slug}.md`, mdContent);
|
|
57
|
+
}
|
|
58
|
+
new log_1.ConsoleMessage().info("Migration was completed successfully");
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
throw new Error('Error while migrating Ghost site: ' + src);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.GhostMigrationProvider = GhostMigrationProvider;
|
|
67
|
+
//# sourceMappingURL=ghostMigrationProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghostMigrationProvider.js","sourceRoot":"","sources":["../../src/migrate/ghostMigrationProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JekyllMigrationProvider = void 0;
|
|
4
|
+
const storageService_1 = require("../storage/storageService");
|
|
5
|
+
const log_1 = require("../log");
|
|
6
|
+
class JekyllMigrationProvider {
|
|
7
|
+
async migrate(src, dest) {
|
|
8
|
+
new log_1.ConsoleMessage().info("Migrating Jekyll site from " + src + " to " + dest);
|
|
9
|
+
await new storageService_1.StorageService().copy(src + "/_posts", dest);
|
|
10
|
+
await new storageService_1.StorageService().copy(src + "/images", dest + '/images');
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.JekyllMigrationProvider = JekyllMigrationProvider;
|
|
15
|
+
//# sourceMappingURL=jekyllMigrationProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jekyllMigrationProvider.js","sourceRoot":"","sources":["../../src/migrate/jekyllMigrationProvider.ts"],"names":[],"mappings":";;;AAAA,8DAAyD;AAEzD,gCAAsC;AAEtC,MAAa,uBAAuB;IAEhC,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAY;QACnC,IAAI,oBAAc,EAAE,CAAC,IAAI,CAAC,6BAA6B,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;QAC/E,MAAM,IAAI,+BAAc,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,EAAG,IAAI,CAAC,CAAC;QACxD,MAAM,IAAI,+BAAc,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,EAAG,IAAI,GAAG,SAAS,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ;AATD,0DASC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MigrationProviderInterface } from "./migrationProviderInterface";
|
|
2
|
+
export declare class MediumMigrationProvider implements MigrationProviderInterface {
|
|
3
|
+
parser: any;
|
|
4
|
+
storage: any;
|
|
5
|
+
constructor();
|
|
6
|
+
migrate(src: string, dest: string): Promise<boolean>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MediumMigrationProvider = void 0;
|
|
4
|
+
const fs = require("fs-extra");
|
|
5
|
+
const log_1 = require("../log");
|
|
6
|
+
const storageService_1 = require("../storage/storageService");
|
|
7
|
+
const parser_1 = require("../utils/parser");
|
|
8
|
+
class MediumMigrationProvider {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.parser = new parser_1.Parser();
|
|
11
|
+
this.storage = new storageService_1.StorageService();
|
|
12
|
+
}
|
|
13
|
+
async migrate(src, dest) {
|
|
14
|
+
new log_1.ConsoleMessage().info("Migrating Medium post from " + src + " to " + dest);
|
|
15
|
+
const files = new storageService_1.StorageService().readDir(`${src}/posts`);
|
|
16
|
+
const bodyRegex = /\<body[^>]*\>([^]*)\<\/body/m;
|
|
17
|
+
files.forEach((file) => {
|
|
18
|
+
const slug = file.replace(".html", "");
|
|
19
|
+
const html = fs.readFileSync(`${src}/posts/${file}`, "utf8");
|
|
20
|
+
const [, content] = html.match(bodyRegex) || [];
|
|
21
|
+
const headerMd = this.parser.generateMdHeaders({ slug });
|
|
22
|
+
const bodyMd = this.parser.htmlToMd(content);
|
|
23
|
+
const contentMd = headerMd + bodyMd;
|
|
24
|
+
fs.outputFileSync(`${dest}/${slug}.md`, contentMd);
|
|
25
|
+
});
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.MediumMigrationProvider = MediumMigrationProvider;
|
|
30
|
+
//# sourceMappingURL=mediumMigrationProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediumMigrationProvider.js","sourceRoot":"","sources":["../../src/migrate/mediumMigrationProvider.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAE/B,gCAAsC;AACtC,8DAAyD;AACzD,4CAAuC;AAEvC,MAAa,uBAAuB;IAKnC;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAY;QACtC,IAAI,oBAAc,EAAE,CAAC,IAAI,CAAC,6BAA6B,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,IAAI,+BAAc,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,8BAA8B,CAAC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,GAAG,UAAU,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;YACpC,EAAE,CAAC,cAAc,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,EAAE,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC;IACb,CAAC;CAED;AA5BD,0DA4BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrationProviderInterface.js","sourceRoot":"","sources":["../../src/migrate/migrationProviderInterface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MigrationProviderInterface } from "./migrationProviderInterface";
|
|
2
|
+
export declare class WordpressMigrationProvider implements MigrationProviderInterface {
|
|
3
|
+
parser: any;
|
|
4
|
+
storage: any;
|
|
5
|
+
constructor();
|
|
6
|
+
fetchPosts(src: string): Promise<Record<string, any>[]>;
|
|
7
|
+
fetchMedia(src: string, id: string): Promise<unknown>;
|
|
8
|
+
saveMedia(mediaFetched: any, dest: string): Promise<string | null>;
|
|
9
|
+
fetchCategoriesPerPost(src: string, postId: string): Promise<Record<string, any>[]>;
|
|
10
|
+
fetchTagsPerPost(src: string, postId: string): Promise<Record<string, any>[]>;
|
|
11
|
+
migrate(src: string, dest: string): Promise<boolean>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WordpressMigrationProvider = void 0;
|
|
4
|
+
const got_1 = require("got");
|
|
5
|
+
const parser_1 = require("../utils/parser");
|
|
6
|
+
const storageService_1 = require("../storage/storageService");
|
|
7
|
+
const log_1 = require("../log");
|
|
8
|
+
class WordpressMigrationProvider {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.parser = new parser_1.Parser();
|
|
11
|
+
this.storage = new storageService_1.StorageService();
|
|
12
|
+
}
|
|
13
|
+
async fetchPosts(src) {
|
|
14
|
+
try {
|
|
15
|
+
let posts;
|
|
16
|
+
const response = await (0, got_1.default)(`${src}/wp-json/wp/v2/posts?page=1`);
|
|
17
|
+
const headers = response.headers;
|
|
18
|
+
const body = JSON.parse(response.body);
|
|
19
|
+
const pages = headers['x-wp-totalpages'];
|
|
20
|
+
posts = [...body];
|
|
21
|
+
for (let i = 2; i <= parseInt(pages); i++) {
|
|
22
|
+
const body = await (0, got_1.default)(`${src}/wp-json/wp/v2/posts?page=${i}`).json();
|
|
23
|
+
posts = posts.concat(body);
|
|
24
|
+
}
|
|
25
|
+
return posts;
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
throw new Error(error.message);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async fetchMedia(src, id) {
|
|
32
|
+
try {
|
|
33
|
+
return await (0, got_1.default)(`${src}/wp-json/wp/v2/media/${id}`).json();
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async saveMedia(mediaFetched, dest) {
|
|
40
|
+
try {
|
|
41
|
+
if (!mediaFetched)
|
|
42
|
+
return null;
|
|
43
|
+
const { source_url, slug, mime_type } = mediaFetched;
|
|
44
|
+
const encodedURI = encodeURI(source_url);
|
|
45
|
+
const media = await (0, got_1.default)(encodedURI).buffer();
|
|
46
|
+
const extension = mime_type.split('/')[1];
|
|
47
|
+
const filename = `${slug}.${extension}`;
|
|
48
|
+
await this.storage.set(`${dest}/images/${filename}`, media);
|
|
49
|
+
return `/images/${filename}`;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async fetchCategoriesPerPost(src, postId) {
|
|
56
|
+
try {
|
|
57
|
+
return await (0, got_1.default)(`${src}/wp-json/wp/v2/categories?post=${postId}`).json();
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async fetchTagsPerPost(src, postId) {
|
|
64
|
+
try {
|
|
65
|
+
return await (0, got_1.default)(`${src}/wp-json/wp/v2/tags?post=${postId}`).json();
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async migrate(src, dest) {
|
|
72
|
+
new log_1.ConsoleMessage().info("Migrating WordPress site from " + src + " to " + dest);
|
|
73
|
+
try {
|
|
74
|
+
const posts = await this.fetchPosts(src);
|
|
75
|
+
for (const post of posts) {
|
|
76
|
+
const { id, title, slug, date, content, featured_media } = post;
|
|
77
|
+
// Get post categories
|
|
78
|
+
const categoriesData = await this.fetchCategoriesPerPost(src, id);
|
|
79
|
+
const tagsData = await this.fetchTagsPerPost(src, id);
|
|
80
|
+
const categories = categoriesData.map((category) => category.name);
|
|
81
|
+
const tags = tagsData.map((tag) => tag.name);
|
|
82
|
+
// Markdown header generation
|
|
83
|
+
let mdContent = this.parser.generateMdHeaders({
|
|
84
|
+
title: title.rendered, slug, categories, tags, date
|
|
85
|
+
});
|
|
86
|
+
// Markdown media content
|
|
87
|
+
if (featured_media) {
|
|
88
|
+
const mediaFetched = await this.fetchMedia(src, featured_media);
|
|
89
|
+
const mediaPath = await this.saveMedia(mediaFetched, dest);
|
|
90
|
+
mdContent += `\n\n`;
|
|
91
|
+
}
|
|
92
|
+
// Markdown html content
|
|
93
|
+
mdContent += this.parser.htmlToMd(content.rendered);
|
|
94
|
+
await this.storage.set(`${dest}/${slug}.md`, mdContent);
|
|
95
|
+
}
|
|
96
|
+
new log_1.ConsoleMessage().info("Migration was completed successfully");
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
throw new Error('Error while migrating WordPress site: ' + src);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.WordpressMigrationProvider = WordpressMigrationProvider;
|
|
105
|
+
//# sourceMappingURL=wordpressMigrationProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordpressMigrationProvider.js","sourceRoot":"","sources":["../../src/migrate/wordpressMigrationProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/migrate.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migrate = void 0;
|
|
4
|
+
const jekyllMigrationProvider_1 = require("./migrate/jekyllMigrationProvider");
|
|
5
|
+
const wordpressMigrationProvider_1 = require("./migrate/wordpressMigrationProvider");
|
|
6
|
+
const ghostMigrationProvider_1 = require("./migrate/ghostMigrationProvider");
|
|
7
|
+
const mediumMigrationProvider_1 = require("./migrate/mediumMigrationProvider");
|
|
8
|
+
class Migrate {
|
|
9
|
+
constructor(provider) {
|
|
10
|
+
switch (provider) {
|
|
11
|
+
case "jekyll":
|
|
12
|
+
this.provider = new jekyllMigrationProvider_1.JekyllMigrationProvider();
|
|
13
|
+
break;
|
|
14
|
+
case "wordpress":
|
|
15
|
+
this.provider = new wordpressMigrationProvider_1.WordpressMigrationProvider();
|
|
16
|
+
break;
|
|
17
|
+
case "ghost":
|
|
18
|
+
this.provider = new ghostMigrationProvider_1.GhostMigrationProvider();
|
|
19
|
+
break;
|
|
20
|
+
case "medium":
|
|
21
|
+
this.provider = new mediumMigrationProvider_1.MediumMigrationProvider();
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
throw new Error("Unknown migration provider: " + provider);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async migrate(src, dest) {
|
|
28
|
+
if (!src || !dest) {
|
|
29
|
+
throw new Error("Source and destination must be specified");
|
|
30
|
+
}
|
|
31
|
+
await this.getProvider().migrate(src, dest);
|
|
32
|
+
}
|
|
33
|
+
getProvider() {
|
|
34
|
+
return this.provider;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.Migrate = Migrate;
|
|
38
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":";;;AAAA,+EAA0E;AAC1E,qFAAgF;AAChF,6EAAwE;AACxE,+EAA0E;AAE1E,MAAa,OAAO;IAGhB,YAAY,QAAgB;QACxB,QAAQ,QAAQ,EAAE;YACd,KAAK,QAAQ;gBACT,IAAI,CAAC,QAAQ,GAAG,IAAI,iDAAuB,EAAE,CAAC;gBAC9C,MAAM;YACV,KAAK,WAAW;gBACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,uDAA0B,EAAE,CAAC;gBACjD,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,QAAQ,GAAG,IAAI,+CAAsB,EAAE,CAAC;gBAC7C,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,CAAC,QAAQ,GAAG,IAAI,iDAAuB,EAAE,CAAC;gBAC9C,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,QAAQ,CAAC,CAAC;SAClE;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAY;QACnC,IAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC/D;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CAEJ;AAjCD,0BAiCC"}
|
package/dist/post.js
CHANGED
|
@@ -19,8 +19,7 @@ class Post {
|
|
|
19
19
|
}
|
|
20
20
|
get date() {
|
|
21
21
|
if (Object.prototype.toString.call(this.matter.date) !== "[object Date]") {
|
|
22
|
-
|
|
23
|
-
return newDate;
|
|
22
|
+
return luxon_1.DateTime.fromISO(this.matter.date).toJSDate();
|
|
24
23
|
}
|
|
25
24
|
else {
|
|
26
25
|
return this.matter.date;
|
|
@@ -187,8 +186,7 @@ class Post {
|
|
|
187
186
|
return result;
|
|
188
187
|
}
|
|
189
188
|
static create(obj) {
|
|
190
|
-
|
|
191
|
-
return result;
|
|
189
|
+
return Object.assign(new Post(), obj);
|
|
192
190
|
}
|
|
193
191
|
}
|
|
194
192
|
exports.Post = Post;
|
package/dist/post.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../src/post.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../src/post.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AtomRenderProvider = void 0;
|
|
4
|
-
const winston_1 = require("winston");
|
|
5
4
|
const feed_1 = require("feed");
|
|
6
5
|
const storageService_1 = require("../storage/storageService");
|
|
6
|
+
const log_1 = require("../log");
|
|
7
7
|
class AtomRenderProvider {
|
|
8
8
|
constructor() {
|
|
9
|
-
this.log =
|
|
9
|
+
this.log = new log_1.ConsoleMessage();
|
|
10
10
|
}
|
|
11
11
|
async render(data, config) {
|
|
12
12
|
let result = true;
|
|
@@ -47,7 +47,7 @@ class AtomRenderProvider {
|
|
|
47
47
|
atomFeed.addItem(feedPost);
|
|
48
48
|
}
|
|
49
49
|
//write the feed atom.xml
|
|
50
|
-
await new storageService_1.StorageService(
|
|
50
|
+
await new storageService_1.StorageService().set(config.output + "/atom.xml", atomFeed.atom1());
|
|
51
51
|
return result;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomRenderProvider.js","sourceRoot":"","sources":["../../src/render/atomRenderProvider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"atomRenderProvider.js","sourceRoot":"","sources":["../../src/render/atomRenderProvider.ts"],"names":[],"mappings":";;;AAGA,+BAA4B;AAC5B,8DAA2D;AAC3D,gCAAsC;AAEtC,MAAa,kBAAkB;IAE3B;QACI,IAAI,CAAC,GAAG,GAAG,IAAI,oBAAc,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiB,EAAE,MAAc;QAC1C,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,IAAI,UAAU,GAAQ,EAAE,CAAC;QAEzB,IAAG,MAAM,CAAC,KAAK,EAAE;YACb,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;SACnC;QAED,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC;QAE/B,IAAG,MAAM,CAAC,GAAG,EAAE;YACX,UAAU,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC;YACzC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC;YAC3C,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,cAAc,CAAC;YAEjD,UAAU,CAAC,SAAS,GAAG;gBACnB,IAAI,EAAE,MAAM,CAAC,GAAG,GAAG,WAAW;aACjC,CAAA;SACJ;QAED,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;QAEvB,IAAG,MAAM,CAAC,UAAU,EAAE;YAClB,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;SAC9C;QAED,IAAG,MAAM,CAAC,WAAW,EAAE;YACnB,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;SAChD;QAED,UAAU,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,sBAAsB,CAAC;QAEpF,IAAI,QAAQ,GAAG,IAAI,WAAI,CAAC,UAAU,CAAC,CAAC;QAEpC,kBAAkB;QAClB,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE1D,KAAI,IAAI,IAAI,IAAI,KAAK,EAAE;YAEnB,IAAI,QAAQ,GAAQ,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC1C,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC5C,QAAQ,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACnD,QAAQ,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACpC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAE/B,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC9B;QAED,yBAAyB;QACzB,MAAM,IAAI,+BAAc,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAE9E,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAhED,gDAgEC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HtmlRenderProvider = void 0;
|
|
4
|
-
const winston_1 = require("winston");
|
|
5
|
-
const ecto_1 = require("ecto");
|
|
6
4
|
const fs = require("fs-extra");
|
|
5
|
+
const ecto_1 = require("ecto");
|
|
6
|
+
const log_1 = require("../log");
|
|
7
7
|
const ecto = new ecto_1.Ecto({ defaultEngine: "handlebars" });
|
|
8
8
|
class HtmlRenderProvider {
|
|
9
9
|
constructor() {
|
|
10
|
-
this.log =
|
|
10
|
+
this.log = new log_1.ConsoleMessage();
|
|
11
11
|
ecto.handlebars.opts = { allowProtoPropertiesByDefault: true };
|
|
12
12
|
ecto.handlebars.engine.registerHelper('formatDate', require('helper-date'));
|
|
13
13
|
}
|
|
@@ -22,7 +22,8 @@ class HtmlRenderProvider {
|
|
|
22
22
|
let previousPost;
|
|
23
23
|
let nextPost;
|
|
24
24
|
//published posts
|
|
25
|
-
|
|
25
|
+
for (const post of posts) {
|
|
26
|
+
const index = posts.indexOf(post);
|
|
26
27
|
if (index === 0) {
|
|
27
28
|
previousPost = posts[posts.length - 1];
|
|
28
29
|
}
|
|
@@ -37,9 +38,10 @@ class HtmlRenderProvider {
|
|
|
37
38
|
}
|
|
38
39
|
let postPath = output + "/" + post.id + "/index.html";
|
|
39
40
|
await this.renderPost(post, tags, config, previousPost, nextPost, postPath);
|
|
40
|
-
}
|
|
41
|
+
}
|
|
41
42
|
//unpublished posts
|
|
42
|
-
|
|
43
|
+
for (const post of unpublishedPosts) {
|
|
44
|
+
const index = unpublishedPosts.indexOf(post);
|
|
43
45
|
if (index === 0) {
|
|
44
46
|
previousPost = posts[posts.length - 1];
|
|
45
47
|
}
|
|
@@ -56,27 +58,25 @@ class HtmlRenderProvider {
|
|
|
56
58
|
let postPath = output + "/" + post.id + "/index.html";
|
|
57
59
|
await this.renderPost(post, unpublishedTags, config, previousPost, nextPost, postPath);
|
|
58
60
|
}
|
|
59
|
-
}
|
|
61
|
+
}
|
|
60
62
|
//tags
|
|
61
|
-
|
|
63
|
+
for (const tag of tags) {
|
|
62
64
|
let tagOutputPath = output + "/tags/" + tag.id + "/index.html";
|
|
63
65
|
await this.renderTag(tag, tags, config, tagOutputPath);
|
|
64
|
-
}
|
|
66
|
+
}
|
|
65
67
|
//home
|
|
66
68
|
await this.renderHome(data, config, output + "/index.html");
|
|
67
69
|
return result;
|
|
68
70
|
}
|
|
69
71
|
//render
|
|
70
72
|
async renderHome(data, config, outputPath) {
|
|
71
|
-
let result = "";
|
|
72
73
|
let postList = await data.getPublishedPostsByCount(config.indexCount);
|
|
73
74
|
let tagList = await data.getPublishedTags();
|
|
74
75
|
let dataObject = { tags: tagList, posts: postList };
|
|
75
76
|
let rootTemplatePath = config.path + "/templates/";
|
|
76
77
|
let templateName = await this.getTemplatePath(config.path + "/templates", "index");
|
|
77
78
|
let homeTemplatePath = rootTemplatePath + templateName;
|
|
78
|
-
|
|
79
|
-
return result;
|
|
79
|
+
return await ecto.renderFromFile(homeTemplatePath, dataObject, rootTemplatePath, outputPath);
|
|
80
80
|
}
|
|
81
81
|
async renderTag(tag, tags, config, outputPath) {
|
|
82
82
|
let result = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmRenderlProvider.js","sourceRoot":"","sources":["../../src/render/htmRenderlProvider.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"htmRenderlProvider.js","sourceRoot":"","sources":["../../src/render/htmRenderlProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ImageRenderProvider = void 0;
|
|
4
|
-
const winston_1 = require("winston");
|
|
5
4
|
const storageService_1 = require("../storage/storageService");
|
|
5
|
+
const log_1 = require("../log");
|
|
6
6
|
class ImageRenderProvider {
|
|
7
7
|
constructor() {
|
|
8
|
-
this.log =
|
|
8
|
+
this.log = new log_1.ConsoleMessage();
|
|
9
9
|
}
|
|
10
10
|
async render(data, config) {
|
|
11
11
|
let result = true;
|
|
12
12
|
let output = config.output;
|
|
13
13
|
//images
|
|
14
|
-
await new storageService_1.StorageService(
|
|
14
|
+
await new storageService_1.StorageService().copy(config.path + "/images", output + "/images");
|
|
15
15
|
return result;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageRenderProvider.js","sourceRoot":"","sources":["../../src/render/imageRenderProvider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"imageRenderProvider.js","sourceRoot":"","sources":["../../src/render/imageRenderProvider.ts"],"names":[],"mappings":";;;AAGA,8DAA2D;AAC3D,gCAAsC;AAEtC,MAAa,mBAAmB;IAG5B;QACI,IAAI,CAAC,GAAG,GAAG,IAAI,oBAAc,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiB,EAAE,MAAc;QAC1C,IAAI,MAAM,GAAa,IAAI,CAAC;QAE5B,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE3B,QAAQ;QACR,MAAM,IAAI,+BAAc,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,EAAG,MAAM,GAAG,SAAS,CAAC,CAAC;QAE9E,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAjBD,kDAiBC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.JSONRenderProvider = void 0;
|
|
4
|
-
const winston_1 = require("winston");
|
|
5
4
|
const storageService_1 = require("../storage/storageService");
|
|
5
|
+
const log_1 = require("../log");
|
|
6
6
|
class JSONRenderProvider {
|
|
7
7
|
constructor() {
|
|
8
|
-
this.log =
|
|
8
|
+
this.log = new log_1.ConsoleMessage();
|
|
9
9
|
}
|
|
10
10
|
async render(data, config) {
|
|
11
|
-
let result = false;
|
|
12
11
|
let obj = {};
|
|
13
12
|
obj.posts = new Array();
|
|
14
13
|
obj.tags = new Array();
|
|
@@ -21,9 +20,8 @@ class JSONRenderProvider {
|
|
|
21
20
|
for (let tag of tags) {
|
|
22
21
|
obj.tags.push(await tag.toObject());
|
|
23
22
|
}
|
|
24
|
-
await new storageService_1.StorageService(
|
|
25
|
-
|
|
26
|
-
return result;
|
|
23
|
+
await new storageService_1.StorageService().set(config.output + "/data.json", JSON.stringify(obj));
|
|
24
|
+
return true;
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
27
|
exports.JSONRenderProvider = JSONRenderProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonRenderProvider.js","sourceRoot":"","sources":["../../src/render/jsonRenderProvider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"jsonRenderProvider.js","sourceRoot":"","sources":["../../src/render/jsonRenderProvider.ts"],"names":[],"mappings":";;;AAKA,8DAA2D;AAC3D,gCAAsC;AAEtC,MAAa,kBAAkB;IAG3B;QACI,IAAI,CAAC,GAAG,GAAG,IAAI,oBAAc,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiB,EAAE,MAAc;QAC1C,IAAI,GAAG,GAAQ,EAAE,CAAC;QAClB,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;QAC9B,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,EAAO,CAAC;QAE5B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAEhC,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;YACpB,IAAI,OAAO,GAAQ,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3B;QAED,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACvC;QAED,MAAM,IAAI,+BAAc,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAElF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA5BD,gDA4BC"}
|
package/dist/serve.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SiteGenerator } from "./generator";
|
|
2
|
+
declare type Params = {
|
|
3
|
+
output: string;
|
|
4
|
+
port: string;
|
|
5
|
+
watch: boolean;
|
|
6
|
+
path: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class Serve {
|
|
9
|
+
bs: any;
|
|
10
|
+
params: Params;
|
|
11
|
+
generator: SiteGenerator;
|
|
12
|
+
constructor(options: any);
|
|
13
|
+
buildAndReload(): Promise<void>;
|
|
14
|
+
run(): void;
|
|
15
|
+
}
|
|
16
|
+
export {};
|