isola 0.1.1 → 0.1.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.
- checksums.yaml +4 -4
- data/USAGE.ja.md +19 -3
- data/USAGE.md +19 -3
- data/exe/isola +4 -4
- data/lib/isola/context.rb +2 -2
- data/lib/isola/dev_server.rb +1 -1
- data/lib/isola/site.rb +7 -16
- data/lib/isola/source.rb +4 -0
- data/lib/isola/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ae141ebf3510995229e7bc854c3c43a566deb7f74b47f5c28c64840c1f25db18
|
|
4
|
+
data.tar.gz: 458948286fb8f457a77e5a7d9e9ed7805258ea53a9c6cb5ee3e4640a35d9f41e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7909154b135a3667a4289d5e9e91ddcf3e79029801e17b103ddebe906789561ea6a11499de3cb7e090bb83e38339c166786f8b05f1053a536464f3ec6f6843fa
|
|
7
|
+
data.tar.gz: '083de5dffb0186058bd30f4edf7d41e7b9a3472ea09b5b661654a4456585b74062cbf5ab11069af43c4994cf16e80626b5b5a90834effa2f59854c6091e0b246'
|
data/USAGE.ja.md
CHANGED
|
@@ -59,7 +59,7 @@ title: トップページ
|
|
|
59
59
|
```erb
|
|
60
60
|
<html>
|
|
61
61
|
<head>
|
|
62
|
-
<title><%= page
|
|
62
|
+
<title><%= page[:title] %></title>
|
|
63
63
|
</head>
|
|
64
64
|
<body>
|
|
65
65
|
<%= content %>
|
|
@@ -70,8 +70,8 @@ title: トップページ
|
|
|
70
70
|
テンプレート内では以下が使えます:
|
|
71
71
|
|
|
72
72
|
- `content` — ページ本文
|
|
73
|
-
- `page
|
|
74
|
-
- `site
|
|
73
|
+
- `page[:title]`, `page[:lang]` など — front-matterの値(`lang`はサイト設定から自動的に含まれますが、設定すれば上書きされます)
|
|
74
|
+
- `site[:title]`, `site[:url]` など — サイト設定
|
|
75
75
|
- `include 'head', key: value` — インクルードの挿入
|
|
76
76
|
|
|
77
77
|
### 5. ビルド
|
|
@@ -83,6 +83,22 @@ isola build
|
|
|
83
83
|
|
|
84
84
|
`_site/`に生成されます。
|
|
85
85
|
|
|
86
|
+
### 6. 開発サーバー
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
cd my-site
|
|
90
|
+
isola serve
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
サイトをビルドし、ローカル開発サーバーを起動します。デフォルトでは `http://127.0.0.1:4444` で待ち受けます。ホストとポートは `_config.yaml` で変更できます:
|
|
94
|
+
|
|
95
|
+
```yaml
|
|
96
|
+
host: 127.0.0.1
|
|
97
|
+
port: 4444
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
サーバーはファイルの変更を監視し、自動的にサイトを再ビルドします。`</body>` タグを含むHTMLページにはライブリロード用のスクリプトが挿入され、再ビルド後にブラウザが自動的にリロードされます。ライブリロードが機能するのは `</body>` タグを含むHTMLファイルのみです。
|
|
101
|
+
|
|
86
102
|
## ファイルの処理
|
|
87
103
|
|
|
88
104
|
Isolaが処理するテンプレートエンジンは現在 **ERB**(`.erb`)と **Markdown**(`.md`, `.markdown`, `.mkd`)のみです。
|
data/USAGE.md
CHANGED
|
@@ -59,7 +59,7 @@ Use the `.md.erb` extension to enable ERB inside Markdown.
|
|
|
59
59
|
```erb
|
|
60
60
|
<html>
|
|
61
61
|
<head>
|
|
62
|
-
<title><%= page
|
|
62
|
+
<title><%= page[:title] %></title>
|
|
63
63
|
</head>
|
|
64
64
|
<body>
|
|
65
65
|
<%= content %>
|
|
@@ -70,8 +70,8 @@ Use the `.md.erb` extension to enable ERB inside Markdown.
|
|
|
70
70
|
The following are available in templates:
|
|
71
71
|
|
|
72
72
|
- `content` — page body
|
|
73
|
-
- `page
|
|
74
|
-
- `site
|
|
73
|
+
- `page[:title]`, `page[:lang]` etc. — front-matter values (including `lang` from site config; you can overwrite in the page front-matter)
|
|
74
|
+
- `site[:title]`, `site[:url]` etc. — site configuration
|
|
75
75
|
- `include 'head', key: value` — insert an include
|
|
76
76
|
|
|
77
77
|
### 5. Build
|
|
@@ -83,6 +83,22 @@ isola build
|
|
|
83
83
|
|
|
84
84
|
Output is generated in `_site/`.
|
|
85
85
|
|
|
86
|
+
### 6. Development Server
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
cd my-site
|
|
90
|
+
isola serve
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Builds the site and starts a local development server. By default, the server listens on `http://127.0.0.1:4444`. You can change the host and port in `_config.yaml`:
|
|
94
|
+
|
|
95
|
+
```yaml
|
|
96
|
+
host: 127.0.0.1
|
|
97
|
+
port: 4444
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The server watches for file changes and automatically rebuilds the site. HTML pages that contain a `</body>` tag are injected with a live-reload script, so the browser refreshes automatically after each rebuild. Live reload only works for HTML files with a `</body>` tag.
|
|
101
|
+
|
|
86
102
|
## File Processing
|
|
87
103
|
|
|
88
104
|
Isola currently supports only **ERB** (`.erb`) and **Markdown** (`.md`, `.markdown`, `.mkd`) as template engines.
|
data/exe/isola
CHANGED
|
@@ -19,13 +19,13 @@ class IsolaCLI < Thor
|
|
|
19
19
|
site = construct_site
|
|
20
20
|
site.build
|
|
21
21
|
|
|
22
|
-
site_dir = File.join(site
|
|
23
|
-
host = site
|
|
24
|
-
port = site
|
|
22
|
+
site_dir = File.join(site[:root_dir], site[:destination])
|
|
23
|
+
host = site[:host]
|
|
24
|
+
port = site[:port]
|
|
25
25
|
server = Isola::DevServer.new(site_dir, host, port)
|
|
26
26
|
|
|
27
27
|
watcher = Isola::Watcher.new(site) { server.notify_reload }
|
|
28
|
-
listener = Listen.to(File.expand_path(site
|
|
28
|
+
listener = Listen.to(File.expand_path(site[:root_dir]), &watcher.method(:handle_changes))
|
|
29
29
|
listener.start
|
|
30
30
|
|
|
31
31
|
puts "serving at http://#{host}:#{port}"
|
data/lib/isola/context.rb
CHANGED
|
@@ -5,14 +5,14 @@ module Isola
|
|
|
5
5
|
attr_reader :site, :content, :layout
|
|
6
6
|
def initialize(page, site)
|
|
7
7
|
@page_source = page
|
|
8
|
-
@
|
|
8
|
+
@meta = {lang: site[:lang]}.merge(page.meta).freeze
|
|
9
9
|
@site = site
|
|
10
10
|
@content = ""
|
|
11
11
|
@layout = {}
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def page
|
|
15
|
-
@
|
|
15
|
+
@meta
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def include name, params = {}
|
data/lib/isola/dev_server.rb
CHANGED
data/lib/isola/site.rb
CHANGED
|
@@ -18,20 +18,11 @@ module Isola
|
|
|
18
18
|
collect_files
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
@config[:url]
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def lang
|
|
30
|
-
@config[:default_language]
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def root_dir
|
|
34
|
-
@config[:root_dir]
|
|
21
|
+
def [] key
|
|
22
|
+
if key == :lang
|
|
23
|
+
key = :default_language
|
|
24
|
+
end
|
|
25
|
+
@config[key]
|
|
35
26
|
end
|
|
36
27
|
|
|
37
28
|
def supported_ext? ext
|
|
@@ -76,7 +67,7 @@ module Isola
|
|
|
76
67
|
private
|
|
77
68
|
|
|
78
69
|
def collect_files
|
|
79
|
-
@file_handler = FileHandler.new(root_dir, excludes: @config[:excludes])
|
|
70
|
+
@file_handler = FileHandler.new(config[:root_dir], excludes: @config[:excludes])
|
|
80
71
|
@parsed_layouts = {}
|
|
81
72
|
@parsed_includes = {}
|
|
82
73
|
end
|
|
@@ -91,7 +82,7 @@ module Isola
|
|
|
91
82
|
end
|
|
92
83
|
|
|
93
84
|
def read_in_site(p)
|
|
94
|
-
File.read(File.join(root_dir, p))
|
|
85
|
+
File.read(File.join(config[:root_dir], p))
|
|
95
86
|
end
|
|
96
87
|
end
|
|
97
88
|
end
|
data/lib/isola/source.rb
CHANGED
data/lib/isola/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: isola
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Satoshi Kojima
|
|
@@ -113,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
113
113
|
requirements:
|
|
114
114
|
- - ">="
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 4.0
|
|
116
|
+
version: 3.4.0
|
|
117
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
118
|
requirements:
|
|
119
119
|
- - ">="
|