Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit eab1c7c

Browse files
committed
fix(websocket): Add linesCount and charsCount to metadata extraction
1 parent bc575d9 commit eab1c7c

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

‎websocket/change.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ export type Change =
1111
| HelpFeelsChange
1212
| infoboxDefinitionChange
1313
| TitleChange
14+
| LinesCountChange
15+
| charsCountChange
1416
| PinChange;
1517
export interface InsertChange {
1618
_insert: string;
@@ -72,6 +74,13 @@ export interface infoboxDefinitionChange {
7274
*/
7375
infoboxDefinition: string[];
7476
}
77+
export interface LinesCountChange {
78+
linesCount: number;
79+
}
80+
export interface charsCountChange {
81+
charsCount: number;
82+
}
83+
7584
export interface PinChange {
7685
pin: number;
7786
}

‎websocket/getPageMetadataFromLines.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import { getHelpfeels, getPageMetadataFromLines } from "./getPageMetadataFromLines.ts";
1+
import {
2+
getHelpfeels,
3+
getPageMetadataFromLines,
4+
} from "./getPageMetadataFromLines.ts";
25
import { assertEquals } from "@std/assert/equals";
36

47
// Test data for metadata extraction from a Scrapbox page
@@ -74,6 +77,8 @@ Deno.test("getPageMetadataFromLines()", () => {
7477
"Phone\tAdding # won't create a link",
7578
"Strengths\tList about 3 items",
7679
],
80+
26,
81+
659,
7782
]);
7883
});
7984

‎websocket/getPageMetadataFromLines.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ export const getPageMetadataFromLines = (
3030
files: string[],
3131
helpfeels: string[],
3232
infoboxDefinition: string[],
33+
linesCount: number,
34+
charsCount: number,
3335
] => {
3436
const blocks = parse(text, { hasTitle: true });
3537

@@ -190,6 +192,7 @@ export const getPageMetadataFromLines = (
190192
}
191193
}
192194

195+
const lines = text.split("\n");
193196
return [
194197
title,
195198
links,
@@ -200,6 +203,8 @@ export const getPageMetadataFromLines = (
200203
[...files],
201204
[...helpfeels],
202205
infoboxDefinition,
206+
lines.length,
207+
lines.reduce((acc, line) => acc + [...line].length, 0),
203208
];
204209
};
205210

‎websocket/makeChanges.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { diffToChanges } from "./diffToChanges.ts";
22
import type { Page } from "@cosense/types/rest";
33
import type { Change } from "./change.ts";
4-
import { getHelpfeels, getPageMetadataFromLines } from "./getPageMetadataFromLines.ts";
4+
import {
5+
getHelpfeels,
6+
getPageMetadataFromLines,
7+
} from "./getPageMetadataFromLines.ts";
58
import { isSameArray } from "./isSameArray.ts";
69
import { isString } from "@core/unknownutil/is/string";
710

@@ -41,6 +44,8 @@ export function* makeChanges(
4144
files,
4245
helpfeels,
4346
infoboxDefinition,
47+
linesCount,
48+
charsCount,
4449
] = getPageMetadataFromLines(after_.join("\n"));
4550
// Handle title changes
4651
// Note: We always include title change commits for new pages (`persistent === false`)
@@ -56,4 +61,6 @@ export function* makeChanges(
5661
if (!isSameArray(before.infoboxDefinition, infoboxDefinition)) {
5762
yield { infoboxDefinition };
5863
}
64+
yield { linesCount };
65+
yield { charsCount };
5966
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /