├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── shadow-cljs.edn ├── site ├── .eslintignore ├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── gatsby-browser.js ├── gatsby-config.js ├── gatsby-node.js ├── gatsby-ssr.js ├── package-lock.json ├── package.json ├── src │ ├── .babelrc │ ├── css │ │ └── layout.css │ └── images │ │ └── gatsby-icon.png └── yarn.lock └── src └── main ├── demo └── gatsby.cljs └── shadow └── gatsby.clj /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | public/js 3 | 4 | /target 5 | /checkouts 6 | /src/gen 7 | 8 | pom.xml 9 | pom.xml.asc 10 | *.iml 11 | *.jar 12 | *.log 13 | .shadow-cljs 14 | .idea 15 | .lein-* 16 | .nrepl-* 17 | .DS_Store 18 | 19 | .hgignore 20 | .hg/ 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Minimal example showing how shadow-cljs could be used together with gatsby to create static sites in CLJS. 2 | 3 | `site` is a directory create by `gatsby new` with all the `.js` files removed. They will instead be generated by `shadow-cljs`. I nested the `site` directory in the `shadow-cljs` project but you can also nest the `shadow-cljs` directory in the gatsby root instead. I do not recommend mixing though. 4 | 5 | ## Run shadow-cljs 6 | 7 | ``` 8 | npm install 9 | npx shadow-cljs watch gatsby 10 | ``` 11 | 12 | ## Run gatsby separately 13 | 14 | ``` 15 | npm install -g gatsby-cli 16 | cd site 17 | npm install 18 | gatsby develop 19 | ``` 20 | 21 | ## When done open in brower 22 | 23 | ``` 24 | open http://localhost:8000 25 | ``` -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shadow-cljs-gatsby", 3 | "version": "0.0.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "asn1.js": { 8 | "version": "4.10.1", 9 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", 10 | "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", 11 | "dev": true, 12 | "requires": { 13 | "bn.js": "^4.0.0", 14 | "inherits": "^2.0.1", 15 | "minimalistic-assert": "^1.0.0" 16 | } 17 | }, 18 | "assert": { 19 | "version": "1.4.1", 20 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", 21 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", 22 | "dev": true, 23 | "requires": { 24 | "util": "0.10.3" 25 | }, 26 | "dependencies": { 27 | "util": { 28 | "version": "0.10.3", 29 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 30 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 31 | "dev": true, 32 | "requires": { 33 | "inherits": "2.0.1" 34 | } 35 | } 36 | } 37 | }, 38 | "async-limiter": { 39 | "version": "1.0.0", 40 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", 41 | "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", 42 | "dev": true 43 | }, 44 | "base64-js": { 45 | "version": "1.3.0", 46 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", 47 | "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", 48 | "dev": true 49 | }, 50 | "bn.js": { 51 | "version": "4.11.8", 52 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 53 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", 54 | "dev": true 55 | }, 56 | "brorand": { 57 | "version": "1.1.0", 58 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 59 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 60 | "dev": true 61 | }, 62 | "browserify-aes": { 63 | "version": "1.2.0", 64 | "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 65 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 66 | "dev": true, 67 | "requires": { 68 | "buffer-xor": "^1.0.3", 69 | "cipher-base": "^1.0.0", 70 | "create-hash": "^1.1.0", 71 | "evp_bytestokey": "^1.0.3", 72 | "inherits": "^2.0.1", 73 | "safe-buffer": "^5.0.1" 74 | } 75 | }, 76 | "browserify-cipher": { 77 | "version": "1.0.1", 78 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", 79 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", 80 | "dev": true, 81 | "requires": { 82 | "browserify-aes": "^1.0.4", 83 | "browserify-des": "^1.0.0", 84 | "evp_bytestokey": "^1.0.0" 85 | } 86 | }, 87 | "browserify-des": { 88 | "version": "1.0.2", 89 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", 90 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", 91 | "dev": true, 92 | "requires": { 93 | "cipher-base": "^1.0.1", 94 | "des.js": "^1.0.0", 95 | "inherits": "^2.0.1", 96 | "safe-buffer": "^5.1.2" 97 | } 98 | }, 99 | "browserify-rsa": { 100 | "version": "4.0.1", 101 | "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 102 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 103 | "dev": true, 104 | "requires": { 105 | "bn.js": "^4.1.0", 106 | "randombytes": "^2.0.1" 107 | } 108 | }, 109 | "browserify-sign": { 110 | "version": "4.0.4", 111 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 112 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 113 | "dev": true, 114 | "requires": { 115 | "bn.js": "^4.1.1", 116 | "browserify-rsa": "^4.0.0", 117 | "create-hash": "^1.1.0", 118 | "create-hmac": "^1.1.2", 119 | "elliptic": "^6.0.0", 120 | "inherits": "^2.0.1", 121 | "parse-asn1": "^5.0.0" 122 | } 123 | }, 124 | "browserify-zlib": { 125 | "version": "0.2.0", 126 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 127 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 128 | "dev": true, 129 | "requires": { 130 | "pako": "~1.0.5" 131 | } 132 | }, 133 | "buffer": { 134 | "version": "4.9.1", 135 | "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", 136 | "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", 137 | "dev": true, 138 | "requires": { 139 | "base64-js": "^1.0.2", 140 | "ieee754": "^1.1.4", 141 | "isarray": "^1.0.0" 142 | } 143 | }, 144 | "buffer-xor": { 145 | "version": "1.0.3", 146 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 147 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 148 | "dev": true 149 | }, 150 | "builtin-status-codes": { 151 | "version": "3.0.0", 152 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 153 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 154 | "dev": true 155 | }, 156 | "cipher-base": { 157 | "version": "1.0.4", 158 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 159 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 160 | "dev": true, 161 | "requires": { 162 | "inherits": "^2.0.1", 163 | "safe-buffer": "^5.0.1" 164 | } 165 | }, 166 | "console-browserify": { 167 | "version": "1.1.0", 168 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 169 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 170 | "dev": true, 171 | "requires": { 172 | "date-now": "^0.1.4" 173 | } 174 | }, 175 | "constants-browserify": { 176 | "version": "1.0.0", 177 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 178 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 179 | "dev": true 180 | }, 181 | "core-util-is": { 182 | "version": "1.0.2", 183 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 184 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 185 | "dev": true 186 | }, 187 | "create-ecdh": { 188 | "version": "4.0.3", 189 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", 190 | "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", 191 | "dev": true, 192 | "requires": { 193 | "bn.js": "^4.1.0", 194 | "elliptic": "^6.0.0" 195 | } 196 | }, 197 | "create-hash": { 198 | "version": "1.2.0", 199 | "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 200 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 201 | "dev": true, 202 | "requires": { 203 | "cipher-base": "^1.0.1", 204 | "inherits": "^2.0.1", 205 | "md5.js": "^1.3.4", 206 | "ripemd160": "^2.0.1", 207 | "sha.js": "^2.4.0" 208 | } 209 | }, 210 | "create-hmac": { 211 | "version": "1.1.7", 212 | "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 213 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 214 | "dev": true, 215 | "requires": { 216 | "cipher-base": "^1.0.3", 217 | "create-hash": "^1.1.0", 218 | "inherits": "^2.0.1", 219 | "ripemd160": "^2.0.0", 220 | "safe-buffer": "^5.0.1", 221 | "sha.js": "^2.4.8" 222 | } 223 | }, 224 | "crypto-browserify": { 225 | "version": "3.12.0", 226 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 227 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 228 | "dev": true, 229 | "requires": { 230 | "browserify-cipher": "^1.0.0", 231 | "browserify-sign": "^4.0.0", 232 | "create-ecdh": "^4.0.0", 233 | "create-hash": "^1.1.0", 234 | "create-hmac": "^1.1.0", 235 | "diffie-hellman": "^5.0.0", 236 | "inherits": "^2.0.1", 237 | "pbkdf2": "^3.0.3", 238 | "public-encrypt": "^4.0.0", 239 | "randombytes": "^2.0.0", 240 | "randomfill": "^1.0.3" 241 | } 242 | }, 243 | "date-now": { 244 | "version": "0.1.4", 245 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 246 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", 247 | "dev": true 248 | }, 249 | "des.js": { 250 | "version": "1.0.0", 251 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", 252 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", 253 | "dev": true, 254 | "requires": { 255 | "inherits": "^2.0.1", 256 | "minimalistic-assert": "^1.0.0" 257 | } 258 | }, 259 | "diffie-hellman": { 260 | "version": "5.0.3", 261 | "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", 262 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", 263 | "dev": true, 264 | "requires": { 265 | "bn.js": "^4.1.0", 266 | "miller-rabin": "^4.0.0", 267 | "randombytes": "^2.0.0" 268 | } 269 | }, 270 | "domain-browser": { 271 | "version": "1.2.0", 272 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", 273 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", 274 | "dev": true 275 | }, 276 | "elliptic": { 277 | "version": "6.4.1", 278 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", 279 | "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", 280 | "dev": true, 281 | "requires": { 282 | "bn.js": "^4.4.0", 283 | "brorand": "^1.0.1", 284 | "hash.js": "^1.0.0", 285 | "hmac-drbg": "^1.0.0", 286 | "inherits": "^2.0.1", 287 | "minimalistic-assert": "^1.0.0", 288 | "minimalistic-crypto-utils": "^1.0.0" 289 | } 290 | }, 291 | "events": { 292 | "version": "1.1.1", 293 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", 294 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", 295 | "dev": true 296 | }, 297 | "evp_bytestokey": { 298 | "version": "1.0.3", 299 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 300 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 301 | "dev": true, 302 | "requires": { 303 | "md5.js": "^1.3.4", 304 | "safe-buffer": "^5.1.1" 305 | } 306 | }, 307 | "hash-base": { 308 | "version": "3.0.4", 309 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 310 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 311 | "dev": true, 312 | "requires": { 313 | "inherits": "^2.0.1", 314 | "safe-buffer": "^5.0.1" 315 | } 316 | }, 317 | "hash.js": { 318 | "version": "1.1.5", 319 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", 320 | "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", 321 | "dev": true, 322 | "requires": { 323 | "inherits": "^2.0.3", 324 | "minimalistic-assert": "^1.0.1" 325 | }, 326 | "dependencies": { 327 | "inherits": { 328 | "version": "2.0.3", 329 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 330 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 331 | "dev": true 332 | } 333 | } 334 | }, 335 | "hmac-drbg": { 336 | "version": "1.0.1", 337 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 338 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 339 | "dev": true, 340 | "requires": { 341 | "hash.js": "^1.0.3", 342 | "minimalistic-assert": "^1.0.0", 343 | "minimalistic-crypto-utils": "^1.0.1" 344 | } 345 | }, 346 | "https-browserify": { 347 | "version": "1.0.0", 348 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 349 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", 350 | "dev": true 351 | }, 352 | "ieee754": { 353 | "version": "1.1.12", 354 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", 355 | "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", 356 | "dev": true 357 | }, 358 | "indexof": { 359 | "version": "0.0.1", 360 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 361 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", 362 | "dev": true 363 | }, 364 | "inherits": { 365 | "version": "2.0.1", 366 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 367 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 368 | "dev": true 369 | }, 370 | "isarray": { 371 | "version": "1.0.0", 372 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 373 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 374 | "dev": true 375 | }, 376 | "md5.js": { 377 | "version": "1.3.4", 378 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", 379 | "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", 380 | "dev": true, 381 | "requires": { 382 | "hash-base": "^3.0.0", 383 | "inherits": "^2.0.1" 384 | } 385 | }, 386 | "miller-rabin": { 387 | "version": "4.0.1", 388 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 389 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 390 | "dev": true, 391 | "requires": { 392 | "bn.js": "^4.0.0", 393 | "brorand": "^1.0.1" 394 | } 395 | }, 396 | "minimalistic-assert": { 397 | "version": "1.0.1", 398 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 399 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", 400 | "dev": true 401 | }, 402 | "minimalistic-crypto-utils": { 403 | "version": "1.0.1", 404 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 405 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 406 | "dev": true 407 | }, 408 | "minimist": { 409 | "version": "0.0.8", 410 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 411 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 412 | "dev": true 413 | }, 414 | "mkdirp": { 415 | "version": "0.5.1", 416 | "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 417 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 418 | "dev": true, 419 | "requires": { 420 | "minimist": "0.0.8" 421 | } 422 | }, 423 | "node-libs-browser": { 424 | "version": "2.1.0", 425 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", 426 | "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", 427 | "dev": true, 428 | "requires": { 429 | "assert": "^1.1.1", 430 | "browserify-zlib": "^0.2.0", 431 | "buffer": "^4.3.0", 432 | "console-browserify": "^1.1.0", 433 | "constants-browserify": "^1.0.0", 434 | "crypto-browserify": "^3.11.0", 435 | "domain-browser": "^1.1.1", 436 | "events": "^1.0.0", 437 | "https-browserify": "^1.0.0", 438 | "os-browserify": "^0.3.0", 439 | "path-browserify": "0.0.0", 440 | "process": "^0.11.10", 441 | "punycode": "^1.2.4", 442 | "querystring-es3": "^0.2.0", 443 | "readable-stream": "^2.3.3", 444 | "stream-browserify": "^2.0.1", 445 | "stream-http": "^2.7.2", 446 | "string_decoder": "^1.0.0", 447 | "timers-browserify": "^2.0.4", 448 | "tty-browserify": "0.0.0", 449 | "url": "^0.11.0", 450 | "util": "^0.10.3", 451 | "vm-browserify": "0.0.4" 452 | } 453 | }, 454 | "os-browserify": { 455 | "version": "0.3.0", 456 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 457 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", 458 | "dev": true 459 | }, 460 | "pako": { 461 | "version": "1.0.6", 462 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", 463 | "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", 464 | "dev": true 465 | }, 466 | "parse-asn1": { 467 | "version": "5.1.1", 468 | "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", 469 | "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", 470 | "dev": true, 471 | "requires": { 472 | "asn1.js": "^4.0.0", 473 | "browserify-aes": "^1.0.0", 474 | "create-hash": "^1.1.0", 475 | "evp_bytestokey": "^1.0.0", 476 | "pbkdf2": "^3.0.3" 477 | } 478 | }, 479 | "path-browserify": { 480 | "version": "0.0.0", 481 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", 482 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", 483 | "dev": true 484 | }, 485 | "pbkdf2": { 486 | "version": "3.0.16", 487 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", 488 | "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", 489 | "dev": true, 490 | "requires": { 491 | "create-hash": "^1.1.2", 492 | "create-hmac": "^1.1.4", 493 | "ripemd160": "^2.0.1", 494 | "safe-buffer": "^5.0.1", 495 | "sha.js": "^2.4.8" 496 | } 497 | }, 498 | "process": { 499 | "version": "0.11.10", 500 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 501 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 502 | "dev": true 503 | }, 504 | "process-nextick-args": { 505 | "version": "2.0.0", 506 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 507 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 508 | "dev": true 509 | }, 510 | "public-encrypt": { 511 | "version": "4.0.2", 512 | "resolved": "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", 513 | "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", 514 | "dev": true, 515 | "requires": { 516 | "bn.js": "^4.1.0", 517 | "browserify-rsa": "^4.0.0", 518 | "create-hash": "^1.1.0", 519 | "parse-asn1": "^5.0.0", 520 | "randombytes": "^2.0.1" 521 | } 522 | }, 523 | "punycode": { 524 | "version": "1.4.1", 525 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 526 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 527 | "dev": true 528 | }, 529 | "querystring": { 530 | "version": "0.2.0", 531 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 532 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 533 | "dev": true 534 | }, 535 | "querystring-es3": { 536 | "version": "0.2.1", 537 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 538 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 539 | "dev": true 540 | }, 541 | "randombytes": { 542 | "version": "2.0.6", 543 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", 544 | "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", 545 | "dev": true, 546 | "requires": { 547 | "safe-buffer": "^5.1.0" 548 | } 549 | }, 550 | "randomfill": { 551 | "version": "1.0.4", 552 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", 553 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", 554 | "dev": true, 555 | "requires": { 556 | "randombytes": "^2.0.5", 557 | "safe-buffer": "^5.1.0" 558 | } 559 | }, 560 | "readable-stream": { 561 | "version": "2.3.6", 562 | "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 563 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 564 | "dev": true, 565 | "requires": { 566 | "core-util-is": "~1.0.0", 567 | "inherits": "~2.0.3", 568 | "isarray": "~1.0.0", 569 | "process-nextick-args": "~2.0.0", 570 | "safe-buffer": "~5.1.1", 571 | "string_decoder": "~1.1.1", 572 | "util-deprecate": "~1.0.1" 573 | }, 574 | "dependencies": { 575 | "inherits": { 576 | "version": "2.0.3", 577 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 578 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 579 | "dev": true 580 | } 581 | } 582 | }, 583 | "readline-sync": { 584 | "version": "1.4.9", 585 | "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.9.tgz", 586 | "integrity": "sha1-PtqOZfI80qF+YTAbHwADOWr17No=", 587 | "dev": true 588 | }, 589 | "ripemd160": { 590 | "version": "2.0.2", 591 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 592 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 593 | "dev": true, 594 | "requires": { 595 | "hash-base": "^3.0.0", 596 | "inherits": "^2.0.1" 597 | } 598 | }, 599 | "safe-buffer": { 600 | "version": "5.1.2", 601 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 602 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 603 | "dev": true 604 | }, 605 | "setimmediate": { 606 | "version": "1.0.5", 607 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 608 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 609 | "dev": true 610 | }, 611 | "sha.js": { 612 | "version": "2.4.11", 613 | "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 614 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 615 | "dev": true, 616 | "requires": { 617 | "inherits": "^2.0.1", 618 | "safe-buffer": "^5.0.1" 619 | } 620 | }, 621 | "shadow-cljs": { 622 | "version": "2.6.9", 623 | "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.6.9.tgz", 624 | "integrity": "sha512-ov5xtJsT39/DKzK9qxCQ/uTloPXLF0JIBw2knvLPYIY9vEqpBaiehklv442lCDhMvq0Eb55u8m0WjDRmKHA6bw==", 625 | "dev": true, 626 | "requires": { 627 | "mkdirp": "^0.5.1", 628 | "node-libs-browser": "^2.0.0", 629 | "readline-sync": "^1.4.7", 630 | "shadow-cljs-jar": "1.3.0", 631 | "signal-exit": "^3.0.2", 632 | "source-map-support": "^0.4.15", 633 | "ws": "^3.0.0" 634 | } 635 | }, 636 | "shadow-cljs-jar": { 637 | "version": "1.3.0", 638 | "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.0.tgz", 639 | "integrity": "sha512-KReNVgFVM2ZPPGCP8rsCPqtlee/+SwXyoeEqbAXBO7jlpoNnNee2x4fiRg/Pr/vXGEkV/Ez5l4qdNSU1Na+1Jg==", 640 | "dev": true 641 | }, 642 | "signal-exit": { 643 | "version": "3.0.2", 644 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 645 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 646 | "dev": true 647 | }, 648 | "source-map": { 649 | "version": "0.5.7", 650 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 651 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 652 | "dev": true 653 | }, 654 | "source-map-support": { 655 | "version": "0.4.18", 656 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 657 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 658 | "dev": true, 659 | "requires": { 660 | "source-map": "^0.5.6" 661 | } 662 | }, 663 | "stream-browserify": { 664 | "version": "2.0.1", 665 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", 666 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", 667 | "dev": true, 668 | "requires": { 669 | "inherits": "~2.0.1", 670 | "readable-stream": "^2.0.2" 671 | } 672 | }, 673 | "stream-http": { 674 | "version": "2.8.3", 675 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", 676 | "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", 677 | "dev": true, 678 | "requires": { 679 | "builtin-status-codes": "^3.0.0", 680 | "inherits": "^2.0.1", 681 | "readable-stream": "^2.3.6", 682 | "to-arraybuffer": "^1.0.0", 683 | "xtend": "^4.0.0" 684 | } 685 | }, 686 | "string_decoder": { 687 | "version": "1.1.1", 688 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 689 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 690 | "dev": true, 691 | "requires": { 692 | "safe-buffer": "~5.1.0" 693 | } 694 | }, 695 | "timers-browserify": { 696 | "version": "2.0.10", 697 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", 698 | "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", 699 | "dev": true, 700 | "requires": { 701 | "setimmediate": "^1.0.4" 702 | } 703 | }, 704 | "to-arraybuffer": { 705 | "version": "1.0.1", 706 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 707 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", 708 | "dev": true 709 | }, 710 | "tty-browserify": { 711 | "version": "0.0.0", 712 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", 713 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", 714 | "dev": true 715 | }, 716 | "ultron": { 717 | "version": "1.1.1", 718 | "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", 719 | "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", 720 | "dev": true 721 | }, 722 | "url": { 723 | "version": "0.11.0", 724 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 725 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 726 | "dev": true, 727 | "requires": { 728 | "punycode": "1.3.2", 729 | "querystring": "0.2.0" 730 | }, 731 | "dependencies": { 732 | "punycode": { 733 | "version": "1.3.2", 734 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 735 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 736 | "dev": true 737 | } 738 | } 739 | }, 740 | "util": { 741 | "version": "0.10.4", 742 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", 743 | "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", 744 | "dev": true, 745 | "requires": { 746 | "inherits": "2.0.3" 747 | }, 748 | "dependencies": { 749 | "inherits": { 750 | "version": "2.0.3", 751 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 752 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 753 | "dev": true 754 | } 755 | } 756 | }, 757 | "util-deprecate": { 758 | "version": "1.0.2", 759 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 760 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 761 | "dev": true 762 | }, 763 | "vm-browserify": { 764 | "version": "0.0.4", 765 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", 766 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", 767 | "dev": true, 768 | "requires": { 769 | "indexof": "0.0.1" 770 | } 771 | }, 772 | "ws": { 773 | "version": "3.3.3", 774 | "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", 775 | "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", 776 | "dev": true, 777 | "requires": { 778 | "async-limiter": "~1.0.0", 779 | "safe-buffer": "~5.1.0", 780 | "ultron": "~1.1.0" 781 | } 782 | }, 783 | "xtend": { 784 | "version": "4.0.1", 785 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 786 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 787 | "dev": true 788 | } 789 | } 790 | } 791 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shadow-cljs-gatsby", 3 | "version": "0.0.1", 4 | "private": true, 5 | "devDependencies": { 6 | "shadow-cljs": "2.6.9" 7 | }, 8 | "dependencies": {} 9 | } 10 | -------------------------------------------------------------------------------- /shadow-cljs.edn: -------------------------------------------------------------------------------- 1 | ;; shadow-cljs configuration 2 | {:source-paths 3 | ["src/dev" 4 | "src/main" 5 | "src/test"] 6 | 7 | :dependencies 8 | [[reagent "0.8.1"]] 9 | 10 | :builds 11 | {:gatsby {:target :npm-module 12 | :output-dir "site/src/cljs" 13 | :build-hooks 14 | [(shadow.gatsby/create-pages)] 15 | :entries [demo.gatsby]}}} 16 | -------------------------------------------------------------------------------- /site/.eslintignore: -------------------------------------------------------------------------------- 1 | src/cljs 2 | -------------------------------------------------------------------------------- /site/.gitignore: -------------------------------------------------------------------------------- 1 | # Project dependencies 2 | .cache 3 | node_modules 4 | yarn-error.log 5 | 6 | # Build directory 7 | /public 8 | .DS_Store 9 | 10 | # generated by shadow-cljs 11 | /src/cljs 12 | /src/pages 13 | -------------------------------------------------------------------------------- /site/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "trailingComma": "es5" 5 | } 6 | -------------------------------------------------------------------------------- /site/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 gatsbyjs 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /site/README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |