Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
angular-exemplify
Advanced tools
A simple angular 2+ directive for adding code examples based on actual code and markup! Just add `AddExample` to your element and you're done:D
A simple angular 2+ directive for adding code examples based on actual code and markup! Just add AddExample
to your element and you're done:D
Please note that you don't have to use prism and/or bootstrap with angular exemplify although it's recommended.
Run npm install angular-exemplify --save-dev
If you want to use together with prism
Run npm install prismjs --save-dev
If you want to use together with bootstrap 4
Run npm install bootstrap@4.0.0-alpha.6
Please note the instructions below are for projects based on angular-cli, you might need to set up things differently if you're using something else.
Include scripts and styles in build
If you want to use angular exemplify together with prism, make sure to add the prism script and one of the prism theme css files to your .angular-cli.json
config, bootstrap.css is optional:
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.css",
"../node_modules/prismjs/themes/prism-coy.css",
"../node_modules/angular-exemplify/exemplify/css/exemplify.css",
"styles.css"
],
"scripts": [
"../node_modules/prismjs/prism.js"
],
Import ExemplifyModule
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { ExemplifyModule } from "angular-exemplify";
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
ExemplifyModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Add exemplify
together with [context]="this"
to your element like this:
<button exemplify="myExample" [context]="this" class="btn btn-primary" (click)="doSomething()">Action</button>
Where myExample
should be a unique identifier for your example, and context
should point to the component holding the markup (template).
View demo for live preview and more examples.
Attribute | Type | Usage/description | Default |
---|---|---|---|
context | component | to get markup through annotations exemplify needs access to component constructor, in most cases just use [context]="this" unless markup is specified elsewhere. | |
target | element | attach example to this element, use local variable | directive element |
source | string | where to get the markup, 'element' or its 'child' | 'element' |
show | boolean | should the example be shown or hidden by default | false |
customClass | string | class name added to the directive element | |
externalSources | array | an array of objects specifying external sources | |
usePrism | boolean | highlight code examples using prismjs (prismjs has to be included) | true |
navStyle | string | customize the style of the nav links, possible values are "tabs", "pills", "inline" see bootstrap for more info. | 'inline' |
keepInputs | boolean | keep attributes attached to the directive element | false |
escapeStrings | array | an array with strings that should be escaped (necessary for attribute strings that are written using camel case i.e. inputs, template variables etc.), see issue #1 for more info. | |
texts | object | override default texts by passing an object containing one or more of the following properties: heading ,markup ,show ,hide ,copy |
Using external sources
To keep the examples in sync with your code you should reference the source files. Here's an example based on a app published and deployed to github pages.
externalSources = [{
name:'app.module.ts',
src:'https://raw.githubusercontent.com/hjalmers/angular-markup-example/master/src/app/app.module.ts'
},{
name:'app.component.ts',
src:'https://raw.githubusercontent.com/hjalmers/angular-markup-example/master/src/app/app.component.ts'
},{
name:'app.component.css',
src:'https://raw.githubusercontent.com/hjalmers/angular-markup-example/master/src/app/app.component.css',
language:'css'
}]
FAQs
[![Build Status](https://travis-ci.com/hjalmers/angular-exemplify.svg?branch=master)](https://travis-ci.com/hjalmers/angular-exemplify) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/
The npm package angular-exemplify receives a total of 1 weekly downloads. As such, angular-exemplify popularity was classified as not popular.
We found that angular-exemplify demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.