ngx-showdown
Version:
A Angular (>=2) integration for Showdown
59 lines • 4.47 kB
JavaScript
import { Pipe } from '@angular/core';
import { ShowdownConverter } from './showdown-converter.provider';
/**
* A angular pipe to transform `Markdown` to `HTML`.
*
* ### Example
*
* Setup as standalone
* ```typescript
* import { NgModule } from '@angular/core';
* import { ShowdownPipe } from 'ngx-showdown';
*
* @NgModule({
* declarations: [ ShowdownPipe ];
* })
* export class AppModule {}
* ```
*
* Transform markdown value to html.
* ```html
* <input type="text" placeholder="Name" [(ngModel)]="name"/>
* <div [innerHTML]="'**Hello '+(name || 'nobody')+'!**' | showdown">
* ```
*
* Transform markdown value to html with `options`.
* ```typescript
* import * as Showdown from 'showdown';
*
* @Component({
* selector: 'some',
* template: `<div innerHTML="{{ text | showdown: options }}"></div>`
* })
* export class SomeComponent {
* text: string = "__Some Underline__";
* options: Showdown.ShowdownOptions = { underline: true };
* // ...
* }
* ```
*/
export class ShowdownPipe extends ShowdownConverter {
/**
* Transform markdown value to html.
*
* @param value - The markdown value to transform to html.
* @param options - A `Showdown` converter options.
* @returns Returns the transform result of `value` to html.
*/
transform(value, options) {
this.setOptions(options);
return this.makeHtml(value);
}
}
ShowdownPipe.decorators = [
{ type: Pipe, args: [{
name: 'showdown',
pure: false
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvd2Rvd24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaG93ZG93bi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFLSCxNQUFNLE9BQU8sWUFBYSxTQUFRLGlCQUFpQjtJQUVqRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLE9BQWtDO1FBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7OztZQWhCRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxLQUFLO2FBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBTaG93ZG93biBmcm9tICdzaG93ZG93bic7XG5pbXBvcnQgeyBTaG93ZG93bkNvbnZlcnRlciB9IGZyb20gJy4vc2hvd2Rvd24tY29udmVydGVyLnByb3ZpZGVyJztcblxuLyoqXG4gKiBBIGFuZ3VsYXIgcGlwZSB0byB0cmFuc2Zvcm0gYE1hcmtkb3duYCB0byBgSFRNTGAuXG4gKlxuICogIyMjIEV4YW1wbGVcbiAqXG4gKiBTZXR1cCBhcyBzdGFuZGFsb25lXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgU2hvd2Rvd25QaXBlIH0gZnJvbSAnbmd4LXNob3dkb3duJztcbiAqXG4gKiBATmdNb2R1bGUoe1xuICogICBkZWNsYXJhdGlvbnM6IFsgU2hvd2Rvd25QaXBlIF07XG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICogYGBgXG4gKlxuICogVHJhbnNmb3JtIG1hcmtkb3duIHZhbHVlIHRvIGh0bWwuXG4gKiBgYGBodG1sXG4gKiA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIk5hbWVcIiBbKG5nTW9kZWwpXT1cIm5hbWVcIi8+XG4gKiA8ZGl2IFtpbm5lckhUTUxdPVwiJyoqSGVsbG8gJysobmFtZSB8fCAnbm9ib2R5JykrJyEqKicgfCBzaG93ZG93blwiPlxuICogYGBgXG4gKlxuICogVHJhbnNmb3JtIG1hcmtkb3duIHZhbHVlIHRvIGh0bWwgd2l0aCBgb3B0aW9uc2AuXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgKiBhcyBTaG93ZG93biBmcm9tICdzaG93ZG93bic7XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnc29tZScsXG4gKiAgIHRlbXBsYXRlOiBgPGRpdiBpbm5lckhUTUw9XCJ7eyB0ZXh0IHwgc2hvd2Rvd246IG9wdGlvbnMgfX1cIj48L2Rpdj5gXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIFNvbWVDb21wb25lbnQge1xuICogICB0ZXh0OiBzdHJpbmcgPSBcIl9fU29tZSBVbmRlcmxpbmVfX1wiO1xuICogICBvcHRpb25zOiBTaG93ZG93bi5TaG93ZG93bk9wdGlvbnMgPSB7IHVuZGVybGluZTogdHJ1ZSB9O1xuICogICAvLyAuLi5cbiAqIH1cbiAqIGBgYFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdzaG93ZG93bicsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFNob3dkb3duUGlwZSBleHRlbmRzIFNob3dkb3duQ29udmVydGVyIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBtYXJrZG93biB2YWx1ZSB0byBodG1sLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgbWFya2Rvd24gdmFsdWUgdG8gdHJhbnNmb3JtIHRvIGh0bWwuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQSBgU2hvd2Rvd25gIGNvbnZlcnRlciBvcHRpb25zLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRoZSB0cmFuc2Zvcm0gcmVzdWx0IG9mIGB2YWx1ZWAgdG8gaHRtbC5cbiAgICovXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBvcHRpb25zPzogU2hvd2Rvd24uU2hvd2Rvd25PcHRpb25zKTogc3RyaW5nIHtcbiAgICB0aGlzLnNldE9wdGlvbnMob3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMubWFrZUh0bWwodmFsdWUpO1xuICB9XG5cbn1cbiJdfQ==