mail_to.js 785 B

123456789101112131415161718192021222324252627282930313233343536
  1. 'use strict';
  2. const { htmlTag } = require('hexo-util');
  3. const qs = require('querystring');
  4. function mailToHelper(path, text, options = {}) {
  5. if (Array.isArray(path)) path = path.join(',');
  6. if (!text) text = path;
  7. const attrs = Object.assign({
  8. href: `mailto:${path}`,
  9. title: text
  10. }, options);
  11. if (attrs.class && Array.isArray(attrs.class)) {
  12. attrs.class = attrs.class.join(' ');
  13. }
  14. const data = {};
  15. ['subject', 'cc', 'bcc', 'body'].forEach(i => {
  16. const item = attrs[i];
  17. if (item) {
  18. data[i] = Array.isArray(item) ? item.join(',') : item;
  19. attrs[i] = null;
  20. }
  21. });
  22. const querystring = qs.stringify(data);
  23. if (querystring) attrs.href += `?${querystring}`;
  24. return htmlTag('a', attrs, text);
  25. }
  26. module.exports = mailToHelper;