-
Notifications
You must be signed in to change notification settings - Fork 5
Implementasi
#!/bin/sh
# (replace "find ." with "find ./<path>" below, to work with only specific paths)
# (these lines are really all one line, on multiple lines for clarity)
# ...find symlinks which do not dereference to directories...
find . -type l -exec test '!' -d {} ';' -print -exec sh -c \
# ...remove the symlink blob, and add the content diff, to the index/cache
'git rm --cached "$1"; diff -au /dev/null "$1" | git apply --cached -p1 -' \
# ...and call out to "sh".
"process_links_to_nondir" {} ';'
# the end
Tehnik ini sering sekali digunakan dalam pembuatan plugin,component dalam suatu aplikasi baik cms,ecommerce,intranet aplikasi.
Secara default direktori hooks adalah $ GIT_DIR / hooks, tetapi itu dapat diubah melalui variabel konfigurasi core.hooksPath (lihat git-config (1)).
Sebelum Git memanggil sebuah hook, ia mengubah direktori kerjanya menjadi $ GIT_DIR dalam repositori kosong atau root dari pohon yang berfungsi dalam repositori non-telanjang.
Pengecualian adalah kait yang dipicu selama push (pra-terima, perbarui, pasca-terima, pasca-pembaruan, push-to-checkout) yang selalu dijalankan dalam $ GIT_DIR.
Hooks bisa mendapatkan argumen mereka melalui lingkungan, argumen command-line, dan stdin. Lihat dokumentasi untuk setiap kait di bawah ini untuk detailnya.
git init dapat menyalin kait ke repositori baru, tergantung pada konfigurasinya. Lihat bagian "TEMPLATE DIRECTORY" di git-init (1) untuk detailnya. Ketika sisa dokumen ini mengacu pada "kait default", itu berbicara tentang templat default yang dikirimkan bersama Git.

