fix(aio): left align code in aio-code components

This commit is contained in:
Peter Bacon Darwin
2017-04-10 22:14:40 +01:00
committed by Hans
parent 3ced940b5a
commit 9037593ab8
2 changed files with 21 additions and 1 deletions
+13 -1
View File
@@ -70,7 +70,7 @@ export class CodeComponent implements OnChanges {
private logger: Logger) {}
ngOnChanges() {
this.code = this.code && this.code.trim();
this.code = this.code && leftAlign(this.code);
if (!this.code) {
this.setCodeHtml('<p class="code-missing">The code sample is missing.</p>');
@@ -118,3 +118,15 @@ export class CodeComponent implements OnChanges {
(this.code.match(/\n/g) || []).length > 1 : linenums;
}
}
function leftAlign(text) {
let indent = Number.MAX_VALUE;
const lines = text.split('\n');
lines.forEach(line => {
const lineIndent = line.search(/\S/);
if (lineIndent !== -1) {
indent = Math.min(lineIndent, indent);
}
});
return lines.map(line => line.substr(indent)).join('\n').trim();
}