create-arkajs 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +0 -0
- package/package.json +10 -2
- package/template/gaya/gaya.css +37 -0
- package/template/rancangan/footer.html +3 -0
- package/template/rancangan/header.html +0 -7
- package/template/rancangan/navbar.html +7 -0
- package/template/rancangan/sidebar.html +8 -0
- package/template/sistem/kelola.js +13 -0
- package/template/sistem/navigasi.js +8 -0
- package/template/sistem/rakit.js +26 -1
package/bin/cli.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-arkajs",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Scaffold tool untuk membuat project ARKAJS — mini framework client-side routing berbasis HTML/CSS/JS murni",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,8 +19,16 @@
|
|
|
19
19
|
"starter",
|
|
20
20
|
"vanilla-js"
|
|
21
21
|
],
|
|
22
|
-
"author": "",
|
|
22
|
+
"author": "azqilana",
|
|
23
23
|
"license": "MIT",
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/azqilana/arkajs.git"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://github.com/azqilana/arkajs#readme",
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/azqilana/arkajs/issues"
|
|
31
|
+
},
|
|
24
32
|
"engines": {
|
|
25
33
|
"node": ">=14"
|
|
26
34
|
}
|
package/template/gaya/gaya.css
CHANGED
|
@@ -143,3 +143,40 @@ main {
|
|
|
143
143
|
.dok-list {
|
|
144
144
|
padding-left: 20px;
|
|
145
145
|
}
|
|
146
|
+
|
|
147
|
+
/* Sidebar */
|
|
148
|
+
.sidebar {
|
|
149
|
+
max-width: 960px;
|
|
150
|
+
margin: 0 auto;
|
|
151
|
+
padding: 0 20px 20px;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.sidebar h4 {
|
|
155
|
+
margin: 0 0 8px;
|
|
156
|
+
color: var(--fc);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.sidebar ul {
|
|
160
|
+
list-style: none;
|
|
161
|
+
padding: 0;
|
|
162
|
+
display: flex;
|
|
163
|
+
gap: 16px;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.sidebar a {
|
|
167
|
+
color: var(--muted);
|
|
168
|
+
text-decoration: none;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.sidebar a:hover {
|
|
172
|
+
color: var(--fc);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* Footer */
|
|
176
|
+
.footer {
|
|
177
|
+
border-top: 1px solid var(--border);
|
|
178
|
+
text-align: center;
|
|
179
|
+
padding: 20px;
|
|
180
|
+
color: var(--muted);
|
|
181
|
+
font-size: 0.9rem;
|
|
182
|
+
}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
<header class="header">
|
|
2
2
|
<div class="header__inner">
|
|
3
3
|
<a href="/" class="logo">ARKA<span>JS</span></a>
|
|
4
|
-
<nav class="navbar">
|
|
5
|
-
<ul class="navbar__list">
|
|
6
|
-
<li><a href="/">Beranda</a></li>
|
|
7
|
-
<li><a href="/tentang">Tentang</a></li>
|
|
8
|
-
<li><a href="/dokumentasi">Dokumentasi</a></li>
|
|
9
|
-
</ul>
|
|
10
|
-
</nav>
|
|
11
4
|
</div>
|
|
12
5
|
</header>
|
|
@@ -29,4 +29,17 @@ export default class kelolaRute {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
async cekStatis() {
|
|
33
|
+
try {
|
|
34
|
+
const resNavbar = await fetch("./rancangan/navbar.html");
|
|
35
|
+
const resSidebar = await fetch("./rancangan/sidebar.html");
|
|
36
|
+
const resFooter = await fetch("./rancangan/footer.html");
|
|
37
|
+
const navbar = await resNavbar.text();
|
|
38
|
+
const sidebar = await resSidebar.text();
|
|
39
|
+
const footer = await resFooter.text();
|
|
40
|
+
return { navbar, sidebar, footer };
|
|
41
|
+
} catch (error) {
|
|
42
|
+
console.log("Error:", error);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
32
45
|
}
|
|
@@ -5,6 +5,13 @@ const kR = new kelolaRute();
|
|
|
5
5
|
const R= new Rakit();
|
|
6
6
|
|
|
7
7
|
export default class kelolaNavigasi {
|
|
8
|
+
statisDimuat = false
|
|
9
|
+
async muatStatis(){
|
|
10
|
+
if(this.statisDimuat) return
|
|
11
|
+
const statis = await kR.cekStatis()
|
|
12
|
+
if(statis) R.ambilStatis(statis)
|
|
13
|
+
this.statisDimuat = true
|
|
14
|
+
}
|
|
8
15
|
async kelolaKlik(e){
|
|
9
16
|
const el = e.target.closest("a");
|
|
10
17
|
const w_origin = window.location.origin;
|
|
@@ -18,6 +25,7 @@ export default class kelolaNavigasi {
|
|
|
18
25
|
}
|
|
19
26
|
}
|
|
20
27
|
async kelolaW(){
|
|
28
|
+
await this.muatStatis()
|
|
21
29
|
const hrefnya = window.location.pathname
|
|
22
30
|
const hasil=await this.hasilCekRute(hrefnya)
|
|
23
31
|
}
|
package/template/sistem/rakit.js
CHANGED
|
@@ -1,17 +1,33 @@
|
|
|
1
1
|
|
|
2
2
|
export class Rakit {
|
|
3
|
+
constructor(){
|
|
4
|
+
this.navbarHtml = "";
|
|
5
|
+
this.statisDipasang = false;
|
|
6
|
+
}
|
|
3
7
|
ambilHasil(hasil){
|
|
4
8
|
this.pasangJudul(hasil.judul)
|
|
5
9
|
this.pasangHeader(hasil.header)
|
|
6
10
|
this.pasangCss(hasil.css)
|
|
7
11
|
this.pasangMain(hasil.main)
|
|
8
12
|
}
|
|
13
|
+
ambilStatis(statis){
|
|
14
|
+
this.navbarHtml = statis.navbar || "";
|
|
15
|
+
if(!this.statisDipasang){
|
|
16
|
+
this.pasangSidebar(statis.sidebar)
|
|
17
|
+
this.pasangFooter(statis.footer)
|
|
18
|
+
this.statisDipasang = true
|
|
19
|
+
}
|
|
20
|
+
}
|
|
9
21
|
pasangJudul(judul){
|
|
10
22
|
document.title=judul
|
|
11
23
|
}
|
|
12
24
|
pasangHeader(header){
|
|
13
25
|
const Header=this.selectEl("#header")
|
|
14
26
|
Header.innerHTML=header
|
|
27
|
+
if(this.navbarHtml){
|
|
28
|
+
const target = Header.querySelector(".header__inner") || Header
|
|
29
|
+
target.insertAdjacentHTML("beforeend", this.navbarHtml)
|
|
30
|
+
}
|
|
15
31
|
}
|
|
16
32
|
pasangMain(main){
|
|
17
33
|
const Main =this.selectEl("#main")
|
|
@@ -21,7 +37,16 @@ export class Rakit {
|
|
|
21
37
|
const Css=this.selectEl("#gaya")
|
|
22
38
|
Css.innerHTML=css
|
|
23
39
|
}
|
|
40
|
+
pasangSidebar(sidebar){
|
|
41
|
+
if(!sidebar) return
|
|
42
|
+
const Main=this.selectEl("#main")
|
|
43
|
+
Main.insertAdjacentHTML("afterend", sidebar)
|
|
44
|
+
}
|
|
45
|
+
pasangFooter(footer){
|
|
46
|
+
if(!footer) return
|
|
47
|
+
document.body.insertAdjacentHTML("beforeend", footer)
|
|
48
|
+
}
|
|
24
49
|
selectEl(selector){
|
|
25
50
|
return document.querySelector(selector)
|
|
26
51
|
}
|
|
27
|
-
}
|
|
52
|
+
}
|