directory _assets
directory a
file a1 <- weight: 1
file a2 <- weight: 2
directory b
file b1 <- weight: 1
file b2 <- weight: 2
directory c
file c1 <- weight: 1
file c2 <- weight: 2
https://jekyllrb.com/docs/templates/
sort: 'weight'
{% assign assets = site.assets | sort: 'weight' %}
{% for asset in assets %}
{
"title": {{ asset.title }}
}
{% unless forloop.last %},{% endunless %}
{% endfor %}
{
"title": file a1 <- weight: 1
},
{
"title": file b1 <- weight: 1
},
{
"title": file c1 <- weight: 1
},
{
"title": file a2 <- weight: 2
},
{
"title": file b2 <- weight: 2
},
{
"title": file c2 <- weight: 2
}
{
"title": directory a,
"files": [
{
"title": file a1 <-- weight: 1
},
{
"title": file a2 <-- weight: 2
}
]
},
{
"title": directory b,
"files": [
{
"title": file b1 <-- weight: 1
},
{
"title": file b2 <-- weight: 2
},
{
"title": directory c,
"files": [
{
"title": file c1 <-- weight: 1
},
{
"title": file c2 <-- weight: 2
}
]
}
]
}
- Jekyll Liquid Template: Use Variable of Layout in Page
- How can I pass variables between DRY templates and ncludes in Jekyll
{{ asset.title }}
=> Capital
{% assign assets = site.assets | sort: 'weight' %}
{% for asset in assets %}
{
"title": {{ asset.title }}
}
{% unless forloop.last %},{% endunless %}
{% endfor %}
_assets/head/head.md
_assets/skema/sequence.md
_assets/skema/sequence/object.md
_assets/head/beranda.md
_assets/skema/flowchart.md
_assets/skema/sequence/method.md
_assets/head/abstrak.md
_assets/skema/railroad.md
_assets/head/skema.md
_assets/head/eksekusi.md
_assets/head/portfolio.md
_assets/head/network.md
_assets/head/publikasi.md
_assets/head/diskusi.md
_assets/head/bottom.md
_assets/head/head.md
_assets/head/beranda.md
_assets/head/abstrak.md
_assets/head/skema.md
_assets/skema/sequence.md
_assets/skema/sequence/object.md
_assets/skema/sequence/method.md
_assets/skema/flowchart.md
_assets/skema/railroad.md
_assets/head/eksekusi.md
_assets/head/portfolio.md
_assets/head/network.md
_assets/head/publikasi.md
_assets/head/diskusi.md
_assets/head/bottom.md
_assets/head/
_assets/head/
_assets/head/
_assets/head/
_assets/skema/sequence/
_assets/skema/sequence/
_assets/skema/
_assets/skema/
_assets/skema/
_assets/head/
_assets/head/
_assets/head/
_assets/head/
_assets/head/
_assets/head/
_assets/head/
_assets/skema/sequence/
_assets/skema/
_assets/skema/sequence/
_assets/head/
_assets/skema/
_assets/skema/sequence/
_assets/skema/sequence/object.md
_assets/skema/sequence/method.md
_assets/skema/sequence/md
_assets/skema/sequence/object.md
_assets/skema/sequence/method.md
_assets/skema/flowchart.md
_assets/skema/railroad.md
_assets/head/skema/md
_assets/skema/sequence/md
_assets/skema/sequence/object.md
_assets/skema/sequence/method.md
_assets/skema/flowchart.md
_assets/skema/railroad.md
_assets/head/md
_assets/head/beranda.md
_assets/head/abstrak.md
_assets/head/skema/md
_assets/skema/sequence/md
_assets/skema/sequence/object.md
_assets/skema/sequence/method.md
_assets/skema/flowchart.md
_assets/skema/railroad.md
_assets/head/eksekusi.md
_assets/head/portfolio.md
_assets/head/network.md
_assets/head/publikasi.md
_assets/head/diskusi.md
_assets/head/bottom.md
_assets/head/md
_assets/head/beranda.md
_assets/head/abstrak.md
_assets/head/skema/md
_assets/skema/sequence/md
_assets/skema/sequence/object.md
_assets/skema/sequence/method.md
_assets/skema/flowchart.md
_assets/skema/railroad.md
_assets/head/eksekusi.md
_assets/head/portfolio.md
_assets/head/network.md
_assets/head/publikasi.md
_assets/head/diskusi.md
_assets/head/bottom.md
{
"title": "Beranda",
--> atribut..
},
{
"title": "Abstrak",
--> atribut..
},
{
"title": "Skema",
--> atribut..,
"files": [
{
"title": "Sequence",
--> atribut..,
"files": [
{
"title": "Object",
--> atribut..
},
{
"title": "Method",
--> atribut..
}
]
},
{
"title": "Flowchart",
--> atribut..
},
{
"title": "Railroad",
--> atribut..
},
]
},
{
"title": "Eksekusi",
--> atribut..
},
{
"title": "Portfolio",
--> atribut..
},
{
"title": "Publikasi",
--> atribut..
},
{
"title": "Diskusi",
--> atribut..
},
{
"title": "Bottom",
--> atribut..
}
https://github.com/chetabahana/chetabahana.github.io/blob/master/feed.json https://github.com/chetabahana/chetabahana.github.io/blob/master/_includes/feed/Json
size: https://shopify.github.io/liquid/filters/size/
[
{% assign my_assets = site.assets | sort: 'weight' %}
{% assign my_size = 0 %}
{% for asset in my_assets %}
{% assign my_split = asset.path | split: "/" %}
{% assign size = my_split | size %}
{% if my_size < size %}
{% assign my_size = size %}
{% endif %}
{
"size": {{ my_size }}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
Catatan: Bila dijumpai Error nil:NilClass sbb:
Error: could not read file /srv/jekyll/_assets/docs/Header: undefined method `split' for nil:NilClass
nil&.split(",")
[
{
"size": 3
},
{
"size": 3
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
},
{
"size": 4
}
]
[
{% assign my_assets = site.assets | sort: 'weight' %}
{% assign my_size = 2 %}
{% assign my_path = "" | split: "," %}
{% for asset in my_assets %}
{% assign my_split = asset.path | split: "/" %}
{% assign size = my_split | size %}
{% if size > my_size %}
{% assign my_path = my_path | push:size %}
{% assign my_size = size %}
{% endif %}
{% endfor %}
{% for my_size in my_path reversed %}
{
"size": {{ my_size }}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
[
{
"size": 4
},
{
"size": 3
}
]
[
{% assign my_assets = site.assets | sort: 'weight' %}
{% assign my_size = 2 %}
{% assign my_path = "" | split: "," %}
{% for asset in my_assets %}
{% assign my_split = asset.path | split: "/" %}
{% assign size = my_split | size %}
{% if size > my_size %}
{% assign my_path = my_path | push:size %}
{% assign my_size = size %}
{% endif %}
{% endfor %}
{% for my_size in my_path reversed %}
{% for asset in my_assets %}
{% assign my_split = asset.path | split: "/" %}
{% assign size = my_split | size %}
{% if size == my_size %}
{
"path": {{ asset.path | jsonify }}
}{% unless forloop.last %},{% endunless %}
{% endif %}
{% endfor %}
{% endfor %}
]
[
{
"path": "_assets/skema/sequence/object.md"
},
{
"path": "_assets/skema/sequence/method.md"
},
{
"path": "_assets/head/head.md"
},
{
"path": "_assets/skema/sequence.md"
},
{
"path": "_assets/head/beranda.md"
},
{
"path": "_assets/skema/flowchart.md"
},
{
"path": "_assets/head/abstrak.md"
},
{
"path": "_assets/skema/railroad.md"
},
{
"path": "_assets/head/skema.md"
},
{
"path": "_assets/head/eksekusi.md"
},
{
"path": "_assets/head/portfolio.md"
},
{
"path": "_assets/head/network.md"
},
{
"path": "_assets/head/publikasi.md"
},
{
"path": "_assets/head/diskusi.md"
},
{
"path": "_assets/head/bottom.md"
}
]
[
{% assign my_assets = site.assets | sort: 'weight' %}
{% assign my_tab = " " %}
{% assign my_size = 2 %}
{% assign my_path = "" | split: "," %}
{% for asset in my_assets %}
{% assign my_split = asset.path | split: "/" %}
{% assign size = my_split | size %}
{% if size > my_size %}
{% assign my_path = my_path | push:size %}
{% assign my_size = size %}
{% endif %}
{% endfor %}
{% assign my_paths = "" | split: "," %}
{% for my_size in my_path reversed %}
{% for asset in my_assets %}
{% unless asset.path contains "/head/" %}
{% assign my_split = asset.path | split: "/" %}
{% assign size = my_split | size %}
{% if size == my_size %}
{% assign my_paths = my_paths | push:asset %}
{% endif %}
{% endunless %}
{% endfor %}
{% endfor %}
{% assign my_captures = "" | split: "::" %}
{% for my_path in my_paths %}
{% assign my_size = my_path.path | split: "/" | size %}
{% capture my_capture %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"path": {{ my_path.path | jsonify }}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}}{% unless forloop.last %},{% endunless %}
{% endcapture %}
{% assign my_captures = my_captures | push:my_capture %}
{% endfor %}
{% for my_capture in my_captures %}
{{ my_capture }}
{% endfor %}
{% assign my_asset = "" | split: "," %}
{% for asset in my_assets %}
{% if asset.path contains "/head/" %}
{% assign my_asset = my_asset | push:asset %}
{% endif %}
{% endfor %}
{% for asset in my_asset %}
{{ my_tab }}{{ my_tab }}{
{{ my_tab }}{{ my_tab }}{{ my_tab }}"path": {{ asset.path | jsonify }}
{{ my_tab }}{{ my_tab }}}{% unless forloop.last %},{% endunless %}
{% endfor %}
{{ my_tab }}]
[
{
"path": "_assets/skema/sequence/object.md"
},
{
"path": "_assets/skema/sequence/method.md"
},
{
"path": "_assets/skema/sequence.md"
},
{
"path": "_assets/skema/flowchart.md"
},
{
"path": "_assets/skema/railroad.md"
},
{
"path": "_assets/head/head.md"
},
{
"path": "_assets/head/beranda.md"
},
{
"path": "_assets/head/abstrak.md"
},
{
"path": "_assets/head/skema.md"
},
{
"path": "_assets/head/eksekusi.md"
},
{
"path": "_assets/head/portfolio.md"
},
{
"path": "_assets/head/network.md"
},
{
"path": "_assets/head/publikasi.md"
},
{
"path": "_assets/head/diskusi.md"
},
{
"path": "_assets/head/bottom.md"
}
]
[
{% assign my_assets = site.assets | sort: 'weight' %}
{% assign my_tab = " " %}
{% assign my_size = 2 %}
{% assign my_path = "" | split: "," %}
{% for asset in my_assets %}
{% assign my_split = asset.path | split: "/" %}
{% assign size = my_split | size %}
{% if size > my_size %}
{% assign my_path = my_path | push:size %}
{% assign my_size = size %}
{% endif %}
{% endfor %}
{% assign my_paths = "" | split: "," %}
{% for my_size in my_path reversed %}
{% for asset in my_assets %}
{% unless asset.path contains "/head/" %}
{% assign my_split = asset.path | split: "/" %}
{% assign size = my_split | size %}
{% if size == my_size %}
{% assign my_paths = my_paths | push:asset %}
{% endif %}
{% endunless %}
{% endfor %}
{% endfor %}
{% assign my_captures = "" | split: "," %}
{% for my_path in my_paths %}
{% assign my_split = my_path.path | split: "/" %}
{% assign my_part = my_split | size | minus:2 %}
{% assign my_size = my_split | size | | times: 2 | minus:2 %}
{% assign my_dir = my_split[my_part] | prepend: "/" | append: "/" %}
{% assign my_title = my_path.title | downcase | prepend: my_dir | append: "/" %}
{% assign my_index = "" | split: "," %}
{% for my_push in my_paths %}
{% if my_push.path contains my_title %}
{% assign my_index = my_index | push:forloop.index0 %}
{% endif %}
{% endfor %}
{% capture my_capture %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"path": {{ my_path.path | jsonify }}{% assign my_index_size = my_index | size %}{% if my_index_size > 0 %},
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"item": [{% for index in my_index %}{{ my_captures[index] }}{% unless forloop.last %},{% endunless %}{% endfor %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}]{% endif %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}}
{% endcapture %}
{% assign my_captures = my_captures | push:my_capture %}
{% endfor %}
{% assign my_asset = "" | split: "," %}
{% for asset in my_assets %}
{% if asset.path contains "/head/" %}
{% assign my_asset = my_asset | push:asset %}
{% endif %}
{% endfor %}
{% for asset in my_asset %}
{% assign my_title = asset.title | downcase | prepend: "_assets/" | append: "/" %}
{% assign my_index = "" | split: "," %}
{% for my_path in my_paths %}
{% assign my_size = my_path.path | split: "/" | size %}
{% if my_size == 3 and my_path.path contains my_title %}
{% assign my_index = my_index | push:forloop.index0 %}
{% endif %}
{% endfor %}
{{ my_tab }}{{ my_tab }}{
{{ my_tab }}{{ my_tab }}{{ my_tab }}"path": {{ asset.path | jsonify }}{% assign my_index_size = my_index | size %}{% if my_index_size > 0 %},
{{ my_tab }}{{ my_tab }}{{ my_tab }}"item": [{% for index in my_index %}{{ my_captures[index] }}{% unless forloop.last %},{% endunless %}{% endfor %}
{{ my_tab }}{{ my_tab }}{{ my_tab }}]{% endif %}
{{ my_tab }}{{ my_tab }}}{% unless forloop.last %},{% endunless %}
{% endfor %}
{{ my_tab }}]
[
{
"path": "_assets/head/head.md"
},
{
"path": "_assets/head/beranda.md"
},
{
"path": "_assets/head/abstrak.md"
},
{
"path": "_assets/head/skema.md",
"item": [
{
"path": "_assets/skema/sequence.md",
"item": [
{
"path": "_assets/skema/sequence/object.md"
},
{
"path": "_assets/skema/sequence/method.md"
}
]
},
{
"path": "_assets/skema/flowchart.md"
},
{
"path": "_assets/skema/railroad.md"
}
]
},
{
"path": "_assets/head/eksekusi.md"
},
{
"path": "_assets/head/portfolio.md"
},
{
"path": "_assets/head/network.md"
},
{
"path": "_assets/head/publikasi.md"
},
{
"path": "_assets/head/diskusi.md"
},
{
"path": "_assets/head/bottom.md"
}
]
{
"version": "https://jsonfeed.org/version/1",
"title": "{{ site.title | xml_escape }}",
"description": {{ site.description | jsonify }},
"home_page_url": "{{ "/" | absolute_url }}",
"feed_url": "{{ "/feed.json" | absolute_url }}",
"user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format.",
"items": [{% assign assets = site.assets | sort:0 %}{% assign my_tab = " " %}{% assign my_size = 2 %}{% assign my_path = "" | split: "," %}{% assign atributs = "weight, title, next, content, output, previous, relative_path, id, collection, excerpt, categories, ext, tags, path, url, draft, slug" | split:", " %}{% for asset in assets %}{% assign my_split = asset.path | split: "/" %}{% assign size = my_split | size %}{% if size > my_size %}{% assign my_path = my_path | push:size %}{% assign my_size = size %}{% endif %}{% endfor %}{% assign assets = site.assets | sort: 'weight' %}{% assign my_paths = "" | split: "," %}{% for my_size in my_path reversed %}{% for asset in assets %}{% unless asset.path contains "/head/" %}{% assign my_split = asset.path | split: "/" %}{% assign size = my_split | size %}{% if size == my_size %}{% assign my_paths = my_paths | push:asset %}{% endif %}{% endunless %}{% endfor %}{% endfor %}{% assign my_captures = "" | split: "," %}{% for my_asset in my_paths %}{% assign my_split = my_asset.path | split: "/" %}{% assign my_path_size = my_split | size %}{% assign my_part = my_split | size | minus:2 %}{% assign my_size = my_split | size | times:2 | minus:2 %}{% assign my_dir = my_split[my_part] | prepend: "/" | append: "/" %}{% assign my_title = my_asset.title | downcase | prepend: my_dir | append: "/" %}{% assign my_index = "" | split: "," %}{% for my_push in my_paths %}{% assign my_num = my_push.path | split: "/" | size | minus:my_path_size %}{% if my_num == 1 and my_push.path contains my_title %}{% assign my_index = my_index | push:forloop.index0 %}{% endif %}{% endfor %}{% capture my_capture %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"weight": {{ my_asset.weight | jsonify }},
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"title": {{ my_asset.title | jsonify }},{% for item in my_asset %}{% unless atributs contains item %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}{{ item | jsonify }}: {{ my_asset[item] | jsonify }},{% endunless %}{% endfor %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"path": {{ my_asset.path | jsonify }},
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"input": {% assign input = "" %}{% for item_hash in site.data.skema %}{% assign item = item_hash[1] %}{% unless item.title == null %}{% if item.title == my_asset.slug %}{% assign input = item.content %}{% endif %}{% endunless %}{% endfor %}{{ input | jsonify }},
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"content": {{ my_asset.content | jsonify }},
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"output": {{ my_asset.output | jsonify }},{% assign my_index_size = my_index | size %}{% if my_index_size > 0 %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"items": [{% for index in my_index %}{{ my_captures[index] }}{% unless forloop.last %},{% endunless %}{% endfor %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}]{% else %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}{{ my_tab }}"items": []{% endif %}
{% for i in (1..my_size) %}{{ my_tab }}{% endfor %}}{% endcapture %}{% assign my_captures = my_captures | push:my_capture %}{% endfor %}{% assign my_assets = "" | split: "," %}{% for asset in assets %}{% if asset.path contains "/head/" %}{% assign my_assets = my_assets | push:asset %}{% endif %}{% endfor %}{% for my_asset in my_assets %}{% assign my_title = my_asset.title | downcase | prepend: "_assets/" | append: "/" %}{% assign my_index = "" | split: "," %}{% for my_path in my_paths %}{% assign my_size = my_path.path | split: "/" | size %}{% if my_size == 3 and my_path.path contains my_title %}{% assign my_index = my_index | push:forloop.index0 %}{% endif %}{% endfor %}
{{ my_tab }}{{ my_tab }}{
{{ my_tab }}{{ my_tab }}{{ my_tab }}"weight": {{ my_asset.weight | jsonify }},
{{ my_tab }}{{ my_tab }}{{ my_tab }}"title": {{ my_asset.title | jsonify }},{% for item in my_asset %}{% unless atributs contains item %}
{{ my_tab }}{{ my_tab }}{{ my_tab }}{{ item | jsonify }}: {{ my_asset[item] | jsonify }},{% endunless %}{% endfor %}
{{ my_tab }}{{ my_tab }}{{ my_tab }}"path": {{ my_asset.path | jsonify }},
{{ my_tab }}{{ my_tab }}{{ my_tab }}"input": {% assign input = "" %}{% for item_hash in site.data %}{% assign item = item_hash[1] %}{% if item.title == my_asset.slug %}{% assign input = item.content %}{{ input | jsonify }}{% endif %}{% endfor %}{% if input == "" %}{{ input | jsonify }}{% endif %},
{{ my_tab }}{{ my_tab }}{{ my_tab }}"content": {{ my_asset.content | jsonify }},
{{ my_tab }}{{ my_tab }}{{ my_tab }}"output": {{ my_asset.output | jsonify }},{% assign my_index_size = my_index | size %}{% if my_index_size > 0 %}
{{ my_tab }}{{ my_tab }}{{ my_tab }}"items": [{% for index in my_index %}{{ my_captures[index] }}{% unless forloop.last %},{% endunless %}{% endfor %}
{{ my_tab }}{{ my_tab }}{{ my_tab }}]{% else %}
{{ my_tab }}{{ my_tab }}{{ my_tab }}"items": []{% endif %}
{{ my_tab }}{{ my_tab }}}{% unless forloop.last %},{% endunless %}{% endfor %}
{{ my_tab }}]
}
Penyederhanaan Hasil: https://chetabahana.github.io/feed.json
[
{
"weight": 1,
"title": "Head",
"items": []
},
{
"weight": 2,
"title": "Beranda",
"items": []
},
{
"weight": 3,
"title": "Abstrak",
"items": []
},
{
"weight": 4,
"title": "Skema",
"items": [
{
"weight": 1,
"title": "Sequence",
"item": [
{
"weight": 1,
"title": "Object",
"items": []
},
{
"weight": 2,
"title": "Method",
"items": []
}
]
},
{
"weight": 2,
"title": "Flowchart",
"items": []
},
{
"weight": 3,
"title": "Railroad",
"items": []
}
]
},
{
"weight": 5,
"title": "Eksekusi",
"items": []
},
{
"weight": 6,
"title": "Portfolio",
"items": []
},
{
"weight": 7,
"title": "Network",
"items": []
},
{
"weight": 8,
"title": "Publikasi",
"items": []
},
{
"weight": 9,
"title": "Diskusi",
"items": []
},
{
"weight": 10,
"title": "Bottom",
"items": []
}
]
- Input API: https://github.com/MarketLeader
- Dokumentasi: https://github.com/MarketLeader/marketleader.github.io/wiki
- Implementasi: https://chetabahana.github.io/#chetabahana-skema
- Dokumentasi Implementasi: https://github.com/MarketLeader/marketleader.github.io/wiki

This documentation is mapped under Mapping and licensed under Apache License, Version 2.0.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (c) 2018-2020 Chetabahana Project