project-logbook 0.4.0 → 1.0.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/README.md +36 -1
- package/dist/commands/build.js +34 -76
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/lint.js +7 -2
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/list.js +4 -16
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/log.d.ts +1 -3
- package/dist/commands/log.js +4 -3
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/new.js +1 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/preview.js +1 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/release.js +1 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/start.d.ts +1 -1
- package/dist/commands/start.js +53 -12
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.js +7 -18
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/steer.js +1 -0
- package/dist/commands/steer.js.map +1 -0
- package/dist/commands/upgrade.js +1 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -0
- package/dist/lib/about-content.js +1 -0
- package/dist/lib/about-content.js.map +1 -0
- package/dist/lib/adr-renderer.d.ts +12 -0
- package/dist/lib/adr-renderer.js +53 -0
- package/dist/lib/adr-renderer.js.map +1 -0
- package/dist/lib/build-helpers.js +8 -3
- package/dist/lib/build-helpers.js.map +1 -0
- package/dist/lib/build-steps.d.ts +20 -2
- package/dist/lib/build-steps.js +107 -13
- package/dist/lib/build-steps.js.map +1 -0
- package/dist/lib/config.d.ts +8 -0
- package/dist/lib/config.js +19 -1
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/entry-id.js +1 -0
- package/dist/lib/entry-id.js.map +1 -0
- package/dist/lib/entry-paths.js +1 -0
- package/dist/lib/entry-paths.js.map +1 -0
- package/dist/lib/git-helpers.d.ts +5 -16
- package/dist/lib/git-helpers.js +52 -78
- package/dist/lib/git-helpers.js.map +1 -0
- package/dist/lib/git-url-helpers.d.ts +16 -0
- package/dist/lib/git-url-helpers.js +76 -0
- package/dist/lib/git-url-helpers.js.map +1 -0
- package/dist/lib/hast-helpers.js +1 -0
- package/dist/lib/hast-helpers.js.map +1 -0
- package/dist/lib/html-attributes.js +1 -0
- package/dist/lib/html-attributes.js.map +1 -0
- package/dist/lib/html-escape.js +1 -0
- package/dist/lib/html-escape.js.map +1 -0
- package/dist/lib/image-helpers.js +20 -30
- package/dist/lib/image-helpers.js.map +1 -0
- package/dist/lib/jira-helpers.js +1 -0
- package/dist/lib/jira-helpers.js.map +1 -0
- package/dist/lib/lint-runner.js +1 -0
- package/dist/lib/lint-runner.js.map +1 -0
- package/dist/lib/lint-types.js +1 -0
- package/dist/lib/lint-types.js.map +1 -0
- package/dist/lib/lockfile.js +1 -0
- package/dist/lib/lockfile.js.map +1 -0
- package/dist/lib/logbook-client.js +1 -0
- package/dist/lib/logbook-client.js.map +1 -0
- package/dist/lib/markdown-processors.js +1 -0
- package/dist/lib/markdown-processors.js.map +1 -0
- package/dist/lib/migrations.js +1 -0
- package/dist/lib/migrations.js.map +1 -0
- package/dist/lib/package-version.js +1 -0
- package/dist/lib/package-version.js.map +1 -0
- package/dist/lib/rss.js +1 -0
- package/dist/lib/rss.js.map +1 -0
- package/dist/lib/session.js +47 -35
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/styles.js +1 -0
- package/dist/lib/styles.js.map +1 -0
- package/dist/lib/template-helpers.d.ts +6 -1
- package/dist/lib/template-helpers.js +64 -0
- package/dist/lib/template-helpers.js.map +1 -0
- package/dist/lib/template-types.d.ts +22 -2
- package/dist/lib/template-types.js +1 -0
- package/dist/lib/template-types.js.map +1 -0
- package/dist/lib/templates.d.ts +7 -2
- package/dist/lib/templates.js +54 -34
- package/dist/lib/templates.js.map +1 -0
- package/dist/lib/theme.js +1 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/lib/url-helpers.js +1 -0
- package/dist/lib/url-helpers.js.map +1 -0
- package/dist/linters/diff-to-narrative.d.ts +2 -1
- package/dist/linters/diff-to-narrative.js +3 -10
- package/dist/linters/diff-to-narrative.js.map +1 -0
- package/dist/linters/frontmatter.js +1 -0
- package/dist/linters/frontmatter.js.map +1 -0
- package/dist/linters/index.js +1 -0
- package/dist/linters/index.js.map +1 -0
- package/dist/linters/jira-prefix.js +1 -0
- package/dist/linters/jira-prefix.js.map +1 -0
- package/dist/linters/links.js +26 -4
- package/dist/linters/links.js.map +1 -0
- package/dist/linters/lockfile.js +1 -0
- package/dist/linters/lockfile.js.map +1 -0
- package/dist/linters/placeholders.js +6 -4
- package/dist/linters/placeholders.js.map +1 -0
- package/dist/linters/project-integrity.js +1 -0
- package/dist/linters/project-integrity.js.map +1 -0
- package/dist/linters/readability.js +2 -3
- package/dist/linters/readability.js.map +1 -0
- package/dist/linters/technical-log.js +1 -0
- package/dist/linters/technical-log.js.map +1 -0
- package/dist/linters/workspaces.js +1 -0
- package/dist/linters/workspaces.js.map +1 -0
- package/dist/templates/WELCOME.md +12 -0
- package/dist/templates/index.md +2 -1
- package/dist/templates/logbook-client.js +29 -0
- package/dist/templates/styles.css +205 -32
- package/dist/utils/date.js +1 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +9 -0
- package/dist/utils/frontmatter.js +16 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/fs.d.ts +10 -0
- package/dist/utils/fs.js +112 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/id.js +1 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/log-timeline.d.ts +2 -1
- package/dist/utils/log-timeline.js +1 -0
- package/dist/utils/log-timeline.js.map +1 -0
- package/dist/utils/slug.js +1 -0
- package/dist/utils/slug.js.map +1 -0
- package/dist/utils/string.js +1 -0
- package/dist/utils/string.js.map +1 -0
- package/dist/utils/timeline-helpers.d.ts +2 -2
- package/dist/utils/timeline-helpers.js +5 -2
- package/dist/utils/timeline-helpers.js.map +1 -0
- package/dist/utils/validation.d.ts +5 -0
- package/dist/utils/validation.js +21 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +10 -4
- package/src/templates/WELCOME.md +12 -0
- package/src/templates/index.md +2 -1
- package/src/templates/logbook-client.js +29 -0
- package/src/templates/styles.css +205 -32
package/dist/lib/styles.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/lib/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,UAAU,SAAS,CAAC,YAAoB;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,sDAAsD;IACtD,MAAM,cAAc,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,IAAI,GAAG;iBACE,cAAc;sBACT,cAAc;;;;;;;;;CASnC,CAAC;IACA,OAAO,IAAI,GAAG,SAAS,CAAC;AAC1B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TimelineEntry, TimelineCommitItem, TimelineTagItem, EntryLink, GitCommit } from './template-types.js';
|
|
1
|
+
import type { TimelineEntry, TimelineCommitItem, TimelineTagItem, TimelineAdrItem, EntryLink, GitCommit } from './template-types.js';
|
|
2
2
|
export declare const html: (strings: TemplateStringsArray, ...values: unknown[]) => string;
|
|
3
3
|
export declare const navLink: (entry: EntryLink, dir: "prev" | "next") => string;
|
|
4
4
|
export declare const renderTagsAndWorkspaces: (tags: string[] | undefined, workspaces: string[] | undefined) => string;
|
|
@@ -6,4 +6,9 @@ export declare const renderCommits: (commits: GitCommit[] | undefined, repositor
|
|
|
6
6
|
export declare const renderTimelineEntryItem: (e: TimelineEntry) => string;
|
|
7
7
|
export declare const renderTimelineCommitItem: (c: TimelineCommitItem, jiraBaseUrl?: string, jiraPrefix?: string, repositoryUrl?: string) => string;
|
|
8
8
|
export declare const renderTimelineTagItem: (t: TimelineTagItem, repositoryUrl?: string) => string;
|
|
9
|
+
export declare function getAdrStatusInfo(status: string): {
|
|
10
|
+
badgeClass: string;
|
|
11
|
+
icon: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const renderTimelineAdrItem: (item: TimelineAdrItem) => string;
|
|
9
14
|
export declare const paginationLinks: (currentPage: number, totalPages: number) => string;
|
|
@@ -88,6 +88,69 @@ export const renderTimelineTagItem = (t, repositoryUrl) => {
|
|
|
88
88
|
: `<span class="tag-chip-name">${name}</span>`;
|
|
89
89
|
return `<div class="timeline-item timeline-item--tag"><div class="tag-chip"><span class="tag-chip-icon">🏷</span>${tagHtml}<span class="tag-chip-date" title="${t.timestamp}" ${ATTR_DATA_DATE}="${t.timestamp}">${formatted}</span></div></div>`;
|
|
90
90
|
};
|
|
91
|
+
export function getAdrStatusInfo(status) {
|
|
92
|
+
let badgeClass = 'tag-badge';
|
|
93
|
+
let icon = '📋';
|
|
94
|
+
const norm = status.toLowerCase();
|
|
95
|
+
if (norm === 'accepted') {
|
|
96
|
+
badgeClass += ' tag-feature';
|
|
97
|
+
icon = '✅';
|
|
98
|
+
}
|
|
99
|
+
else if (norm === 'proposed') {
|
|
100
|
+
badgeClass += ' tag-refactor';
|
|
101
|
+
icon = '💡';
|
|
102
|
+
}
|
|
103
|
+
else if (norm === 'superseded') {
|
|
104
|
+
badgeClass += ' tag-superseded';
|
|
105
|
+
icon = '🔄';
|
|
106
|
+
}
|
|
107
|
+
else if (norm === 'rejected') {
|
|
108
|
+
badgeClass += ' tag-bugfix';
|
|
109
|
+
icon = '❌';
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
badgeClass += ' tag-workspace';
|
|
113
|
+
}
|
|
114
|
+
return { badgeClass, icon };
|
|
115
|
+
}
|
|
116
|
+
export const renderTimelineAdrItem = (item) => {
|
|
117
|
+
const adrId = `ADR-${String(item.id).padStart(4, '0')}`;
|
|
118
|
+
const title = escapeHtml(item.title);
|
|
119
|
+
const status = escapeHtml(item.status.toLowerCase());
|
|
120
|
+
const author = escapeHtml(item.author);
|
|
121
|
+
const decisionHtml = item.decisionHtml || escapeHtml(item.decision);
|
|
122
|
+
const displayDate = escapeHtml(item.displayDate);
|
|
123
|
+
// Parse filename/slug for local static site linking
|
|
124
|
+
const stem = item.filepath.split('/').pop()?.replace(/\.md$/i, '') || '';
|
|
125
|
+
const adrUrl = `./adr/${stem}/index.html`;
|
|
126
|
+
const { badgeClass: statusBadgeClass, icon: statusIcon } = getAdrStatusInfo(status);
|
|
127
|
+
const tagsHtml = item.tags && item.tags.length > 0
|
|
128
|
+
? item.tags.map((tag) => `<span class="tag-badge tag-workspace">${escapeHtml(tag)}</span>`).join('')
|
|
129
|
+
: '';
|
|
130
|
+
const headerMeta = html `<span ${ATTR_DATA_DATE}="${item.date}">${displayDate}</span> • Decision Record by ${author}`;
|
|
131
|
+
const cardContent = html `
|
|
132
|
+
<div class="item-content">
|
|
133
|
+
<div class="item-meta">${headerMeta}</div>
|
|
134
|
+
<h3 class="item-title">
|
|
135
|
+
<span class="${statusBadgeClass} adr-status-badge">${statusIcon} ${status}</span>
|
|
136
|
+
${adrId}: ${title}
|
|
137
|
+
</h3>
|
|
138
|
+
<div class="item-summary">${decisionHtml}</div>
|
|
139
|
+
<div class="tags-wrapper">
|
|
140
|
+
<span class="tag-badge adr-indicator-badge">ADR</span>
|
|
141
|
+
${tagsHtml}
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
`;
|
|
145
|
+
return html `
|
|
146
|
+
<div class="timeline-item">
|
|
147
|
+
<a class="timeline-card timeline-card--adr" href="${escapeHtml(adrUrl)}">
|
|
148
|
+
${cardContent}
|
|
149
|
+
<span class="item-arrow">›</span>
|
|
150
|
+
</a>
|
|
151
|
+
</div>
|
|
152
|
+
`;
|
|
153
|
+
};
|
|
91
154
|
export const paginationLinks = (currentPage, totalPages) => {
|
|
92
155
|
let links = '';
|
|
93
156
|
if (currentPage > 1) {
|
|
@@ -100,3 +163,4 @@ export const paginationLinks = (currentPage, totalPages) => {
|
|
|
100
163
|
}
|
|
101
164
|
return links ? `<nav class="pagination-nav">${links}</nav>` : '';
|
|
102
165
|
};
|
|
166
|
+
//# sourceMappingURL=template-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-helpers.js","sourceRoot":"","sources":["../../src/lib/template-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export interface TimelineTemplateProps {
|
|
|
16
16
|
groups: TimelineGroup[];
|
|
17
17
|
readmeHtml: string;
|
|
18
18
|
aboutHtml: string;
|
|
19
|
+
welcomeHtml?: string;
|
|
19
20
|
jiraBaseUrl?: string;
|
|
20
21
|
jiraPrefix?: string;
|
|
21
22
|
repositoryUrl?: string;
|
|
@@ -30,9 +31,28 @@ export interface TimelineGroup {
|
|
|
30
31
|
items: TimelineItem[];
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
|
-
* A timeline item is either a logbook entry card, a git commit,
|
|
34
|
+
* A timeline item is either a logbook entry card, a git commit, a git tag, or an ADR.
|
|
34
35
|
*/
|
|
35
|
-
export type TimelineItem = TimelineEntry | TimelineCommitItem | TimelineTagItem;
|
|
36
|
+
export type TimelineItem = TimelineEntry | TimelineCommitItem | TimelineTagItem | TimelineAdrItem;
|
|
37
|
+
/**
|
|
38
|
+
* An ADR decision record shown on the timeline.
|
|
39
|
+
*/
|
|
40
|
+
export interface TimelineAdrItem {
|
|
41
|
+
kind: 'adr';
|
|
42
|
+
id: number;
|
|
43
|
+
filepath: string;
|
|
44
|
+
title: string;
|
|
45
|
+
status: string;
|
|
46
|
+
date: string;
|
|
47
|
+
displayDate: string;
|
|
48
|
+
author: string;
|
|
49
|
+
superseded_by?: number | null;
|
|
50
|
+
tags?: string[];
|
|
51
|
+
decision: string;
|
|
52
|
+
decisionHtml?: string;
|
|
53
|
+
monthGroup: string;
|
|
54
|
+
sortTime: string;
|
|
55
|
+
}
|
|
36
56
|
/**
|
|
37
57
|
* Configuration for a timeline entry
|
|
38
58
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-types.js","sourceRoot":"","sources":["../../src/lib/template-types.ts"],"names":[],"mappings":""}
|
package/dist/lib/templates.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { TabConfig, TimelineTemplateProps, PostTemplateProps } from './template-types.js';
|
|
2
|
-
export declare const tabsComponent: (tabs: TabConfig[], defaultActive?: number) =>
|
|
3
|
-
|
|
2
|
+
export declare const tabsComponent: (tabs: TabConfig[], defaultActive?: number) => {
|
|
3
|
+
tabsHtml: string;
|
|
4
|
+
sectionsHtml: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const layout: ({ title, header, content, projectName, basePath, description, bodySlug, buildMeta, includeRssLink, prevUrl, nextUrl, }: {
|
|
4
7
|
title: string;
|
|
5
8
|
header: string;
|
|
6
9
|
content: string;
|
|
@@ -10,6 +13,8 @@ export declare const layout: ({ title, header, content, projectName, basePath, d
|
|
|
10
13
|
bodySlug?: string;
|
|
11
14
|
buildMeta?: string;
|
|
12
15
|
includeRssLink?: boolean;
|
|
16
|
+
prevUrl?: string;
|
|
17
|
+
nextUrl?: string;
|
|
13
18
|
}) => string;
|
|
14
19
|
export declare const timelineTemplate: (props: TimelineTemplateProps & {
|
|
15
20
|
includeRssLink?: boolean;
|
package/dist/lib/templates.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ATTR_PAGE_SLUG, ATTR_DATA_DATE } from './html-attributes.js';
|
|
2
2
|
import { escapeHtml, validateUrlScheme } from './html-escape.js';
|
|
3
|
-
import { html, navLink, renderTagsAndWorkspaces, renderCommits, renderTimelineEntryItem, renderTimelineCommitItem, renderTimelineTagItem, paginationLinks, } from './template-helpers.js';
|
|
3
|
+
import { html, navLink, renderTagsAndWorkspaces, renderCommits, renderTimelineEntryItem, renderTimelineCommitItem, renderTimelineTagItem, renderTimelineAdrItem, paginationLinks, } from './template-helpers.js';
|
|
4
4
|
export const tabsComponent = (tabs, defaultActive = 0) => {
|
|
5
5
|
const tabsHtml = tabs
|
|
6
6
|
.map((tab, index) => `<div class="tab ${index === defaultActive ? 'active' : ''}" role="tab" aria-selected="${index === defaultActive}" aria-controls="${escapeHtml(tab.id)}" tabindex="${index === defaultActive ? '0' : '-1'}" onclick="showTab(event, '${escapeHtml(tab.id)}')">${escapeHtml(tab.title)}</div>`)
|
|
@@ -8,57 +8,74 @@ export const tabsComponent = (tabs, defaultActive = 0) => {
|
|
|
8
8
|
const sectionsHtml = tabs
|
|
9
9
|
.map((tab, index) => `<div id="${escapeHtml(tab.id)}" class="content-section" role="tabpanel" style="${index === defaultActive ? '' : 'display:none;'}">${tab.content}</div>`)
|
|
10
10
|
.join('');
|
|
11
|
-
return
|
|
12
|
-
<div class="tabs" id="tabs" role="tablist" aria-label="Navigation tabs">${tabsHtml}</div>
|
|
13
|
-
${sectionsHtml}
|
|
14
|
-
</div>`;
|
|
11
|
+
return { tabsHtml, sectionsHtml };
|
|
15
12
|
};
|
|
16
|
-
export const layout = ({ title, header, content, projectName, basePath = './', description, bodySlug, buildMeta, includeRssLink = false, }) =>
|
|
13
|
+
export const layout = ({ title, header, content, projectName, basePath = './', description, bodySlug, buildMeta, includeRssLink = false, prevUrl, nextUrl, }) => {
|
|
14
|
+
const metaDescription = description ||
|
|
15
|
+
`A chronological timeline of recent development changes, narrative updates, and commits for ${projectName}.`;
|
|
16
|
+
return html `<!DOCTYPE html>
|
|
17
17
|
<html lang="en">
|
|
18
18
|
<head>
|
|
19
19
|
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
20
20
|
<title>${escapeHtml(title)} | ${escapeHtml(projectName)}</title>
|
|
21
|
-
|
|
21
|
+
<meta name="description" content="${escapeHtml(metaDescription).replace(/"/g, '"').substring(0, 160)}">
|
|
22
22
|
${includeRssLink ? `<link rel="alternate" type="application/rss+xml" title="Subscribe to Project RSS Feed" href="${basePath}rss.xml">` : ''}
|
|
23
|
+
${prevUrl ? `<link rel="prev" href="${escapeHtml(prevUrl)}">` : ''}
|
|
24
|
+
${nextUrl ? `<link rel="next" href="${escapeHtml(nextUrl)}">` : ''}
|
|
23
25
|
<link rel="icon" type="image/svg+xml" href="${basePath}favicon.svg">
|
|
24
26
|
<link rel="stylesheet" href="${basePath}style.css">
|
|
25
27
|
</head>
|
|
26
|
-
<body${bodySlug ? ` ${ATTR_PAGE_SLUG}="${bodySlug}"` : ''}>
|
|
28
|
+
<body${bodySlug ? ` ${ATTR_PAGE_SLUG}="${bodySlug}"` : ''} class="tabs-wrapper">
|
|
27
29
|
${header}<main>${content}</main>
|
|
28
30
|
<footer>
|
|
29
31
|
${buildMeta ? `<p class="build-time">${buildMeta}${includeRssLink ? ` • <a href="${basePath}rss.xml">RSS Feed</a>` : ''}</p>` : ''}
|
|
30
32
|
</footer>
|
|
31
33
|
<script src="${basePath}logbook.js"></script>
|
|
32
34
|
</body></html>`;
|
|
35
|
+
};
|
|
33
36
|
export const timelineTemplate = (props) => {
|
|
34
|
-
const { projectName, groups, readmeHtml, aboutHtml, jiraBaseUrl, jiraPrefix, repositoryUrl, currentPage, totalPages, } = props;
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
+
const { projectName, groups, readmeHtml, aboutHtml, welcomeHtml, jiraBaseUrl, jiraPrefix, repositoryUrl, currentPage, totalPages, } = props;
|
|
38
|
+
const welcomeBannerHtml = welcomeHtml
|
|
39
|
+
? `<div id="welcome-banner" class="welcome-banner" style="display:none;">
|
|
40
|
+
<button id="welcome-banner-close" class="welcome-banner-close" aria-label="Dismiss welcome banner">×</button>
|
|
41
|
+
<div class="welcome-banner-content">${welcomeHtml}</div>
|
|
42
|
+
</div>`
|
|
43
|
+
: '';
|
|
44
|
+
const timelineTab = html `${welcomeBannerHtml}
|
|
45
|
+
<div class="timeline">
|
|
46
|
+
${groups
|
|
37
47
|
.map((g) => html `<section class="month-group">
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
<h2>${g.month}</h2>
|
|
49
|
+
${g.items
|
|
40
50
|
.map((item) => {
|
|
41
51
|
if (item.kind === 'entry')
|
|
42
52
|
return renderTimelineEntryItem(item);
|
|
43
53
|
if (item.kind === 'tag')
|
|
44
54
|
return renderTimelineTagItem(item, repositoryUrl);
|
|
55
|
+
if (item.kind === 'adr')
|
|
56
|
+
return renderTimelineAdrItem(item);
|
|
45
57
|
return renderTimelineCommitItem(item, jiraBaseUrl, jiraPrefix, repositoryUrl);
|
|
46
58
|
})
|
|
47
59
|
.join('')}
|
|
48
|
-
|
|
60
|
+
</section>`)
|
|
49
61
|
.join('')}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
<h1><a href="./index.html">${escapeHtml(projectName)}</a></h1>
|
|
54
|
-
<p class="tagline">A brief summary of the recent changes to the project.</p>
|
|
55
|
-
</header>`;
|
|
56
|
-
const content = tabsComponent([
|
|
62
|
+
${paginationLinks(currentPage, totalPages)}
|
|
63
|
+
</div>`;
|
|
64
|
+
const { tabsHtml, sectionsHtml } = tabsComponent([
|
|
57
65
|
{ id: 'timeline', title: 'Timeline', content: timelineTab },
|
|
58
66
|
{ id: 'readme', title: 'Project Readme', content: readmeHtml || '<p>No README available.</p>' },
|
|
59
67
|
{ id: 'about', title: 'About this Logbook', content: aboutHtml || '<p>No information available.</p>' },
|
|
60
68
|
], 0);
|
|
61
|
-
|
|
69
|
+
const header = html `<header>
|
|
70
|
+
<div class="header-inner">
|
|
71
|
+
<h1><a href="./index.html">${escapeHtml(projectName)}</a></h1>
|
|
72
|
+
<p class="tagline">A brief summary of the recent changes to the project.</p>
|
|
73
|
+
<div class="header-nav header-nav--center">
|
|
74
|
+
<div class="tabs" id="tabs" role="tablist" aria-label="Navigation tabs">${tabsHtml}</div>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
</header>`;
|
|
78
|
+
return { header, content: sectionsHtml };
|
|
62
79
|
};
|
|
63
80
|
export const postTemplate = (props) => {
|
|
64
81
|
const { title, displayDate, dateStart, harness, llm, prompter, content, ticketHtml, logHtml, commits, version, jiraUrl, repositoryUrl, prevEntry, nextEntry, tags, workspaces } = props; // prettier-ignore
|
|
@@ -69,23 +86,25 @@ export const postTemplate = (props) => {
|
|
|
69
86
|
: '';
|
|
70
87
|
const tabBtn = (id, label, active = false) => `<div class="tab${active ? ' active' : ''}" role="tab" aria-selected="${active}" aria-controls="${escapeHtml(id)}" tabindex="${active ? '0' : '-1'}" onclick="showTab(event, '${escapeHtml(id)}')">${escapeHtml(label)}</div>`;
|
|
71
88
|
const header = html `<header>
|
|
72
|
-
<
|
|
73
|
-
|
|
74
|
-
<
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
89
|
+
<div class="header-inner">
|
|
90
|
+
<h1>${escapeHtml(title)}</h1>
|
|
91
|
+
<div class="tagline">
|
|
92
|
+
<span ${ATTR_DATA_DATE}="${dateStart}">${displayDate}</span> •
|
|
93
|
+
${llm ? `${escapeHtml(llm)} via ` : ''}${escapeHtml(harness)}${prompter ? ` / ${escapeHtml(prompter)}` : ''} •
|
|
94
|
+
v${version}
|
|
95
|
+
</div>
|
|
96
|
+
<div class="header-nav">
|
|
97
|
+
<div class="header-nav-left">
|
|
98
|
+
<a href="../index.html" class="back-link">← Back to Timeline</a>
|
|
99
|
+
</div>
|
|
83
100
|
<div class="tabs" role="tablist" aria-label="Entry sections">
|
|
84
101
|
${tabBtn('story', 'Story', true)}${tabBtn('spec', 'Original Spec')}${tabBtn('log', 'Technical Log')}
|
|
85
102
|
</div>
|
|
103
|
+
<div class="header-nav-right">${jiraBtn ? `${jiraBtn}` : '<span></span>'}</div>
|
|
86
104
|
</div>
|
|
87
|
-
${jiraBtn ? `${jiraBtn}` : ''}
|
|
88
105
|
</div>
|
|
106
|
+
</header>`;
|
|
107
|
+
const mainContent = html `<article>
|
|
89
108
|
<div class="content-sections">
|
|
90
109
|
<div id="story" class="content-section" role="tabpanel">
|
|
91
110
|
${renderTagsAndWorkspaces(tags, workspaces)}${content}
|
|
@@ -102,3 +121,4 @@ export const postTemplate = (props) => {
|
|
|
102
121
|
</article>`;
|
|
103
122
|
return { header, content: mainContent };
|
|
104
123
|
};
|
|
124
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/theme.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/lib/theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,sCAAsC;AACtC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;AAEnC,kCAAkC;AAClC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;AAE/B,uCAAuC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;AAEpC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAE/B,sCAAsC;AACtC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;AAElC,wCAAwC;AACxC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;AAEpC,gBAAgB;AAChB,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAe;IAC1D,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,OAAe;IAC5D,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,OAAe;IAC5D,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;AAC1C,CAAC"}
|
package/dist/lib/url-helpers.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-helpers.js","sourceRoot":"","sources":["../../src/lib/url-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Linter } from '../lib/lint-types.js';
|
|
2
|
-
|
|
2
|
+
import { stripFrontmatter } from '../utils/frontmatter.js';
|
|
3
|
+
export { stripFrontmatter };
|
|
3
4
|
export declare function stripMarkdown(text: string): string;
|
|
4
5
|
export declare function getWordCount(content: string): number;
|
|
5
6
|
declare const linter: Linter;
|
|
@@ -2,22 +2,14 @@ import { getActiveEntry } from '../lib/session.js';
|
|
|
2
2
|
import { getChangedLOC } from '../lib/git-helpers.js';
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
|
+
import { stripFrontmatter } from '../utils/frontmatter.js';
|
|
6
|
+
export { stripFrontmatter };
|
|
5
7
|
// Thresholds & Limits Configuration
|
|
6
8
|
const TRIVIAL_LOC_MAX = 20;
|
|
7
9
|
const STANDARD_LOC_MAX = 150;
|
|
8
10
|
const TRIVIAL_WORDS = { min: 30, max: 150 };
|
|
9
11
|
const STANDARD_WORDS = { min: 50, max: 300 };
|
|
10
12
|
const LARGE_WORDS = { min: 100, max: 400 };
|
|
11
|
-
export function stripFrontmatter(content) {
|
|
12
|
-
const lines = content.split(/\r?\n/);
|
|
13
|
-
if (lines[0]?.trim() === '---') {
|
|
14
|
-
const endIdx = lines.indexOf('---', 1);
|
|
15
|
-
if (endIdx !== -1) {
|
|
16
|
-
return lines.slice(endIdx + 1).join('\n');
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return content;
|
|
20
|
-
}
|
|
21
13
|
export function stripMarkdown(text) {
|
|
22
14
|
return text
|
|
23
15
|
.replace(/<[^>]*>/g, '') // HTML tags
|
|
@@ -112,3 +104,4 @@ const linter = {
|
|
|
112
104
|
},
|
|
113
105
|
};
|
|
114
106
|
export default linter;
|
|
107
|
+
//# sourceMappingURL=diff-to-narrative.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-to-narrative.js","sourceRoot":"","sources":["../../src/linters/diff-to-narrative.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/linters/frontmatter.ts"],"names":[],"mappings":"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"}
|
package/dist/linters/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/linters/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,eAAe;IACf,WAAW;IACX,UAAU;IACV,KAAK;IACL,QAAQ;IACR,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,UAAU;CACX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jira-prefix.js","sourceRoot":"","sources":["../../src/linters/jira-prefix.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,gEAAgE;IAC7E,KAAK,CAAC,KAAK,CAAC,OAAsB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAExF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACnD,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,iBAAiB,SAAS,uCAAuC,UAAU,uBAAuB,UAAU,cAAc;aACpI,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;QACvC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,aAAa;oBACvB,OAAO,EAAE,UAAU,SAAS,iBAAiB,WAAW,CAAC,MAAM,4CAA4C,UAAU,IAAI;iBAC1H,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/linters/links.js
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { unified } from 'unified';
|
|
4
|
+
import remarkParse from 'remark-parse';
|
|
5
|
+
function collectLinks(node) {
|
|
6
|
+
const links = [];
|
|
7
|
+
if ((node.type === 'link' || node.type === 'image') && node.url) {
|
|
8
|
+
links.push(node.url);
|
|
9
|
+
}
|
|
10
|
+
if (node.children) {
|
|
11
|
+
for (const child of node.children) {
|
|
12
|
+
links.push(...collectLinks(child));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return links;
|
|
16
|
+
}
|
|
3
17
|
const linter = {
|
|
4
18
|
name: 'links',
|
|
5
19
|
description: 'Validates relative links within entries',
|
|
@@ -7,10 +21,17 @@ const linter = {
|
|
|
7
21
|
if (!context.entryName || !context.content || !context.entryPath)
|
|
8
22
|
return [];
|
|
9
23
|
const issues = [];
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
24
|
+
let links = [];
|
|
25
|
+
try {
|
|
26
|
+
const processor = unified().use(remarkParse);
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
28
|
+
const ast = processor.parse(context.content);
|
|
29
|
+
links = collectLinks(ast);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
for (const link of links) {
|
|
14
35
|
if (link.startsWith('http') || link.startsWith('#'))
|
|
15
36
|
continue;
|
|
16
37
|
const linkedPath = join(context.entryPath, link);
|
|
@@ -26,3 +47,4 @@ const linter = {
|
|
|
26
47
|
},
|
|
27
48
|
};
|
|
28
49
|
export default linter;
|
|
50
|
+
//# sourceMappingURL=links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/linters/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AAQvC,SAAS,YAAY,CAAC,IAAe;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,yCAAyC;IACtD,KAAK,CAAC,KAAK,CAAC,OAAsB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE5E,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7C,yEAAyE;YACzE,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAc,CAAC;YAC1D,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,mBAAmB,IAAI,EAAE;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/linters/lockfile.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/linters/lockfile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,2CAA2C;IACxD,KAAK,CAAC,KAAK,CAAC,OAAsB;QAChC,IAAI,OAAO,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,UAAU,MAAM,CAAC,IAAI,yGAAyG;aACxI,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { getRawFrontmatterBlock } from '../utils/frontmatter.js';
|
|
3
4
|
const linter = {
|
|
4
5
|
name: 'placeholders',
|
|
5
6
|
description: 'Checks for unremoved template placeholders',
|
|
@@ -14,8 +15,7 @@ const linter = {
|
|
|
14
15
|
if (context.indexPath && (await fs.pathExists(context.indexPath))) {
|
|
15
16
|
rawFile = await fs.readFile(context.indexPath, 'utf8');
|
|
16
17
|
}
|
|
17
|
-
const
|
|
18
|
-
const frontmatterBlock = frontmatterMatch ? frontmatterMatch[0] : rawFile;
|
|
18
|
+
const frontmatterBlock = getRawFrontmatterBlock(rawFile);
|
|
19
19
|
const frontmatterPlaceholders = [
|
|
20
20
|
'[PROMPTER]',
|
|
21
21
|
'[HARNESS]',
|
|
@@ -35,8 +35,9 @@ const linter = {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
// Check boilerplate body text against the full content (
|
|
39
|
-
|
|
38
|
+
// Check boilerplate body text against the full content (strip fenced and inline code blocks to avoid false positives)
|
|
39
|
+
const bodyContentWithoutCode = context.content.replace(/```[\s\S]*?```/g, '').replace(/`[^`]*`/g, '');
|
|
40
|
+
if (bodyContentWithoutCode.includes('TODO: ')) {
|
|
40
41
|
issues.push({
|
|
41
42
|
level: 'error',
|
|
42
43
|
category: 'placeholder',
|
|
@@ -58,3 +59,4 @@ const linter = {
|
|
|
58
59
|
},
|
|
59
60
|
};
|
|
60
61
|
export default linter;
|
|
62
|
+
//# sourceMappingURL=placeholders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeholders.js","sourceRoot":"","sources":["../../src/linters/placeholders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,4CAA4C;IACzD,KAAK,CAAC,KAAK,CAAC,OAAsB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE5E,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,mFAAmF;QACnF,4FAA4F;QAC5F,iFAAiF;QACjF,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEzD,MAAM,uBAAuB,GAAG;YAC9B,YAAY;YACZ,WAAW;YACX,OAAO;YACP,sBAAsB;YACtB,cAAc;YACd,uEAAuE;YACvE,0EAA0E;YAC1E,2EAA2E;SAC5E,CAAC;QAEF,KAAK,MAAM,WAAW,IAAI,uBAAuB,EAAE,CAAC;YAClD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,aAAa;oBACvB,OAAO,EAAE,sCAAsC,WAAW,EAAE;iBAC7D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,sHAAsH;QACtH,MAAM,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,aAAa;gBACvB,OAAO,EACL,4IAA4I;aAC/I,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,aAAa,CAAC,QAAQ,CAAC,4CAA4C,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,aAAa;oBACvB,OAAO,EAAE,gFAAgF;iBAC1F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-integrity.js","sourceRoot":"","sources":["../../src/linters/project-integrity.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,iDAAiD;IAC9D,KAAK,CAAC,KAAK,CAAC,OAAsB;QAChC,IAAI,OAAO,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAE/C,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,wEAAwE;iBAC9F,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,kDAAkD;iBACxE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -5,9 +5,7 @@ const linter = {
|
|
|
5
5
|
if (!context.entryName || !context.content)
|
|
6
6
|
return [];
|
|
7
7
|
const issues = [];
|
|
8
|
-
const
|
|
9
|
-
// Content is after the second '---' if frontmatter exists
|
|
10
|
-
const contentWithoutFrontmatter = (contentParts.length >= 3 ? contentParts.slice(2).join('---') : context.content).trim();
|
|
8
|
+
const contentWithoutFrontmatter = context.content.trim();
|
|
11
9
|
if (contentWithoutFrontmatter.length === 0)
|
|
12
10
|
return [];
|
|
13
11
|
// 1. Heading Check
|
|
@@ -39,3 +37,4 @@ const linter = {
|
|
|
39
37
|
},
|
|
40
38
|
};
|
|
41
39
|
export default linter;
|
|
40
|
+
//# sourceMappingURL=readability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readability.js","sourceRoot":"","sources":["../../src/linters/readability.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,oDAAoD;IACjE,KAAK,CAAC,KAAK,CAAC,OAAsB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEzD,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtD,mBAAmB;QACnB,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,qEAAqE;aAC/E,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACxF,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,8BAA8B,KAAK,gDAAgD;aAC7F,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,4BAA4B,KAAK,uCAAuC;aAClF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"technical-log.js","sourceRoot":"","sources":["../../src/linters/technical-log.ts"],"names":[],"mappings":"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"}
|