'
961 | + (escaped ? code : escape(code, true))
962 | + '\n
';
963 | }
964 |
965 | return ''
969 | + (escaped ? code : escape(code, true))
970 | + '\n
\n';
971 | };
972 |
973 | Renderer.prototype.blockquote = function(quote) {
974 | return '\n' + quote + '\n'; 975 | }; 976 | 977 | Renderer.prototype.html = function(html) { 978 | return html; 979 | }; 980 | 981 | Renderer.prototype.heading = function(text, level, raw) { 982 | return '
' + text + '
\n'; 1009 | }; 1010 | 1011 | Renderer.prototype.table = function(header, body) { 1012 | return '' + text + '
';
1045 | };
1046 |
1047 | Renderer.prototype.br = function() {
1048 | return this.options.xhtml ? 'An error occured:
' 1410 | + escape(e.message + '', true) 1411 | + ''; 1412 | } 1413 | throw e; 1414 | } 1415 | } 1416 | 1417 | /** 1418 | * Options 1419 | */ 1420 | 1421 | marked.options = 1422 | marked.setOptions = function(opt) { 1423 | merge(marked.defaults, opt); 1424 | return marked; 1425 | }; 1426 | 1427 | marked.defaults = { 1428 | gfm: true, 1429 | tables: true, 1430 | breaks: false, 1431 | pedantic: false, 1432 | sanitize: false, 1433 | sanitizer: null, 1434 | mangle: true, 1435 | smartLists: false, 1436 | silent: false, 1437 | highlight: null, 1438 | langPrefix: 'lang-', 1439 | smartypants: false, 1440 | headerPrefix: '', 1441 | renderer: new Renderer, 1442 | xhtml: false 1443 | }; 1444 | 1445 | /** 1446 | * Expose 1447 | */ 1448 | 1449 | marked.Parser = Parser; 1450 | marked.parser = Parser.parse; 1451 | 1452 | marked.Renderer = Renderer; 1453 | 1454 | marked.Lexer = Lexer; 1455 | marked.lexer = Lexer.lex; 1456 | 1457 | marked.InlineLexer = InlineLexer; 1458 | marked.inlineLexer = InlineLexer.output; 1459 | 1460 | marked.parse = marked; 1461 | 1462 | if (true) { 1463 | module.exports = marked; 1464 | } else if (typeof define === 'function' && define.amd) { 1465 | define(function() { return marked; }); 1466 | } else { 1467 | this.marked = marked; 1468 | } 1469 | 1470 | }).call(function() { 1471 | return this || (typeof window !== 'undefined' ? window : global); 1472 | }()); 1473 | 1474 | /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) 1475 | 1476 | /***/ }, 1477 | /* 3 */ 1478 | /***/ function(module, exports, __webpack_require__) { 1479 | 1480 | module.exports = __webpack_require__(4) 1481 | 1482 | /* webpack only 1483 | if (DEBUG && global.console) { 1484 | console.debug('debug mode') 1485 | } 1486 | */ 1487 | 1488 | 1489 | /***/ }, 1490 | /* 4 */ 1491 | /***/ function(module, exports, __webpack_require__) { 1492 | 1493 | var cou = __webpack_require__(5) 1494 | 1495 | module.exports = cou.extend(_, cou) 1496 | 1497 | __webpack_require__(7) 1498 | __webpack_require__(8) 1499 | __webpack_require__(9) 1500 | __webpack_require__(11) 1501 | __webpack_require__(12) 1502 | __webpack_require__(13) 1503 | 1504 | _.mixin(_, _) 1505 | 1506 | function _(val) { 1507 | if (!(this instanceof _)) return new _(val) 1508 | this.__value = val 1509 | this.__chain = false 1510 | } 1511 | 1512 | 1513 | 1514 | /***/ }, 1515 | /* 5 */ 1516 | /***/ function(module, exports, __webpack_require__) { 1517 | 1518 | var is = __webpack_require__(6) 1519 | 1520 | var slice = [].slice 1521 | 1522 | var _ = exports 1523 | 1524 | _.is = is 1525 | 1526 | _.extend = _.assign = extend 1527 | 1528 | _.each = each 1529 | 1530 | _.map = function(arr, fn) { 1531 | var ret = [] 1532 | each(arr, function(item, i, arr) { 1533 | ret[i] = fn(item, i, arr) 1534 | }) 1535 | return ret 1536 | } 1537 | 1538 | _.filter = function(arr, fn) { 1539 | var ret = [] 1540 | each(arr, function(item, i, arr) { 1541 | var val = fn(item, i, arr) 1542 | if (val) ret.push(item) 1543 | }) 1544 | return ret 1545 | } 1546 | 1547 | _.some = function(arr, fn) { 1548 | return -1 != findIndex(arr, fn) 1549 | } 1550 | 1551 | _.every = function(arr, fn) { 1552 | return -1 == findIndex(arr, negate(fn)) 1553 | } 1554 | 1555 | _.reduce = reduce 1556 | 1557 | _.findIndex = findIndex 1558 | 1559 | _.find = function(arr, fn) { 1560 | var index = _.findIndex(arr, fn) 1561 | if (-1 != index) { 1562 | return arr[index] 1563 | } 1564 | } 1565 | 1566 | _.indexOf = indexOf 1567 | 1568 | _.includes = function(val, sub) { 1569 | return -1 != indexOf(val, sub) 1570 | } 1571 | 1572 | _.toArray = toArray 1573 | 1574 | _.slice = function(arr, start, end) { 1575 | // support array and string 1576 | var ret = [] // default return array 1577 | var len = getLength(arr) 1578 | if (len >= 0) { 1579 | start = start || 0 1580 | end = end || len 1581 | // raw array and string use self slice 1582 | if (!is.fn(arr.slice)) { 1583 | arr = toArray(arr) 1584 | } 1585 | ret = arr.slice(start, end) 1586 | } 1587 | return ret 1588 | } 1589 | 1590 | _.negate = negate 1591 | 1592 | _.forIn = forIn 1593 | 1594 | _.keys = keys 1595 | 1596 | var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g 1597 | 1598 | _.trim = function(str) { 1599 | if (null == str) return '' 1600 | return ('' + str).replace(rtrim, '') 1601 | } 1602 | 1603 | _.noop = function() {} 1604 | 1605 | _.len = getLength 1606 | 1607 | function getLength(arr) { 1608 | if (null != arr) return arr.length 1609 | } 1610 | 1611 | function each(arr, fn) { 1612 | var len = getLength(arr) 1613 | if (len && is.fn(fn)) { 1614 | for (var i = 0; i < len; i++) { 1615 | if (false === fn(arr[i], i, arr)) break 1616 | } 1617 | } 1618 | return arr 1619 | } 1620 | 1621 | function findIndex(arr, fn) { 1622 | var ret = -1 1623 | each(arr, function(item, i, arr) { 1624 | if (fn(item, i, arr)) { 1625 | ret = i 1626 | return false 1627 | } 1628 | }) 1629 | return ret 1630 | } 1631 | 1632 | function toArray(arr) { 1633 | var ret = [] 1634 | each(arr, function(item) { 1635 | ret.push(item) 1636 | }) 1637 | return ret 1638 | } 1639 | 1640 | 1641 | function extend(target) { 1642 | if (target) { 1643 | var sources = slice.call(arguments, 1) 1644 | each(sources, function(src) { 1645 | forIn(src, function(val, key) { 1646 | if (!is.undef(val)) { 1647 | target[key] = val 1648 | } 1649 | }) 1650 | }) 1651 | } 1652 | return target 1653 | } 1654 | 1655 | function negate(fn) { 1656 | return function() { 1657 | return !fn.apply(this, arguments) 1658 | } 1659 | } 1660 | 1661 | function indexOf(val, sub) { 1662 | if (is.string(val)) return val.indexOf(sub) 1663 | 1664 | return findIndex(val, function(item) { 1665 | // important! 1666 | return sub === item 1667 | }) 1668 | } 1669 | 1670 | function reduce(arr, fn, prev) { 1671 | each(arr, function(item, i) { 1672 | prev = fn(prev, item, i, arr) 1673 | }) 1674 | return prev 1675 | } 1676 | 1677 | function forIn(hash, fn) { 1678 | if (hash) { 1679 | for (var key in hash) { 1680 | if (is.owns(hash, key)) { 1681 | if (false === fn(hash[key], key, hash)) break 1682 | } 1683 | } 1684 | } 1685 | return hash 1686 | } 1687 | 1688 | function keys(hash) { 1689 | var ret = [] 1690 | forIn(hash, function(val, key) { 1691 | ret.push(key) 1692 | }) 1693 | return ret 1694 | } 1695 | 1696 | 1697 | 1698 | /***/ }, 1699 | /* 6 */ 1700 | /***/ function(module, exports) { 1701 | 1702 | /* WEBPACK VAR INJECTION */(function(global) {var is = exports 1703 | 1704 | var obj = Object.prototype 1705 | 1706 | var navigator = global.navigator 1707 | 1708 | // reserved words in es3: instanceof null undefined arguments boolean false true function int 1709 | // only have is.string and is.object, not is.str and is.obj 1710 | // instanceof null undefined arguments boolean false true function int 1711 | 1712 | is.browser = function() { 1713 | if (!is.wechatApp()) { 1714 | if (navigator && global.window == global) { 1715 | return true 1716 | } 1717 | } 1718 | return false 1719 | } 1720 | 1721 | // simple modern browser detect 1722 | is.h5 = function() { 1723 | if (is.browser() && navigator.geolocation) { 1724 | return true 1725 | } 1726 | return false 1727 | } 1728 | 1729 | is.mobile = function() { 1730 | if (is.browser() && /mobile/i.test(navigator.userAgent)) { 1731 | return true 1732 | } 1733 | return false 1734 | } 1735 | 1736 | is.wechatApp = function() { 1737 | if ('object' == typeof wx) { 1738 | if (wx && is.fn(wx.createVideoContext)) { 1739 | // wechat js sdk has no createVideoContext 1740 | return true 1741 | } 1742 | } 1743 | return false 1744 | } 1745 | 1746 | function _class(val) { 1747 | var name = obj.toString.call(val) 1748 | // [object Class] 1749 | return name.substring(8, name.length - 1).toLowerCase() 1750 | } 1751 | 1752 | function _type(val) { 1753 | // undefined object boolean number string symbol function 1754 | return typeof val 1755 | } 1756 | 1757 | function owns(owner, key) { 1758 | return obj.hasOwnProperty.call(owner, key) 1759 | } 1760 | 1761 | is._class = _class 1762 | 1763 | is._type = _type 1764 | 1765 | is.owns = owns 1766 | 1767 | // not a number 1768 | is.nan = function(val) { 1769 | return val !== val 1770 | } 1771 | 1772 | is.bool = function(val) { 1773 | return 'boolean' == _class(val) 1774 | } 1775 | 1776 | is.infinite = function(val) { 1777 | return val == Infinity || val == -Infinity 1778 | } 1779 | 1780 | is.number = function(num) { 1781 | return !isNaN(num) && 'number' == _class(num) 1782 | } 1783 | 1784 | // integer or decimal 1785 | is.iod = function(val) { 1786 | if (is.number(val) && !is.infinite(val)) { 1787 | return true 1788 | } 1789 | return false 1790 | } 1791 | 1792 | is.decimal = function(val) { 1793 | if (is.iod(val)) { 1794 | return 0 != val % 1 1795 | } 1796 | return false 1797 | } 1798 | 1799 | is.integer = function(val) { 1800 | if (is.iod(val)) { 1801 | return 0 == val % 1 1802 | } 1803 | return false 1804 | } 1805 | 1806 | // object or function 1807 | is.oof = function(val) { 1808 | if (val) { 1809 | var tp = _type(val) 1810 | return 'object' == tp || 'function' == tp 1811 | } 1812 | return false 1813 | } 1814 | 1815 | // regexp should return object 1816 | is.object = function(obj) { 1817 | return is.oof(obj) && 'function' != _class(obj) 1818 | } 1819 | 1820 | is.hash = is.plainObject = function(hash) { 1821 | if (hash) { 1822 | if ('object' == _class(hash)) { 1823 | // old window is object 1824 | if (hash.nodeType || hash.setInterval) { 1825 | return false 1826 | } 1827 | return true 1828 | } 1829 | } 1830 | return false 1831 | } 1832 | 1833 | is.undef = function(val) { 1834 | return 'undefined' == _type(val) 1835 | } 1836 | 1837 | // host function should return function, e.g. alert 1838 | is.fn = function(fn) { 1839 | return 'function' == _class(fn) 1840 | } 1841 | 1842 | is.string = function(str) { 1843 | return 'string' == _class(str) 1844 | } 1845 | 1846 | // number or string 1847 | is.nos = function(val) { 1848 | return is.iod(val) || is.string(val) 1849 | } 1850 | 1851 | is.array = function(arr) { 1852 | return 'array' == _class(arr) 1853 | } 1854 | 1855 | is.arraylike = function(arr) { 1856 | // window has length for iframe too, but it is not arraylike 1857 | if (!is.window(arr) && is.object(arr)) { 1858 | var len = arr.length 1859 | if (is.integer(len) && len >= 0) { 1860 | return true 1861 | } 1862 | } 1863 | return false 1864 | } 1865 | 1866 | is.window = function(val) { 1867 | if (val && val.window == val) { 1868 | return true 1869 | } 1870 | return false 1871 | } 1872 | 1873 | is.empty = function(val) { 1874 | if (is.string(val) || is.arraylike(val)) { 1875 | return 0 === val.length 1876 | } 1877 | if (is.hash(val)) { 1878 | for (var key in val) { 1879 | if (owns(val, key)) { 1880 | return false 1881 | } 1882 | } 1883 | } 1884 | return true 1885 | } 1886 | 1887 | is.element = function(elem) { 1888 | if (elem && 1 === elem.nodeType) { 1889 | return true 1890 | } 1891 | return false 1892 | } 1893 | 1894 | is.regexp = function(val) { 1895 | return 'regexp' == _class(val) 1896 | } 1897 | 1898 | 1899 | /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) 1900 | 1901 | /***/ }, 1902 | /* 7 */ 1903 | /***/ function(module, exports, __webpack_require__) { 1904 | 1905 | var _ = module.exports = __webpack_require__(4) 1906 | 1907 | var each = _.each 1908 | var includes = _.includes 1909 | var is = _.is 1910 | var proto = Array.prototype 1911 | 1912 | _.reject = function(arr, fn) { 1913 | return _.filter(arr, function(val, i, arr) { 1914 | return !fn(val, i, arr) 1915 | }) 1916 | } 1917 | 1918 | _.without = function(arr) { 1919 | var other = _.slice(arguments, 1) 1920 | return _.difference(arr, other) 1921 | } 1922 | 1923 | _.difference = function(arr, other) { 1924 | var ret = [] 1925 | _.each(arr, function(val) { 1926 | if (!includes(other, val)) { 1927 | ret.push(val) 1928 | } 1929 | }) 1930 | return ret 1931 | } 1932 | 1933 | _.pluck = function(arr, key) { 1934 | return _.map(arr, function(item) { 1935 | if (item) return item[key] 1936 | }) 1937 | } 1938 | 1939 | _.size = function(arr) { 1940 | var len = _.len(arr) 1941 | if (null == len) { 1942 | len = _.keys(arr).length 1943 | } 1944 | return len 1945 | } 1946 | 1947 | _.first = function(arr) { 1948 | if (arr) return arr[0] 1949 | } 1950 | 1951 | _.last = function(arr) { 1952 | var len = _.len(arr) 1953 | if (len) { 1954 | return arr[len - 1] 1955 | } 1956 | } 1957 | 1958 | _.asyncMap = function(arr, fn, cb) { 1959 | // desperate 1960 | var ret = [] 1961 | var count = 0 1962 | var hasDone, hasStart 1963 | 1964 | each(arr, function(arg, i) { 1965 | hasStart = true 1966 | fn(arg, function(err, val) { 1967 | if (hasDone) return 1968 | count++ 1969 | if (err) { 1970 | hasDone = true 1971 | return cb(err) 1972 | } 1973 | ret[i] = val 1974 | if (count == arr.length) { 1975 | hasDone = true 1976 | cb(null, ret) 1977 | } 1978 | }) 1979 | }) 1980 | 1981 | if (!hasStart) cb(null) // empty 1982 | } 1983 | 1984 | _.uniq = function(arr) { 1985 | return _.uniqBy(arr) 1986 | } 1987 | 1988 | _.uniqBy = function(arr, fn) { 1989 | var ret = [] 1990 | var pool = [] 1991 | if (!is.fn(fn)) { 1992 | fn = null 1993 | } 1994 | each(arr, function(item) { 1995 | var val = item 1996 | if (fn) { 1997 | val = fn(item) 1998 | } 1999 | if (!includes(pool, val)) { 2000 | pool.push(val) 2001 | ret.push(item) 2002 | } 2003 | }) 2004 | return ret 2005 | } 2006 | 2007 | _.flatten = function(arrs) { 2008 | var ret = [] 2009 | each(arrs, function(arr) { 2010 | if (is.arraylike(arr)) { 2011 | each(arr, function(item) { 2012 | ret.push(item) 2013 | }) 2014 | } else ret.push(arr) 2015 | }) 2016 | return ret 2017 | } 2018 | 2019 | _.union = function() { 2020 | return _.uniq(_.flatten(arguments)) 2021 | } 2022 | 2023 | _.sample = function(arr, n) { 2024 | var ret = _.toArray(arr) 2025 | var len = ret.length 2026 | var need = Math.min(n || 1, len) 2027 | for (var i = 0; i < len; i++) { 2028 | var rand = _.random(i, len - 1) 2029 | var tmp = ret[rand] 2030 | ret[rand] = ret[i] 2031 | ret[i] = tmp 2032 | } 2033 | ret.length = need 2034 | if (null == n) { 2035 | return ret[0] 2036 | } 2037 | return ret 2038 | } 2039 | 2040 | _.shuffle = function(arr) { 2041 | return _.sample(arr, Infinity) 2042 | } 2043 | 2044 | _.compact = function(arr) { 2045 | return _.filter(arr, _.identity) 2046 | } 2047 | 2048 | _.rest = function(arr) { 2049 | return _.slice(arr, 1) 2050 | } 2051 | 2052 | _.invoke = function() { 2053 | var args = arguments 2054 | var arr = args[0] 2055 | var fn = args[1] 2056 | var isFunc = is.fn(fn) 2057 | args = _.slice(args, 2) 2058 | 2059 | return _.map(arr, function(item) { 2060 | if (isFunc) { 2061 | return fn.apply(item, args) 2062 | } 2063 | if (null != item) { 2064 | var method = item[fn] 2065 | if (is.fn(method)) { 2066 | return method.apply(item, args) 2067 | } 2068 | } 2069 | }) 2070 | } 2071 | 2072 | _.partition = function(arr, fn) { 2073 | var hash = _.groupBy(arr, function(val, i, arr) { 2074 | var ret = fn(val, i, arr) 2075 | if (ret) return 1 2076 | return 2 2077 | }) 2078 | return [hash[1] || [], hash[2] || []] 2079 | } 2080 | 2081 | _.groupBy = function(arr, fn) { 2082 | var hash = {} 2083 | _.each(arr, function(val, i, arr) { 2084 | var ret = fn(val, i, arr) 2085 | hash[ret] = hash[ret] || [] 2086 | hash[ret].push(val) 2087 | }) 2088 | return hash 2089 | } 2090 | 2091 | _.range = function() { 2092 | var args = arguments 2093 | if (args.length < 2) { 2094 | return _.range(args[1], args[0]) 2095 | } 2096 | var start = args[0] || 0 2097 | var last = args[1] || 0 2098 | var step = args[2] 2099 | if (!is.number(step)) { 2100 | step = 1 2101 | } 2102 | var count = last - start 2103 | if (0 != step) { 2104 | count = count / step 2105 | } 2106 | var ret = [] 2107 | var val = start 2108 | for (var i = 0; i < count; i++) { 2109 | ret.push(val) 2110 | val += step 2111 | } 2112 | return ret 2113 | } 2114 | 2115 | _.pullAt = function(arr) { 2116 | // `_.at` but mutate 2117 | var indexes = _.slice(arguments, 1) 2118 | return mutateDifference(arr, indexes) 2119 | } 2120 | 2121 | function mutateDifference(arr, indexes) { 2122 | var ret = [] 2123 | var len = _.len(indexes) 2124 | if (len) { 2125 | indexes = indexes.sort(function(a, b) { 2126 | return a - b 2127 | }) 2128 | while (len--) { 2129 | var index = indexes[len] 2130 | ret.push(proto.splice.call(arr, index, 1)[0]) 2131 | } 2132 | } 2133 | ret.reverse() 2134 | return ret 2135 | } 2136 | 2137 | _.remove = function(arr, fn) { 2138 | // `_.filter` but mutate 2139 | var len = _.len(arr) || 0 2140 | var indexes = [] 2141 | while (len--) { 2142 | if (fn(arr[len], len, arr)) { 2143 | indexes.push(len) 2144 | } 2145 | } 2146 | return mutateDifference(arr, indexes) 2147 | } 2148 | 2149 | _.fill = function(val, start, end) { 2150 | // TODO 2151 | } 2152 | 2153 | 2154 | /***/ }, 2155 | /* 8 */ 2156 | /***/ function(module, exports, __webpack_require__) { 2157 | 2158 | var _ = module.exports = __webpack_require__(4) 2159 | 2160 | var is = _.is 2161 | var each = _.each 2162 | var forIn = _.forIn 2163 | 2164 | _.only = function(obj, keys) { 2165 | obj = obj || {} 2166 | if (is.string(keys)) keys = keys.split(/ +/) 2167 | return _.reduce(keys, function(ret, key) { 2168 | if (null != obj[key]) ret[key] = obj[key] 2169 | return ret 2170 | }, {}) 2171 | } 2172 | 2173 | _.values = function(obj) { 2174 | return _.map(_.keys(obj), function(key) { 2175 | return obj[key] 2176 | }) 2177 | } 2178 | 2179 | _.pick = function(obj, fn) { 2180 | if (!is.fn(fn)) { 2181 | return _.pick(obj, function(val, key) { 2182 | return key == fn 2183 | }) 2184 | } 2185 | var ret = {} 2186 | forIn(obj, function(val, key, obj) { 2187 | if (fn(val, key, obj)) { 2188 | ret[key] = val 2189 | } 2190 | }) 2191 | return ret 2192 | } 2193 | 2194 | _.functions = function(obj) { 2195 | return _.keys(_.pick(obj, function(val) { 2196 | return is.fn(val) 2197 | })) 2198 | } 2199 | 2200 | _.mapKeys = function(obj, fn) { 2201 | var ret = {} 2202 | forIn(obj, function(val, key, obj) { 2203 | var newKey = fn(val, key, obj) 2204 | ret[newKey] = val 2205 | }) 2206 | return ret 2207 | } 2208 | 2209 | _.mapObject = _.mapValues = function(obj, fn) { 2210 | var ret = {} 2211 | forIn(obj, function(val, key, obj) { 2212 | ret[key] = fn(val, key, obj) 2213 | }) 2214 | return ret 2215 | } 2216 | 2217 | // return value when walk through path, otherwise return empty 2218 | _.get = function(obj, path) { 2219 | path = toPath(path) 2220 | if (path.length) { 2221 | var flag = _.every(path, function(key) { 2222 | if (null != obj) { // obj can be indexed 2223 | obj = obj[key] 2224 | return true 2225 | } 2226 | }) 2227 | if (flag) return obj 2228 | } 2229 | } 2230 | 2231 | _.has = function(obj, path) { 2232 | path = toPath(path) 2233 | if (path.length) { 2234 | var flag = _.every(path, function(key) { 2235 | if (null != obj && is.owns(obj, key)) { 2236 | obj = obj[key] 2237 | return true 2238 | } 2239 | }) 2240 | if (flag) return true 2241 | } 2242 | return false 2243 | } 2244 | 2245 | _.set = function(obj, path, val) { 2246 | path = toPath(path) 2247 | var cur = obj 2248 | _.every(path, function(key, i) { 2249 | if (is.oof(cur)) { 2250 | if (i + 1 == path.length) { 2251 | cur[key] = val 2252 | } else { 2253 | var item = cur[key] 2254 | if (null == item) { 2255 | // fill value with {} or [] 2256 | var item = {} 2257 | if (~~key == key) { 2258 | item = [] 2259 | } 2260 | } 2261 | cur = cur[key] = item 2262 | return true 2263 | } 2264 | } 2265 | }) 2266 | return obj 2267 | } 2268 | 2269 | _.create = (function() { 2270 | function Object() {} // so it seems like Object.create 2271 | return function(proto, property) { 2272 | // not same as Object.create, Object.create(proto, propertyDescription) 2273 | if ('object' != typeof proto) { 2274 | // null is ok 2275 | proto = null 2276 | } 2277 | Object.prototype = proto 2278 | return _.extend(new Object, property) 2279 | } 2280 | })() 2281 | 2282 | _.defaults = function() { 2283 | var args = arguments 2284 | var target = args[0] 2285 | var sources = _.slice(args, 1) 2286 | if (target) { 2287 | _.each(sources, function(src) { 2288 | _.mapObject(src, function(val, key) { 2289 | if (is.undef(target[key])) { 2290 | target[key] = val 2291 | } 2292 | }) 2293 | }) 2294 | } 2295 | return target 2296 | } 2297 | 2298 | _.isMatch = function(obj, src) { 2299 | var ret = true 2300 | obj = obj || {} 2301 | forIn(src, function(val, key) { 2302 | if (val !== obj[key]) { 2303 | ret = false 2304 | return false 2305 | } 2306 | }) 2307 | return ret 2308 | } 2309 | 2310 | _.toPlainObject = function(val) { 2311 | var ret = {} 2312 | forIn(val, function(val, key) { 2313 | ret[key] = val 2314 | }) 2315 | return ret 2316 | } 2317 | 2318 | _.invert = function(obj) { 2319 | var ret = {} 2320 | forIn(obj, function(val, key) { 2321 | ret[val] = key 2322 | }) 2323 | return ret 2324 | } 2325 | 2326 | // topath, copy from lodash 2327 | 2328 | var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g 2329 | var reEscapeChar = /\\(\\)?/g; 2330 | 2331 | function toPath(val) { 2332 | if (is.array(val)) return val 2333 | var ret = [] 2334 | _.tostr(val).replace(rePropName, function(match, number, quote, string) { 2335 | var item = number || match 2336 | if (quote) { 2337 | item = string.replace(reEscapeChar, '$1') 2338 | } 2339 | ret.push(item) 2340 | }) 2341 | return ret 2342 | } 2343 | 2344 | 2345 | /***/ }, 2346 | /* 9 */ 2347 | /***/ function(module, exports, __webpack_require__) { 2348 | 2349 | var _ = module.exports = __webpack_require__(4) 2350 | 2351 | var is = _.is 2352 | var slice = _.slice 2353 | 2354 | _.bind = function(fn, ctx) { 2355 | if (is.string(ctx)) { 2356 | var obj = fn 2357 | fn = obj[ctx] 2358 | ctx = obj 2359 | } 2360 | if (!is.fn(fn)) return fn 2361 | var args = slice(arguments, 2) 2362 | ctx = ctx || this 2363 | return function() { 2364 | return fn.apply(ctx, _.flatten([args, arguments])) 2365 | } 2366 | } 2367 | 2368 | // from lang.js `Function.prototype.inherits` 2369 | // so belong to function 2370 | _.inherits = function(ctor, superCtor) { 2371 | ctor.super_ = superCtor 2372 | ctor.prototype = _.create(superCtor.prototype, { 2373 | constructor: ctor 2374 | }) 2375 | } 2376 | 2377 | _.delay = function(fn, wait) { 2378 | var args = _.slice(arguments, 2) 2379 | return setTimeout(function() { 2380 | fn.apply(this, args) 2381 | }, wait) 2382 | } 2383 | 2384 | _.before = function(n, fn) { 2385 | return function() { 2386 | if (n > 1) { 2387 | n-- 2388 | return fn.apply(this, arguments) 2389 | } 2390 | } 2391 | } 2392 | 2393 | _.once = function(fn) { 2394 | return _.before(2, fn) 2395 | } 2396 | 2397 | _.after = function(n, fn) { 2398 | return function() { 2399 | if (n > 1) { 2400 | n-- 2401 | } else { 2402 | return fn.apply(this, arguments) 2403 | } 2404 | } 2405 | } 2406 | 2407 | _.throttle = function(fn, wait, opt) { 2408 | wait = wait || 0 2409 | opt = _.extend({ 2410 | leading: true, 2411 | trailing: true, 2412 | maxWait: wait 2413 | }, opt) 2414 | return _.debounce(fn, wait, opt) 2415 | } 2416 | 2417 | _.debounce = function(fn, wait, opt) { 2418 | wait = wait || 0 2419 | opt = _.extend({ 2420 | leading: false, 2421 | trailing: true 2422 | }, opt) 2423 | var maxWait = opt.maxWait 2424 | var lastExec = 0 // wait 2425 | var lastCall = 0 // just for maxWait 2426 | var now = _.now() 2427 | var timer 2428 | 2429 | if (!opt.leading) { 2430 | lastExec = now 2431 | } 2432 | 2433 | function ifIsCD() { 2434 | if (now - lastExec > wait) return false 2435 | if (maxWait && now - lastCall > maxWait) return false 2436 | return true 2437 | } 2438 | 2439 | function exec(fn, ctx, args) { 2440 | lastExec = _.now() // update last exec 2441 | return fn.apply(ctx, args) 2442 | } 2443 | 2444 | function cancel() { 2445 | if (timer) { 2446 | clearTimeout(timer) 2447 | timer = null 2448 | } 2449 | } 2450 | 2451 | function debounced() { 2452 | now = _.now() // update now 2453 | var isCD = ifIsCD() 2454 | lastCall = now // update last call 2455 | var me = this 2456 | var args = arguments 2457 | 2458 | cancel() 2459 | 2460 | if (!isCD) { 2461 | exec(fn, me, args) 2462 | } else { 2463 | if (opt.trailing) { 2464 | timer = _.delay(function() { 2465 | exec(fn, me, args) 2466 | }, wait) 2467 | } 2468 | } 2469 | } 2470 | 2471 | debounced.cancel = cancel 2472 | 2473 | return debounced 2474 | } 2475 | 2476 | function memoize(fn) { 2477 | var cache = new memoize.Cache 2478 | function memoized() { 2479 | var args = arguments 2480 | var key = args[0] 2481 | if (!cache.has(key)) { 2482 | var ret = fn.apply(this, args) 2483 | cache.set(key, ret) 2484 | } 2485 | return cache.get(key) 2486 | } 2487 | memoized.cache = cache 2488 | return memoized 2489 | } 2490 | 2491 | memoize.Cache = __webpack_require__(10) 2492 | 2493 | _.memoize = memoize 2494 | 2495 | _.wrap = function(val, fn) { 2496 | return function() { 2497 | var args = [val] 2498 | args.push.apply(args, arguments) 2499 | return fn.apply(this, args) 2500 | } 2501 | } 2502 | 2503 | _.curry = function(fn) { 2504 | var len = fn.length 2505 | return setter([]) 2506 | 2507 | function setter(args) { 2508 | return function() { 2509 | var arr = args.concat(_.slice(arguments)) 2510 | if (arr.length >= len) { 2511 | arr.length = len 2512 | return fn.apply(this, arr) 2513 | } 2514 | return setter(arr) 2515 | } 2516 | } 2517 | } 2518 | 2519 | 2520 | /***/ }, 2521 | /* 10 */ 2522 | /***/ function(module, exports, __webpack_require__) { 2523 | 2524 | var _ = __webpack_require__(4) 2525 | var is = _.is 2526 | 2527 | module.exports = Cache 2528 | 2529 | function Cache() { 2530 | this.data = {} 2531 | } 2532 | 2533 | var proto = Cache.prototype 2534 | 2535 | proto.has = function(key) { 2536 | return is.owns(this.data, key) 2537 | } 2538 | 2539 | proto.get = function(key) { 2540 | return this.data[key] 2541 | } 2542 | 2543 | proto.set = function(key, val) { 2544 | this.data[key] = val 2545 | } 2546 | 2547 | proto['delete'] = function(key) { 2548 | delete this.data[key] 2549 | } 2550 | 2551 | 2552 | /***/ }, 2553 | /* 11 */ 2554 | /***/ function(module, exports, __webpack_require__) { 2555 | 2556 | var _ = module.exports = __webpack_require__(4) 2557 | var is = _.is 2558 | 2559 | _.now = function() { 2560 | return +new Date 2561 | } 2562 | 2563 | _.constant = function(val) { 2564 | return function() { 2565 | return val 2566 | } 2567 | } 2568 | 2569 | _.identity = function(val) { 2570 | return val 2571 | } 2572 | 2573 | _.random = function(min, max) { 2574 | return min + Math.floor(Math.random() * (max - min + 1)) 2575 | } 2576 | 2577 | _.mixin = function(dst, src, opt) { 2578 | var keys = _.functions(src) 2579 | if (dst) { 2580 | if (is.fn(dst)) { 2581 | opt = opt || {} 2582 | var isChain = !!opt.chain 2583 | // add to prototype 2584 | var proto = dst.prototype 2585 | _.each(keys, function(key) { 2586 | var fn = src[key] 2587 | proto[key] = function() { 2588 | var me = this 2589 | var args = [me.__value] 2590 | args.push.apply(args, arguments) 2591 | var ret = fn.apply(me, args) 2592 | if (me.__chain) { 2593 | me.__value = ret 2594 | return me 2595 | } 2596 | return ret 2597 | } 2598 | }) 2599 | } else { 2600 | _.each(keys, function(key) { 2601 | dst[key] = src[key] 2602 | }) 2603 | } 2604 | } 2605 | return dst 2606 | } 2607 | 2608 | _.chain = function(val) { 2609 | var ret = _(val) 2610 | ret.__chain = true 2611 | return ret 2612 | } 2613 | 2614 | _.value = function() { 2615 | this.__chain = false 2616 | return this.__value 2617 | } 2618 | 2619 | 2620 | /***/ }, 2621 | /* 12 */ 2622 | /***/ function(module, exports, __webpack_require__) { 2623 | 2624 | var _ = module.exports = __webpack_require__(4) 2625 | 2626 | _.tostr = tostr // lodash toString 2627 | 2628 | var indexOf = _.indexOf 2629 | 2630 | _.split = function(str, separator, limit) { 2631 | str = tostr(str) 2632 | return str.split(separator, limit) 2633 | } 2634 | 2635 | _.capitalize = function(str) { 2636 | str = tostr(str) 2637 | return str.charAt(0).toUpperCase() + str.substr(1) 2638 | } 2639 | 2640 | _.decapitalize = function(str) { 2641 | str = tostr(str) 2642 | return str.charAt(0).toLowerCase() + str.substr(1) 2643 | } 2644 | 2645 | _.camelCase = function(str) { 2646 | str = tostr(str) 2647 | var arr = str.split(/[^\w]|_+/) 2648 | arr = _.map(arr, function(val) { 2649 | return _.capitalize(val) 2650 | }) 2651 | return _.decapitalize(arr.join('')) 2652 | } 2653 | 2654 | _.startsWith = function(str, val) { 2655 | return 0 == indexOf(str, val) 2656 | } 2657 | 2658 | _.endsWith = function(str, val) { 2659 | val += '' // null => 'null' 2660 | return val == _.slice(str, _.len(str) - _.len(val)) 2661 | } 2662 | 2663 | _.lower = function(str) { 2664 | // lodash toLower 2665 | return tostr(str).toLowerCase() 2666 | } 2667 | 2668 | _.upper = function(str) { 2669 | // lodash toUpper 2670 | return tostr(str).toUpperCase() 2671 | } 2672 | 2673 | _.repeat = function(str, count) { 2674 | return _.map(_.range(count), function() { 2675 | return str 2676 | }).join('') 2677 | } 2678 | 2679 | _.padStart = function(str, len, chars) { 2680 | str = _.tostr(str) 2681 | len = len || 0 2682 | var delta = len - str.length 2683 | return getPadStr(chars, delta) + str 2684 | } 2685 | 2686 | _.padEnd = function(str, len, chars) { 2687 | str = _.tostr(str) 2688 | len = len || 0 2689 | var delta = len - str.length 2690 | return str + getPadStr(chars, delta) 2691 | } 2692 | 2693 | function getPadStr(chars, len) { 2694 | chars = _.tostr(chars) || ' ' // '' will never end 2695 | var count = Math.floor(len / chars.length) + 1 2696 | return _.repeat(chars, count).slice(0, len) 2697 | } 2698 | 2699 | function tostr(str) { 2700 | if (str || 0 == str) return str + '' 2701 | return '' 2702 | } 2703 | 2704 | 2705 | /***/ }, 2706 | /* 13 */ 2707 | /***/ function(module, exports, __webpack_require__) { 2708 | 2709 | var _ = module.exports = __webpack_require__(4) 2710 | 2711 | _.sum = function(arr) { 2712 | return _.reduce(arr, function(sum, val) { 2713 | return sum + val 2714 | }, 0) 2715 | } 2716 | 2717 | _.max = function(arr, fn) { 2718 | var index = -1 2719 | var data = -Infinity 2720 | fn = fn || _.identity 2721 | _.each(arr, function(val, i) { 2722 | val = fn(val) 2723 | if (val > data) { 2724 | data = val 2725 | index = i 2726 | } 2727 | }) 2728 | if (index > -1) { 2729 | return arr[index] 2730 | } 2731 | return data 2732 | } 2733 | 2734 | _.min = function(arr, fn) { 2735 | var index = -1 2736 | var data = Infinity 2737 | fn = fn || _.identity 2738 | _.each(arr, function(val, i) { 2739 | val = fn(val) 2740 | if (val < data) { 2741 | data = val 2742 | index = i 2743 | } 2744 | }) 2745 | if (index > -1) { 2746 | return arr[index] 2747 | } 2748 | return data 2749 | } 2750 | 2751 | 2752 | /***/ }, 2753 | /* 14 */ 2754 | /***/ function(module, exports, __webpack_require__) { 2755 | 2756 | var _ = __webpack_require__(3) 2757 | var is = _.is 2758 | 2759 | var defaultOption = { 2760 | sep: '&', 2761 | eq: '=', 2762 | encode: encodeURIComponent, 2763 | decode: decodeURIComponent, 2764 | keepRaw: false, 2765 | sort: null, 2766 | ignoreValues: [undefined] 2767 | } 2768 | 2769 | exports.parse = function(qs, sep, eq, opt) { 2770 | qs += '' 2771 | opt = getOpt(sep, eq, opt) 2772 | var decode = opt.decode 2773 | // var ret = {} 2774 | qs = qs.split(opt.sep) 2775 | 2776 | return _.reduce(qs, function(ret, arr) { 2777 | arr = arr.split(opt.eq) 2778 | if (2 == arr.length) { 2779 | var k = arr[0] 2780 | var v = arr[1] 2781 | if (!opt.keepRaw) { 2782 | try { 2783 | k = decode(k) 2784 | v = decode(v) 2785 | } catch (ignore) {} 2786 | } 2787 | ret[k] = v 2788 | } 2789 | return ret 2790 | }, {}) 2791 | } 2792 | 2793 | exports.stringify = function(obj, sep, eq, opt) { 2794 | opt = getOpt(sep, eq, opt) 2795 | 2796 | var keys = _.keys(obj) 2797 | 2798 | var sort = opt.sort 2799 | if (sort) { 2800 | if (is.fn(sort)) { 2801 | keys.sort(sort) 2802 | } else { 2803 | keys.sort() 2804 | } 2805 | } 2806 | 2807 | var encode = opt.encode 2808 | 2809 | var arr = [] 2810 | _.each(keys, function(key) { 2811 | var val = obj[key] 2812 | if (!_.includes(opt.ignoreValues, val)) { 2813 | if (is.nan(val) || null == val) { 2814 | val = '' 2815 | } 2816 | if (!opt.keepRaw) { 2817 | key = encode(key) 2818 | val = encode(val) 2819 | } 2820 | arr.push(key + opt.eq + val) 2821 | } 2822 | }) 2823 | return arr.join(opt.sep) 2824 | } 2825 | 2826 | function getOpt(sep, eq, opt) { 2827 | // can be 2828 | // _ 2829 | // opt 2830 | // sep, opt 2831 | // sep, eq, opt 2832 | opt = _.find(arguments, function(val) { 2833 | return is.object(val) 2834 | }) 2835 | sep = is.nos(sep) ? sep : undefined 2836 | eq = is.nos(eq) ? eq : undefined 2837 | opt = _.extend({}, defaultOption, opt, {sep: sep, eq: eq}) 2838 | return opt 2839 | } 2840 | 2841 | 2842 | 2843 | /***/ }, 2844 | /* 15 */ 2845 | /***/ function(module, exports) { 2846 | 2847 | module.exports = "# h1\n\nhead1\n===\n\nhead2\n---\n\n### head3 ###\n\n- **strong**\n- *emphasis*\n- ~~del~~\n- `code inline`\n\n> block quote\n\n[github link address](https://github.com/chunpu/markdown2confluence)\n\n```javascript\nvar i = 1 // comment\nconsole.log(\"This is code block\")\n```\n\n\n\n## GFM support\n\nFirst Header | Second Header\n------------- | -------------\nContent Cell | Content Cell\nContent Cell | Content Cell\n*inline style* | **inline style**\n\n:)\n" 2848 | 2849 | /***/ } 2850 | /******/ ]); -------------------------------------------------------------------------------- /browser/index.html: -------------------------------------------------------------------------------- 1 |