Initial website.
21
.eleventy.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
module.exports = function (eleventyConfig) {
|
||||||
|
const pluginTOC = require('eleventy-plugin-nesting-toc');
|
||||||
|
eleventyConfig.addPlugin(pluginTOC);
|
||||||
|
|
||||||
|
const markdownIt = require('markdown-it');
|
||||||
|
const markdownItAnchor = require('markdown-it-anchor');
|
||||||
|
const markdownItAttrs = require('markdown-it-attrs');
|
||||||
|
eleventyConfig.setLibrary("md",
|
||||||
|
markdownIt({
|
||||||
|
html: true,
|
||||||
|
linkify: true,
|
||||||
|
typographer: true,
|
||||||
|
}).use(markdownItAnchor, {}).use(markdownItAttrs, {})
|
||||||
|
);
|
||||||
|
|
||||||
|
eleventyConfig.addPassthroughCopy("./src/images");
|
||||||
|
eleventyConfig.addPassthroughCopy("./src/site.webmanifest");
|
||||||
|
eleventyConfig.addPassthroughCopy("./src/favicon.ico");
|
||||||
|
eleventyConfig.addPassthroughCopy("./src/favicon.svg");
|
||||||
|
eleventyConfig.addPassthroughCopy("./src/favicon");
|
||||||
|
};
|
7
.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# IDEA
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
# Website
|
||||||
|
.yarn/
|
||||||
|
node_modules/
|
||||||
|
webroot/
|
3
.yarnrc.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
nodeLinker: node-modules
|
||||||
|
|
||||||
|
yarnPath: .yarn/releases/yarn-4.5.3.cjs
|
25
package.json
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"name": "use-nuaj",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": "Madeorsk",
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "src/index.html",
|
||||||
|
"scripts": {
|
||||||
|
"build": "vite build & eleventy --input=src --output=webroot & echo \"=*= NUAJ =*=\"",
|
||||||
|
"dev": "vite build --watch & eleventy --watch --input=src --output=webroot & echo \"=*= NUAJ =*=\""
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@11ty/eleventy": "^2.0.1",
|
||||||
|
"@types/less": "^3.0.3",
|
||||||
|
"@types/node": "^20.4.2",
|
||||||
|
"eleventy-plugin-nesting-toc": "^1.3.0",
|
||||||
|
"less": "^4.1.3",
|
||||||
|
"markdown-it": "^13.0.1",
|
||||||
|
"markdown-it-anchor": "^8.6.7",
|
||||||
|
"markdown-it-attrs": "^4.1.6",
|
||||||
|
"ts-node": "^10.9.1",
|
||||||
|
"typescript": "^5.1.6",
|
||||||
|
"vite": "^6.0.4"
|
||||||
|
},
|
||||||
|
"packageManager": "yarn@4.5.3"
|
||||||
|
}
|
42
src/_includes/_base.njk
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
|
<link rel="icon" type="image/png" href="/favicon/favicon-96x96.png" sizes="96x96" />
|
||||||
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||||
|
<link rel="shortcut icon" href="/favicon.ico" />
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png" />
|
||||||
|
<meta name="apple-mobile-web-app-title" content="nuaj" />
|
||||||
|
<link rel="manifest" href="/site.webmanifest" />
|
||||||
|
|
||||||
|
<title>{{ title }}</title>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/nuaj.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h1>
|
||||||
|
<img src="/images/logo-title.svg" alt="nuaj" draggable="false"/>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="/">home</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/wip">use</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://code.zeptotech.net/nuaj" target="_blank">code</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{ content | safe }}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
12
src/_includes/docs.njk
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
layout: _base.njk
|
||||||
|
---
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<aside>
|
||||||
|
{{ content | toc }}
|
||||||
|
</aside>
|
||||||
|
<article>
|
||||||
|
{{ content | safe }}
|
||||||
|
</article>
|
||||||
|
</main>
|
7
src/_includes/layout.njk
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
layout: _base.njk
|
||||||
|
---
|
||||||
|
|
||||||
|
<main>
|
||||||
|
{{ content | safe }}
|
||||||
|
</main>
|
BIN
src/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
8
src/favicon.svg
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev/svgjs" width="1000" height="1000"><g clip-path="url(#SvgjsClipPath1040)"><rect width="1000" height="1000" fill="#fafafa"></rect><g transform="matrix(2.3333333333333335,0,0,2.3333333333333335,150,234.55999999999995)"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev/svgjs" width="300" height="227.52"><svg width="300" height="227.52" version="1.1" viewBox="0 0 300 227.52" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g transform="translate(1.1781e-6 -72.476)">
|
||||||
|
<g transform="matrix(1.2171 0 0 1.2171 -29.836 -26.144)" fill="#111">
|
||||||
|
<circle cx="177.53" cy="174.5" r="93.469"></circle>
|
||||||
|
<path d="m77.342 149.53a59.548 59.548 0 0 0-52.828 58.887 59.548 59.548 0 0 0 59.547 59.547 59.548 59.548 0 0 0 0.26758-0.0195v0.0195h49.029a103.47 103.47 0 0 1-59.297-93.469 103.47 103.47 0 0 1 3.2812-24.965z"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg></svg></g></g><defs><clipPath id="SvgjsClipPath1040"><rect width="1000" height="1000" x="0" y="0" rx="350" ry="350"></rect></clipPath></defs></svg>
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/favicon/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
src/favicon/favicon-96x96.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
src/favicon/web-app-manifest-192x192.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
src/favicon/web-app-manifest-512x512.png
Normal file
After Width: | Height: | Size: 15 KiB |
9
src/images/logo-title.svg
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<svg width="638.6" height="227.52" version="1.1" viewBox="0 0 638.6 227.52" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g transform="translate(1.1781e-6 -72.476)" fill="#111">
|
||||||
|
<g transform="matrix(1.2171 0 0 1.2171 -29.836 -26.144)">
|
||||||
|
<circle cx="177.53" cy="174.5" r="93.469"/>
|
||||||
|
<path d="m77.342 149.53a59.548 59.548 0 0 0-52.828 58.887 59.548 59.548 0 0 0 59.547 59.547 59.548 59.548 0 0 0 0.26758-0.0195v0.0195h49.029a103.47 103.47 0 0 1-59.297-93.469 103.47 103.47 0 0 1 3.2812-24.965z"/>
|
||||||
|
</g>
|
||||||
|
<path d="m378.58 143.32q13.653 0 22.016 8.3627 8.3627 8.3627 8.3627 22.699v55.979q0 0.85333-0.68267 1.536-0.512 0.512-1.3653 0.512h-19.968q-0.85333 0-1.536-0.512-0.512-0.68267-0.512-1.536v-51.029q0-6.8267-3.9253-11.093-3.7547-4.2667-10.069-4.2667-6.3147 0-10.24 4.2667-3.7547 4.2667-3.7547 11.093v51.029q0 0.85333-0.68267 1.536-0.512 0.512-1.3653 0.512h-19.968q-0.85334 0-1.536-0.512-0.512-0.68267-0.512-1.536v-83.627q0-0.85333 0.512-1.3653 0.68267-0.68267 1.536-0.68267h19.968q0.85333 0 1.3653 0.68267 0.68267 0.512 0.68267 1.3653v5.9734q0 0.512 0.34133 0.68267 0.34134 0.17066 0.51201-0.17067 6.9973-9.8987 20.821-9.8987zm99.816 3.4133q0-0.85333 0.512-1.3653 0.68267-0.68267 1.536-0.68267h19.968q0.85334 0 1.3653 0.68267 0.68267 0.512 0.68267 1.3653v83.627q0 0.85333-0.68267 1.536-0.512 0.512-1.3653 0.512h-19.968q-0.85333 0-1.536-0.512-0.512-0.68267-0.512-1.536v-5.8027q0-0.512-0.34134-0.512-0.34133-0.17067-0.68266 0.34133-6.8267 9.216-21.163 9.216-12.971 0-21.333-7.8507-8.3627-7.8507-8.3627-22.016v-57.003q0-0.85333 0.512-1.3653 0.68267-0.68267 1.536-0.68267h19.797q0.85334 0 1.3653 0.68267 0.68267 0.512 0.68267 1.3653v51.029q0 6.8267 3.584 11.093 3.7547 4.2667 10.24 4.2667 5.8027 0 9.5574-3.4133 3.7547-3.584 4.608-9.216zm77.8-3.4133q11.093 0 19.797 3.9253 8.704 3.7547 13.483 10.411 4.9493 6.656 4.9493 14.848v57.856q0 0.85333-0.68267 1.536-0.512 0.512-1.3653 0.512h-19.968q-0.85333 0-1.536-0.512-0.512-0.68267-0.512-1.536v-5.632q0-0.512-0.34133-0.68266-0.34134-0.17067-0.68267 0.34133-7.168 9.3867-23.04 9.3867-13.312 0-21.504-6.4854t-8.192-19.115q0-13.141 9.216-20.309 9.216-7.3387 26.283-7.3387h17.408q0.85333 0 0.85333-0.85334v-3.7547q0-5.632-3.4133-8.704-3.4133-3.2427-10.24-3.2427-5.2907 0-8.8747 1.8773-3.4133 1.8773-4.4374 5.2907-0.512 1.8773-2.2187 1.7067l-20.651-2.7307q-2.048-0.34133-1.8773-1.536 0.68267-7.168 5.632-12.971 5.12-5.8027 13.312-9.0454 8.3627-3.2427 18.603-3.2427zm-3.4133 72.533q7.3387 0 12.459-3.9253t5.12-10.069v-6.144q0-0.85333-0.85333-0.85333h-12.288q-7.68 0-12.117 2.9013-4.2667 2.9013-4.2667 8.192 0 4.608 3.2427 7.3387 3.2427 2.56 8.704 2.56zm72.339-81.067q-5.8027 0-9.5574-3.7547-3.7547-3.9253-3.7547-9.728 0-5.9734 3.7547-9.728 3.7547-3.7547 9.5574-3.7547 5.9734 0 9.728 3.7547 3.7547 3.7547 3.7547 9.728 0 5.8027-3.9253 9.728-3.7547 3.7547-9.5574 3.7547zm-29.867 132.44q-2.048 0-2.048-2.048v-16.213q0-2.2187 2.2187-1.8773 10.069 0.34134 13.995-2.9013 4.096-3.2427 4.096-11.435l-0.34133-86.016q0-0.85333 0.512-1.3653 0.68267-0.68267 1.536-0.68267h19.968q0.85334 0 1.3653 0.68267 0.68267 0.512 0.68267 1.3653v85.675q0 13.824-3.7547 21.333-3.7547 7.68-12.8 10.752-8.8747 3.072-25.429 2.7307z" aria-label="nuaj"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
36
src/index.html
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
---
|
||||||
|
layout: layout.njk
|
||||||
|
title: use nuaj!
|
||||||
|
---
|
||||||
|
|
||||||
|
<p class="intro">
|
||||||
|
<strong>nuaj</strong> is a <em>simple</em> and <em>secure</em> private cloud software.
|
||||||
|
</p>
|
||||||
|
<p class="intro">
|
||||||
|
Like this website, it is completely <em>distraction-free</em>, as a cloud software should be.
|
||||||
|
</p>
|
||||||
|
<p class="intro">
|
||||||
|
Just enable it and do your things.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="intro buttons">
|
||||||
|
<a class="button" role="button" href="/wip">Install</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>nuaj</strong> allows you to use a remote server to synchronize your files between your devices.
|
||||||
|
But don't worry, all your files are encrypted and decrypted on your devices only!
|
||||||
|
If you choose a strong enough password for your library, an attacker cannot read them,
|
||||||
|
even if they have access to the remote server.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Simple does not mean feature-less, check out all the features of <strong>nuaj</strong>:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>automatic incremental files synchronization in the background.</li>
|
||||||
|
<li>end-to-end encryption between client devices.</li>
|
||||||
|
<li>easy conflicts handling (and it asks you before messing everything up...).</li>
|
||||||
|
<li>keep versions in memory, so you can use it as a personal backup system.</li>
|
||||||
|
<li>allow remote access directly.</li>
|
||||||
|
<li>GPDR-compliant by default.</li>
|
||||||
|
</ul>
|
21
src/site.webmanifest
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"name": "nuaj",
|
||||||
|
"short_name": "nuaj",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/favicon/web-app-manifest-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png",
|
||||||
|
"purpose": "maskable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/favicon/web-app-manifest-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png",
|
||||||
|
"purpose": "maskable"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#FAFAFA",
|
||||||
|
"background_color": "#FAFAFA",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
32
src/use.html
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
layout: layout.njk
|
||||||
|
title: use nuaj!
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2 id="find-server" class="num">Find your server</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
First of all, you need to choose where your files will be hosted. Random people of the internet already host public
|
||||||
|
nuaj servers, so you can just pick one of them. We maintain a page of <a>known nuaj hosts</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="buttons">
|
||||||
|
<a class="button" role="button">Choose your host</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
But if you want, you can also host your own nuaj server at home or on your personal server.
|
||||||
|
We provide a <em>docker image</em> and a documentation if you want to run it on your machine.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="buttons">
|
||||||
|
<a class="button" role="button">Install with Docker</a>
|
||||||
|
<a class="button" role="button">Install standalone</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 id="download" class="num">Download</h2>
|
||||||
|
|
||||||
|
<div class="buttons">
|
||||||
|
<a class="button" role="button">Download for Windows</a>
|
||||||
|
<a class="button" role="button">Download binary for Linux</a>
|
||||||
|
</div>
|
8
src/wip.html
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
layout: layout.njk
|
||||||
|
title: nuaj – work in progress
|
||||||
|
---
|
||||||
|
|
||||||
|
<p class="intro">
|
||||||
|
<strong>nuaj</strong> is currently a work-in-progress. You can find its current state <a href="https://code.zeptotech.net/nuaj/nuaj">on the repository</a>.
|
||||||
|
</p>
|
5
style/_colors.less
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
@background: #FAFAFA;
|
||||||
|
@foreground: #111111;
|
||||||
|
|
||||||
|
@primary: #0C4BBC;
|
||||||
|
@primary-background: lighten(@primary, 110%, relative);
|
56
style/_common.less
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
html, body
|
||||||
|
{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
html, body, input, button
|
||||||
|
{
|
||||||
|
font-family: system-ui, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body
|
||||||
|
{
|
||||||
|
background: @background;
|
||||||
|
color: @foreground;
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a
|
||||||
|
{
|
||||||
|
color: @primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.button, button
|
||||||
|
{
|
||||||
|
transition: background 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
margin: auto;
|
||||||
|
padding: 0.66em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
|
||||||
|
box-shadow: 0 0 0 0 @primary-background;
|
||||||
|
border: solid @primary thin;
|
||||||
|
color: @primary;
|
||||||
|
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
{
|
||||||
|
box-shadow: 0 0 0 3px @primary-background;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons
|
||||||
|
{
|
||||||
|
margin: 1em auto;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
button, .button
|
||||||
|
{
|
||||||
|
width: 15em;
|
||||||
|
}
|
||||||
|
}
|
41
style/_header.less
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
header
|
||||||
|
{
|
||||||
|
margin: 2em auto;
|
||||||
|
|
||||||
|
h1
|
||||||
|
{
|
||||||
|
margin: 1em;
|
||||||
|
font-size: 4em;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
a { color: unset; text-decoration: none; }
|
||||||
|
img { height: 2em; pointer-events: none; }
|
||||||
|
}
|
||||||
|
|
||||||
|
nav
|
||||||
|
{
|
||||||
|
ul
|
||||||
|
{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
gap: 1em;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
> li
|
||||||
|
{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
> a
|
||||||
|
{
|
||||||
|
font-size: 1.2em;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
52
style/_main.less
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
main
|
||||||
|
{
|
||||||
|
margin: 2em auto;
|
||||||
|
|
||||||
|
p, ul
|
||||||
|
{
|
||||||
|
margin: 0.5em auto;
|
||||||
|
width: 50em;
|
||||||
|
max-width: 95%;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul
|
||||||
|
{
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
> li::before
|
||||||
|
{
|
||||||
|
content: "‒ ";
|
||||||
|
margin-right: 0.33em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.intro
|
||||||
|
{
|
||||||
|
margin: 1em auto;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
h2
|
||||||
|
{
|
||||||
|
display: block;
|
||||||
|
margin: 1em auto;
|
||||||
|
font-size: 2em;
|
||||||
|
|
||||||
|
width: 55rem;
|
||||||
|
max-width: 95%;
|
||||||
|
|
||||||
|
&.num
|
||||||
|
{
|
||||||
|
counter-increment: h2counter;
|
||||||
|
&::before
|
||||||
|
{
|
||||||
|
content: counter(h2counter)". ";
|
||||||
|
color: @primary;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
6
style/nuaj.less
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
@import "_colors";
|
||||||
|
|
||||||
|
@import "_common";
|
||||||
|
@import "_header";
|
||||||
|
@import "_main";
|
21
vite.config.mts
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
import {defineConfig} from "vite";
|
||||||
|
import {resolve} from "path";
|
||||||
|
|
||||||
|
// https://vitejs.dev/config/
|
||||||
|
export default defineConfig(() => ({
|
||||||
|
base: "/assets",
|
||||||
|
build: {
|
||||||
|
outDir: resolve(__dirname, "webroot", "assets"),
|
||||||
|
assetsDir: "./",
|
||||||
|
emptyOutDir: true,
|
||||||
|
|
||||||
|
rollupOptions: {
|
||||||
|
input: {
|
||||||
|
"nuaj": resolve(__dirname, "style", "nuaj.less"),
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
assetFileNames: "[name].[ext]",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}));
|