ソースファイルはGitHubに置いてあります。
Vue.MiniCalendar

html

Vue.jsの他にAxiosも使用しているので読み込んでください。

index.xml
<!DOCTYPE html>
<html lang="ja">
<head>
<link rel="stylesheet" href="mini-calendar.css">
</head>
<body>
<div id="app">
<div class="container">
<mini-calendar />
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios@0.21.1/dist/axios.min.js"></script>
<script src="mini-calendar.js"></script>
<script>
var app = new Vue({
el: '#app'
});
</script>
</body>
</html>

イベントの表示

デフォルト設定ではhtmlと同階層に「data」というディレクトリを作成、その下に「年」のディレクトリを作り「月.json」というファイル名で作成します。
例えば2021年7月のデータなら「/data/2021/7.json」のようになります。

data/2021/7.json
{
"events": [
{
"day": 2,
"title": "イベント",
"type": "blue"
},{
"day": 6,
"title": "イベント2",
"type": "red"
},{
"day": 23,
"title": "イベント3",
"type": "green"
}
],
"holidays": [19]
}

Props

設定はPropsで変更することができます。

Props 説明
data-path イベントデータのパス ‘./data/’
current-date 表示するカレンダーの月 ‘2021/6’
week-type 曜日のラベル [“日”, “月”, “火”, “水”, “木”, “金”, “土”]