function addCard()

in packages/Chatdown/lib/index.js [406:455]


function addCard(contentType, currentActivity, rest) {
    let card = { buttons: [] };
    let lines = rest.split('\n');
    for (let line of lines) {
        let start = line.indexOf('=');
        let property = line.substr(0, start).trim().toLowerCase();
        let value = line.substr(start + 1).trim();
        switch (property) {
        case 'title':
        case 'subtitle':
        case 'text':
        case 'aspect':
        case 'value':
        case 'connectioname':
            card[property] = value;
            break;
        case 'image':
            card.image = { url: value };
            break;
        case 'images':
            if (!card.images) {
                card.images = [];
            }
            card.images.push({ url: value });
            break;
        case 'media':
            if (!card.media)
                card.media = [];
            card.media.push({ url: value });
            break;
        case 'buttons':
            for (let button of value.split('|')) {
                card.buttons.push({ title: button.trim(), type: "imBack", value: button.trim() });
            }
            break;
        case 'autostart':
        case 'sharable':
        case 'autoloop':
            card[property] = value.toLowerCase() == 'true';
            break;
        case '':
            break;
        default:
            console.warn(chalk.red.bold(`Skipping unknown card property ${property}\n${line}`));
            break;
        }
    }
    let attachment = { contentType: contentType, content: card };
    (currentActivity.attachments || (currentActivity.attachments = [])).push(attachment);
}