docula 1.6.0 → 1.7.0
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/dist/docula.d.ts +3 -0
- package/dist/docula.js +79 -0
- package/package.json +1 -1
package/dist/docula.d.ts
CHANGED
|
@@ -363,6 +363,9 @@ declare class DoculaBuilder {
|
|
|
363
363
|
buildRobotsPage(options: DoculaOptions): Promise<void>;
|
|
364
364
|
buildSiteMapPage(data: DoculaData): Promise<void>;
|
|
365
365
|
buildFeedPage(data: DoculaData): Promise<void>;
|
|
366
|
+
buildChangelogFeedJson(data: DoculaData): Promise<void>;
|
|
367
|
+
buildChangelogLatestFeedJson(data: DoculaData): Promise<void>;
|
|
368
|
+
private writeChangelogFeedJson;
|
|
366
369
|
buildLlmsFiles(data: DoculaData): Promise<void>;
|
|
367
370
|
private generateLlmsIndexContent;
|
|
368
371
|
private generateLlmsFullContent;
|
package/dist/docula.js
CHANGED
|
@@ -1360,6 +1360,12 @@ var DoculaBuilder = class {
|
|
|
1360
1360
|
await this.buildFeedPage(doculaData);
|
|
1361
1361
|
this._console.fileBuilt("feed.xml");
|
|
1362
1362
|
}
|
|
1363
|
+
if (doculaData.hasChangelog && doculaData.templates?.changelogEntry) {
|
|
1364
|
+
await this.buildChangelogFeedJson(doculaData);
|
|
1365
|
+
this._console.fileBuilt("changelog.json");
|
|
1366
|
+
await this.buildChangelogLatestFeedJson(doculaData);
|
|
1367
|
+
this._console.fileBuilt("changelog-latest.json");
|
|
1368
|
+
}
|
|
1363
1369
|
if (doculaData.hasDocuments) {
|
|
1364
1370
|
this._console.step("Building documentation pages...");
|
|
1365
1371
|
await this.buildDocsPages(doculaData);
|
|
@@ -1580,6 +1586,12 @@ var DoculaBuilder = class {
|
|
|
1580
1586
|
if (data.documents?.length) {
|
|
1581
1587
|
urls.push({ url: `${data.siteUrl}${data.baseUrl}/feed.xml` });
|
|
1582
1588
|
}
|
|
1589
|
+
if (data.hasChangelog && data.templates?.changelogEntry) {
|
|
1590
|
+
urls.push({ url: `${data.siteUrl}${data.baseUrl}/changelog.json` });
|
|
1591
|
+
urls.push({
|
|
1592
|
+
url: `${data.siteUrl}${data.baseUrl}/changelog-latest.json`
|
|
1593
|
+
});
|
|
1594
|
+
}
|
|
1583
1595
|
if (data.openApiUrl && data.templates?.api) {
|
|
1584
1596
|
urls.push({
|
|
1585
1597
|
url: `${data.siteUrl}${data.apiUrl}`
|
|
@@ -1663,6 +1675,73 @@ var DoculaBuilder = class {
|
|
|
1663
1675
|
await fs3.promises.mkdir(data.output, { recursive: true });
|
|
1664
1676
|
await fs3.promises.writeFile(feedPath, xml, "utf8");
|
|
1665
1677
|
}
|
|
1678
|
+
async buildChangelogFeedJson(data) {
|
|
1679
|
+
const entries = data.changelogEntries;
|
|
1680
|
+
if (!entries?.length) {
|
|
1681
|
+
return;
|
|
1682
|
+
}
|
|
1683
|
+
await this.writeChangelogFeedJson(data, entries, "changelog.json");
|
|
1684
|
+
}
|
|
1685
|
+
async buildChangelogLatestFeedJson(data) {
|
|
1686
|
+
const entries = data.changelogEntries;
|
|
1687
|
+
if (!entries?.length) {
|
|
1688
|
+
return;
|
|
1689
|
+
}
|
|
1690
|
+
const latestEntries = entries.slice(0, this.options.changelogPerPage);
|
|
1691
|
+
await this.writeChangelogFeedJson(
|
|
1692
|
+
data,
|
|
1693
|
+
latestEntries,
|
|
1694
|
+
"changelog-latest.json"
|
|
1695
|
+
);
|
|
1696
|
+
}
|
|
1697
|
+
async writeChangelogFeedJson(data, entries, filename) {
|
|
1698
|
+
const feedUrl = this.buildAbsoluteSiteUrl(
|
|
1699
|
+
data.siteUrl,
|
|
1700
|
+
`${data.baseUrl}/${filename}`
|
|
1701
|
+
);
|
|
1702
|
+
const homeUrl = this.buildAbsoluteSiteUrl(data.siteUrl, `${data.baseUrl}/`);
|
|
1703
|
+
const items = entries.map((entry) => {
|
|
1704
|
+
const itemUrl = this.buildAbsoluteSiteUrl(
|
|
1705
|
+
data.siteUrl,
|
|
1706
|
+
`${data.changelogUrl}/${entry.slug}/`
|
|
1707
|
+
);
|
|
1708
|
+
const item = {
|
|
1709
|
+
id: entry.slug,
|
|
1710
|
+
title: entry.title,
|
|
1711
|
+
url: itemUrl,
|
|
1712
|
+
date_published: entry.date,
|
|
1713
|
+
date_modified: entry.lastModified,
|
|
1714
|
+
summary: entry.preview
|
|
1715
|
+
};
|
|
1716
|
+
if (entry.generatedHtml) {
|
|
1717
|
+
item.content_html = entry.generatedHtml;
|
|
1718
|
+
}
|
|
1719
|
+
if (entry.content) {
|
|
1720
|
+
item.content_text = entry.content;
|
|
1721
|
+
}
|
|
1722
|
+
if (entry.tag) {
|
|
1723
|
+
item.tags = [entry.tag];
|
|
1724
|
+
}
|
|
1725
|
+
if (entry.previewImage) {
|
|
1726
|
+
item.image = entry.previewImage;
|
|
1727
|
+
}
|
|
1728
|
+
return item;
|
|
1729
|
+
});
|
|
1730
|
+
const feed = {
|
|
1731
|
+
version: "https://jsonfeed.org/version/1.1",
|
|
1732
|
+
title: data.siteTitle,
|
|
1733
|
+
description: data.siteDescription,
|
|
1734
|
+
home_page_url: homeUrl,
|
|
1735
|
+
feed_url: feedUrl,
|
|
1736
|
+
items
|
|
1737
|
+
};
|
|
1738
|
+
await fs3.promises.mkdir(data.output, { recursive: true });
|
|
1739
|
+
await fs3.promises.writeFile(
|
|
1740
|
+
`${data.output}/${filename}`,
|
|
1741
|
+
JSON.stringify(feed, null, 2),
|
|
1742
|
+
"utf8"
|
|
1743
|
+
);
|
|
1744
|
+
}
|
|
1666
1745
|
async buildLlmsFiles(data) {
|
|
1667
1746
|
if (!this.options.enableLlmsTxt) {
|
|
1668
1747
|
return;
|