diff --git a/index.js b/index.js index c95a433..f97111b 100755 --- a/index.js +++ b/index.js @@ -1,7 +1,6 @@ #!/usr/bin/env node var async = require('async'); -var email = require('emailjs'); var fs = require('fs'); var path = require('path'); var program = require('commander'); @@ -10,13 +9,13 @@ var scrawl = require('./www/scrawl'); const yaml = require('js-yaml'); program - .version('0.6.0') + .version('0.7.0') // the setup switches .option('-c, --config ', 'The YAML configuration file.') .option('-d, --directory ', 'The directory to process.') // the do something switches .option('-m, --html', 'If set, write the minutes to an index.html file') - .option('-e, --email', 'If set, publish the minutes to the mailing list') + .option('-e, --email', 'If set, write an email.log file for later sending') .option('-i, --index', 'Build meeting index') // the tweak the cli switch .option('-q, --quiet', 'Don\'t print status information to the console') @@ -52,6 +51,7 @@ const logFile = path.resolve(dstDir, 'irc.log'); const changesLogFile = path.resolve(dstDir, 'changes.log'); const audioFile = path.resolve(dstDir, 'audio.ogg'); const indexFile = path.resolve(dstDir, 'index.html'); +const emailContentsFile = path.resolve(dstDir, 'email.log'); const minutesDir = path.join(dstDir, '/..'); const partialsDir = ('partials' in config) @@ -83,34 +83,6 @@ if (!('minutes_base_url' in config)) { // Location of date-based minutes folders; MUST end in a forward slash scrawl.minutes_base_url = config.minutes_base_url; -/************************* Utility Functions *********************************/ -function sendEmail(username, password, hostname, content, callback) { - var server = email.server.connect({ - //user: username, - //password: password, - host: hostname, - ssl: false - }); - - // send the message - server.send({ - text: content, - from: EMAIL_FROM, - //from: username + '@' + hostname, - to: EMAIL_TO, - subject: Mustache.render(EMAIL_SUBJECT, {gDate}) - }, function(err, message) { - if(err) { - console.log('scrawl:', err); - return callback(); - } - - if(!program.quiet) { - console.log(`scrawl: Sent minutes email to ${EMAIL_TO}`); - } - callback(); - }); -} /*************************** Main Functionality ******************************/ async.waterfall([ function(callback) { @@ -270,10 +242,10 @@ async.waterfall([ function(callback) { callback(); } }, function(callback) { - // send the email about the meeting + // generate an email about the meeting if(program.email) { if(!program.quiet) { - console.log('scrawl: Sending new minutes email.'); + console.log('scrawl: Drafting new minutes email.'); } if (!('email' in config)) { @@ -284,11 +256,6 @@ async.waterfall([ function(callback) { return; } - // see sendEmail() - // TODO: don't use global constants... - const EMAIL_TO = config.email.to; - const EMAIL_FROM = config.email.from; - // Mustache template -- vars: gDate // TODO: dates are always Eastern Time...maybe the world is round? // TODO: also the time is still hard coded T_T @@ -306,49 +273,12 @@ Full text of the discussion follows for archival purposes. {{{content}}}`; // generate the body of the email - var content = scrawl.generateMinutes(gLogData, 'text', gDate, haveAudio); - var scribe = content.match(/Scribe:\n\s(.*)\n/g)[0] + const content = scrawl.generateMinutes(gLogData, 'text', gDate, haveAudio); + const scribe = content.match(/Scribe:\n\s(.*)\n/g)[0] .replace(/\n/g, '').replace('Scribe: ', ''); - content = Mustache.render(EMAIL_BODY, - {scribe, gDate, content, - minutes_base_url: scrawl.minutes_base_url, - haveAudio}); - - if(process.env.SCRAWL_EMAIL_USERNAME && process.env.SCRAWL_EMAIL_PASSWORD && - process.env.SCRAWL_EMAIL_SERVER) { - sendEmail( - process.env.SCRAWL_EMAIL_USERNAME, process.env.SCRAWL_EMAIL_PASSWORD, - process.env.SCRAWL_EMAIL_SERVER, content, callback); - } else { - var prompt = require('prompt'); - prompt.start(); - prompt.get({ - properties: { - server: { - description: 'Enter your email server', - pattern: /^.{4,}$/, - message: 'The server name must be at least 4 characters.', - 'default': 'mail.digitalbazaar.com' - }, - username: { - description: 'Enter your email login name', - pattern: /^.{1,}$/, - message: 'The username must be at least 4 characters.', - 'default': 'msporny' - }, - password: { - description: 'Enter your email password', - pattern: /^.{4,}$/, - message: 'The password must be at least 4 characters.', - hidden: true, - 'default': 'password' - } - } - }, function(err, results) { - sendEmail(results.username, results.password, results.server, - content, callback); - }); - } + const body = Mustache.render(EMAIL_BODY, {scribe, gDate, content, + minutes_base_url: scrawl.minutes_base_url, haveAudio}); + fs.writeFileSync(emailContentsFile, body, 'utf-8'); } else { callback(); } diff --git a/package-lock.json b/package-lock.json index e2624a0..ce1fc22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,38 +1,29 @@ { "name": "scrawl", - "version": "0.5.0", + "version": "0.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "scrawl", - "version": "0.5.0", + "version": "0.6.0", "license": "BSD-3-clause", "dependencies": { "async": "~0.2.9", "commander": "~1.0.0", - "emailjs": "~2.1.0", "html-entities": "~1.0.10", "js-yaml": "^3.12.0", - "mailparser": "~0.2.26", - "mime": "^2.3.1", - "moment": "~2.19.3", - "mustache": "^2.3.0", - "prompt": "^1.0.0" + "mustache": "^2.3.0" }, "bin": { "scrawl": "index.js" } }, - "node_modules/addressparser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.3.2.tgz", - "integrity": "sha1-WYc/Nej89sc2HBAjkmHXbhU0i7I=" - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -40,35 +31,12 @@ "node_modules/async": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/colors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz", - "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==", - "engines": { - "node": ">=0.1.90" - } + "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==" }, "node_modules/commander": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/commander/-/commander-1.0.5.tgz", - "integrity": "sha1-RXKVu5duOI6d0NtS3kMz4knz2Iw=", + "integrity": "sha512-Iil6cZ1vitahfQSTrGO3L4v3dtvnfyGpKkXN+aJV9uR24JYxhM9bUfBLat65nU7cIXzOcnkjGtfdCuqaO1caIQ==", "dependencies": { "keypress": "0.1.x" }, @@ -76,71 +44,11 @@ "node": ">= 0.6.x" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/deep-equal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", - "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=" - }, - "node_modules/emailjs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emailjs/-/emailjs-2.1.0.tgz", - "integrity": "sha512-J6FgFkvQ1bn307/YQc8ogHAScYE/xzpKu9uQwJ7euwjimlKub/ux6xvJhN9sUsAjOuPX+658qTbFVAFDN3dJEA==", - "license": "MIT", - "dependencies": { - "addressparser": "^0.3.2", - "emailjs-mime-codec": "^2.0.5", - "moment": "2.20.1", - "starttls": "1.0.1" - } - }, - "node_modules/emailjs-base64": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/emailjs-base64/-/emailjs-base64-1.1.4.tgz", - "integrity": "sha512-4h0xp1jgVTnIQBHxSJWXWanNnmuc5o+k4aHEpcLXSToN8asjB5qbXAexs7+PEsUKcEyBteNYsSvXUndYT2CGGA==" - }, - "node_modules/emailjs-mime-codec": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/emailjs-mime-codec/-/emailjs-mime-codec-2.0.7.tgz", - "integrity": "sha512-Jeg3L2/39Bpi8bFfnVEPm1iGPSyYCrPmMkjhimmy9ao/PFtcXJaGcANQWvWciH+jUcOn5Pto+MMCYOI1h7pNxA==", - "dependencies": { - "emailjs-base64": "^1.1.4", - "ramda": "^0.25.0", - "text-encoding": "^0.6.4" - } - }, - "node_modules/emailjs/node_modules/moment": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", - "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==", - "engines": { - "node": "*" - } - }, - "node_modules/encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dependencies": { - "iconv-lite": "~0.4.13" - } - }, "node_modules/esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -149,95 +57,14 @@ "node": ">=4" } }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "engines": { - "node": "> 0.1.90" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/html-entities": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.0.10.tgz", - "integrity": "sha1-DepZEw3VDfFU6CxM9x0Iwsnclos=", + "integrity": "sha512-m8IoGR6C9czZTkdI8J3yPC/dNF0qRg1Ipov7pte4MaZdA4F+GfNqtgwI3TPFMxrMRHnpcWFsdHuwvv23TyfOcw==", "engines": [ "node >= 0.4.0" - ] - }, - "node_modules/i": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz", - "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/iconv": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/iconv/-/iconv-2.3.0.tgz", - "integrity": "sha512-eu9senpOZ7wzNweLX09jtrCdmEiie8Z5/iMxdIq3i7tkgg562EwKSU9yjXMz8ncaQ0B+845vbqAz+1kPFXzbtQ==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "nan": "^2.3.5" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "dependencies": { - "safer-buffer": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + ], + "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", @@ -255,92 +82,14 @@ "node_modules/keypress": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", - "integrity": "sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo=" - }, - "node_modules/mailparser": { - "version": "0.2.33", - "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-0.2.33.tgz", - "integrity": "sha1-f71f1+8lznSP3qU2I/Din22bCQs=", - "deprecated": "Mailparser versions older than v2.3.0 are deprecated", - "dependencies": { - "encoding": ">=0.1.4", - "mime": "*", - "mimelib": ">=0.2.6" - }, - "optionalDependencies": { - "iconv": "*" - } - }, - "node_modules/mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mimelib": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.2.14.tgz", - "integrity": "sha1-KhqnJL0ZC4W9Um5jF6thBu39aDE=", - "deprecated": "This project is unmaintained", - "dependencies": { - "addressparser": "~0.2.0", - "encoding": "~0.1" - } - }, - "node_modules/mimelib/node_modules/addressparser": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.2.1.tgz", - "integrity": "sha1-0RpbLu2gTP7+vfMZbBCuE9ts1gc=" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment": { - "version": "2.19.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.4.tgz", - "integrity": "sha512-1xFTAknSLfc47DIxHDUbnJWC+UwgWxATmymaxIPQpmMh7LBm7ZbwVEsuushqwL2GYZU0jie4xO+TK44hJPjNSQ==", - "engines": { - "node": "*" - } + "integrity": "sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA==", + "license": "MIT" }, "node_modules/mustache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.0.tgz", - "integrity": "sha1-QCj3d4sXcIpImTCm5SrDvKDaQdA=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", + "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", + "license": "MIT", "bin": { "mustache": "bin/mustache" }, @@ -348,193 +97,11 @@ "npm": ">=1.4.0" } }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "node_modules/nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "optional": true - }, - "node_modules/ncp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", - "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=", - "bin": { - "ncp": "bin/ncp" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkginfo": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", - "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/prompt": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", - "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", - "dependencies": { - "colors": "^1.1.2", - "pkginfo": "0.x.x", - "read": "1.0.x", - "revalidator": "0.1.x", - "utile": "0.3.x", - "winston": "2.1.x" - }, - "engines": { - "node": ">= 0.6.6" - } - }, - "node_modules/ramda": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", - "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==" - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/revalidator": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "engines": { - "node": "*" - } - }, - "node_modules/starttls": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/starttls/-/starttls-1.0.1.tgz", - "integrity": "sha1-5ggcJd5rF49adfjyccFIdEkYO0I=" - }, - "node_modules/text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", - "deprecated": "no longer maintained" - }, - "node_modules/utile": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz", - "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=", - "dependencies": { - "async": "~0.9.0", - "deep-equal": "~0.2.1", - "i": "0.3.x", - "mkdirp": "0.x.x", - "ncp": "1.0.x", - "rimraf": "2.x.x" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/utile/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, - "node_modules/winston": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", - "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", - "dependencies": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "pkginfo": "0.3.x", - "stack-trace": "0.0.x" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/winston/node_modules/async": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" - }, - "node_modules/winston/node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/winston/node_modules/pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" } } } diff --git a/package.json b/package.json index f7357fb..b983804 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "scrawl", - "version": "0.6.0", + "version": "0.7.0", "description": "IRC log processing tool for scribes to assist in creating minutes for W3C group.", "keywords": [ "IRC", @@ -20,13 +20,8 @@ "dependencies": { "async": "~0.2.9", "commander": "~1.0.0", - "emailjs": "~2.1.0", "html-entities": "~1.0.10", "js-yaml": "^3.12.0", - "mailparser": "~0.2.26", - "mime": "^2.3.1", - "moment": "~2.19.3", - "mustache": "^2.3.0", - "prompt": "^1.0.0" + "mustache": "^2.3.0" } } diff --git a/www/scrawl.js b/www/scrawl.js index 0c12fa3..7b7d36c 100644 --- a/www/scrawl.js +++ b/www/scrawl.js @@ -161,9 +161,9 @@ { let rval = ''; + const [h, t] = Number.isInteger(id) ? ['h1', 'Topic'] : ['h2', 'Subtopic']; if(textMode === 'html') { - const [h, t] = Number.isInteger(id) ? ['h1', 'Topic'] : ['h2', 'Subtopic']; rval = '<' + h + ' onmouseout="$(\'#link-topic-' + id + '\').hide()" ' + 'onmouseover="$(\'#link-topic-' + id + '\').show()" ' + 'id="topic-' + id + '" class="topic">\n';