mirror of
https://github.com/facebook/docusaurus.git
synced 2025-08-02 16:29:47 +02:00
feat(theme): code block showLineNumbers=start metastring (#10846)
This commit is contained in:
parent
fcc9e5c56a
commit
e59355be76
5 changed files with 74 additions and 25 deletions
|
@ -37,7 +37,7 @@ export {
|
|||
parseCodeBlockTitle,
|
||||
parseLanguage,
|
||||
parseLines,
|
||||
containsLineNumbers,
|
||||
getLineNumbersStart,
|
||||
} from './utils/codeBlockUtils';
|
||||
|
||||
export {DEFAULT_SEARCH_TAG} from './utils/searchUtils';
|
||||
|
|
|
@ -151,8 +151,37 @@ export function parseCodeBlockTitle(metastring?: string): string {
|
|||
return metastring?.match(codeBlockTitleRegex)?.groups!.title ?? '';
|
||||
}
|
||||
|
||||
export function containsLineNumbers(metastring?: string): boolean {
|
||||
return Boolean(metastring?.includes('showLineNumbers'));
|
||||
function getMetaLineNumbersStart(metastring?: string): number | undefined {
|
||||
const showLineNumbersMeta = metastring
|
||||
?.split(' ')
|
||||
.find((str) => str.startsWith('showLineNumbers'));
|
||||
|
||||
if (showLineNumbersMeta) {
|
||||
if (showLineNumbersMeta.startsWith('showLineNumbers=')) {
|
||||
const value = showLineNumbersMeta.replace('showLineNumbers=', '');
|
||||
return parseInt(value, 10);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export function getLineNumbersStart({
|
||||
showLineNumbers,
|
||||
metastring,
|
||||
}: {
|
||||
showLineNumbers: boolean | number | undefined;
|
||||
metastring: string | undefined;
|
||||
}): number | undefined {
|
||||
const defaultStart = 1;
|
||||
if (typeof showLineNumbers === 'boolean') {
|
||||
return showLineNumbers ? defaultStart : undefined;
|
||||
}
|
||||
if (typeof showLineNumbers === 'number') {
|
||||
return showLineNumbers;
|
||||
}
|
||||
return getMetaLineNumbersStart(metastring);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue