fix(docs-infra): always default to no linenums in <aio-code>
(#31674)
Previously, `linenums` defaulted to true if the content was more than 10 lines long and false otherwise. Since in most cases linenums add unnecessary visual noise, this commit changes `linenums` to always default to false (regardless of the size of the content). It can be still be turned on by explicitly setting to true or a number. PR Close #31674
This commit is contained in:

committed by
Miško Hevery

parent
3d7303efc0
commit
dd0be7feb7
@ -71,34 +71,52 @@ describe('CodeComponent', () => {
|
||||
`Formatted code (language: auto, linenums: true): ${oneLineCode}`);
|
||||
});
|
||||
|
||||
it('should format a small multi-line code without linenums by default', async () => {
|
||||
it('should format a small multi-line code sample without linenums by default', () => {
|
||||
hostComponent.setCode(smallMultiLineCode);
|
||||
expect(getFormattedCode()).toBe(
|
||||
`Formatted code (language: auto, linenums: false): ${smallMultiLineCode}`);
|
||||
});
|
||||
|
||||
it('should add line numbers to a big multi-line code by default', async () => {
|
||||
it('should add line numbers to a small multi-line code sample when linenums is `true`', () => {
|
||||
hostComponent.setCode(smallMultiLineCode);
|
||||
hostComponent.linenums = true;
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(getFormattedCode()).toBe(
|
||||
`Formatted code (language: auto, linenums: true): ${smallMultiLineCode}`);
|
||||
});
|
||||
|
||||
it('should add line numbers to a small multi-line code sample when linenums is `\'true\'`', () => {
|
||||
hostComponent.setCode(smallMultiLineCode);
|
||||
hostComponent.linenums = 'true';
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(getFormattedCode()).toBe(
|
||||
`Formatted code (language: auto, linenums: true): ${smallMultiLineCode}`);
|
||||
});
|
||||
|
||||
it('should format a big multi-line code without linenums by default', () => {
|
||||
hostComponent.setCode(bigMultiLineCode);
|
||||
expect(getFormattedCode()).toBe(
|
||||
`Formatted code (language: auto, linenums: false): ${bigMultiLineCode}`);
|
||||
});
|
||||
|
||||
it('should add line numbers to a big multi-line code sample when linenums is `true`', () => {
|
||||
hostComponent.setCode(bigMultiLineCode);
|
||||
hostComponent.linenums = true;
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(getFormattedCode()).toBe(
|
||||
`Formatted code (language: auto, linenums: true): ${bigMultiLineCode}`);
|
||||
});
|
||||
|
||||
it('should format big multi-line code without linenums when linenums is `false`', async () => {
|
||||
it('should add line numbers to a big multi-line code sample when linenums is `\'true\'`', () => {
|
||||
hostComponent.setCode(bigMultiLineCode);
|
||||
hostComponent.linenums = false;
|
||||
hostComponent.linenums = 'true';
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(getFormattedCode()).toBe(
|
||||
`Formatted code (language: auto, linenums: false): ${bigMultiLineCode}`);
|
||||
});
|
||||
|
||||
it('should format big multi-line code without linenums when linenums is `\'false\'`', async () => {
|
||||
hostComponent.setCode(bigMultiLineCode);
|
||||
hostComponent.linenums = 'false';
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(getFormattedCode()).toBe(
|
||||
`Formatted code (language: auto, linenums: false): ${bigMultiLineCode}`);
|
||||
`Formatted code (language: auto, linenums: true): ${bigMultiLineCode}`);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -5,12 +5,6 @@ import { CopierService } from 'app/shared/copier.service';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { tap } from 'rxjs/operators';
|
||||
|
||||
/**
|
||||
* If linenums is not set, this is the default maximum number of lines that
|
||||
* an example can display without line numbers.
|
||||
*/
|
||||
const DEFAULT_LINE_NUMS_COUNT = 10;
|
||||
|
||||
/**
|
||||
* Formatted Code Block
|
||||
*
|
||||
@ -170,9 +164,7 @@ export class CodeComponent implements OnChanges {
|
||||
typeof this.linenums === 'string' ? parseInt(this.linenums, 10) :
|
||||
this.linenums;
|
||||
|
||||
// if no linenums, enable line numbers if more than one line
|
||||
return linenums == null || isNaN(linenums as number) ?
|
||||
(code.match(/\n/g) || []).length > DEFAULT_LINE_NUMS_COUNT : linenums;
|
||||
return (linenums != null) && !isNaN(linenums as number) && linenums;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user