dato 0.1.21 → 0.1.22
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/README.md +1 -1
- data/docs/dato-cli.md +30 -7
- data/lib/dato/local/item.rb +10 -10
- data/lib/dato/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 144ffa9b811678f73e5aaafceb4142e8b55aa1b1
|
4
|
+
data.tar.gz: 743a63ec3d45593af332b52198d8e642ccbb89e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87c5ac87dfb9c5930b9093161ae9e6b01e827c2b11358feb26acb1aef69366ebeda418bfeb02678643df2ab2f6e30dddd67dc4672faa1bdcc74c75209a0b80b3
|
7
|
+
data.tar.gz: e6149a6e77bfe83400eb8a8badf9439d2cbf96fef79bf7c9e300a9cbaea0658e6a42847c71768ab4c740175ddd04bbea3a62acb072644553b541638f839a8fce
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ Ruby client for the DatoCMS API.
|
|
15
15
|
|
16
16
|
This gem can be used in different ways, so the documentation is split up in different files:
|
17
17
|
|
18
|
-
* [I want to use the content of a DatoCMS site in my static website (Hugo,
|
18
|
+
* [I want to use the content of a DatoCMS site in my static website (Hugo, Jekyll, etc.)](https://github.com/datocms/ruby-datocms-client/blob/master/docs/dato-cli.md);
|
19
19
|
* [I want to edit the contents of an existing DatoCMS site programmatically](https://github.com/datocms/ruby-datocms-client/blob/master/docs/site-api-client.md);
|
20
20
|
* [I want to create new DatoCMS sites programmatically](https://github.com/datocms/ruby-datocms-client/blob/master/docs/account-api-client.md).
|
21
21
|
|
data/docs/dato-cli.md
CHANGED
@@ -45,11 +45,36 @@ DatoCMS commands:
|
|
45
45
|
dato help [COMMAND] # Describe available commands or one specific command
|
46
46
|
```
|
47
47
|
|
48
|
-
|
48
|
+
Great! Now the easiest way to dump all the remote data into local files is to create a `dato.config.rb` file into your project root directory with the following content:
|
49
49
|
|
50
|
-
|
50
|
+
```ruby
|
51
|
+
# dato.config.rb
|
52
|
+
dato.available_locales.each do |locale|
|
53
|
+
directory "content/#{locale}" do
|
54
|
+
I18n.with_locale(locale) do
|
55
|
+
create_data_file "site.yml", :yaml, dato.site.to_hash
|
56
|
+
dato.item_types.each do |item_type|
|
57
|
+
create_data_file "#{item_type.api_key}.yml", :yaml,
|
58
|
+
dato.items_of_type(item_type).map(&:to_hash)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
```
|
64
|
+
|
65
|
+
And run the following command:
|
66
|
+
|
67
|
+
```
|
68
|
+
$ bundle exec dato dump --token=SITE_READONLY_TOKEN
|
69
|
+
```
|
70
|
+
|
71
|
+
Hurray! A new `content` directory should have been generated with a Yaml file for each item type and the site itself!
|
51
72
|
|
52
|
-
|
73
|
+
## Hugo step-by-step integration guide
|
74
|
+
|
75
|
+
That's just the beginning: it probably makes more sense if you generate local files following the precise guidelines of the static site generator you're using. You can easily configure the `dato.config.rb` file to achieve that.
|
76
|
+
|
77
|
+
Just to make things more down-to-heart, suppose we're working with a Hugo website with the following structure:
|
53
78
|
|
54
79
|
```
|
55
80
|
.
|
@@ -71,7 +96,7 @@ Now, just to make things more down-to-heart, suppose we're working with a Hugo w
|
|
71
96
|
└── ...
|
72
97
|
```
|
73
98
|
|
74
|
-
Our job is to generate the Markdown files in the `content` directory from the data contained in our DatoCMS site.
|
99
|
+
Our job is to generate the Markdown files in the `content` directory from the data contained in our DatoCMS site. The Toml files contained in the in the `data` directory need to be generated as well.
|
75
100
|
|
76
101
|
### Set up the site
|
77
102
|
|
@@ -92,9 +117,7 @@ Using the DatoCMS web interface, we first create the following Item types:
|
|
92
117
|
|
93
118
|
### Writing the config file
|
94
119
|
|
95
|
-
We then define how content stored in DatoCMS needs to be translated into local files
|
96
|
-
|
97
|
-
Let's start with posts:
|
120
|
+
We then define how content stored in DatoCMS needs to be translated into local files inside the `dato.config.rb` config file. Let's start with posts:
|
98
121
|
|
99
122
|
```ruby
|
100
123
|
directory "content/post" do
|
data/lib/dato/local/item.rb
CHANGED
@@ -26,9 +26,9 @@ module Dato
|
|
26
26
|
|
27
27
|
def slug(prefix_with_id: true)
|
28
28
|
return item_type.api_key.humanize.parameterize if singleton?
|
29
|
-
return id.to_s unless
|
29
|
+
return id.to_s unless title_field_api_key
|
30
30
|
|
31
|
-
title = send(
|
31
|
+
title = send(title_field_api_key)
|
32
32
|
if title && prefix_with_id
|
33
33
|
"#{id}-#{title.parameterize[0..50]}"
|
34
34
|
elsif title
|
@@ -38,6 +38,14 @@ module Dato
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
def title_field_api_key
|
42
|
+
title_field = fields.find do |field|
|
43
|
+
field.field_type == 'string' &&
|
44
|
+
field.appeareance[:type] == 'title'
|
45
|
+
end
|
46
|
+
title_field && title_field.api_key
|
47
|
+
end
|
48
|
+
|
41
49
|
def singleton?
|
42
50
|
item_type.singleton
|
43
51
|
end
|
@@ -140,14 +148,6 @@ module Dato
|
|
140
148
|
super
|
141
149
|
end
|
142
150
|
end
|
143
|
-
|
144
|
-
def title_attribute
|
145
|
-
title_field = fields.find do |field|
|
146
|
-
field.field_type == 'string' &&
|
147
|
-
field.appeareance[:type] == 'title'
|
148
|
-
end
|
149
|
-
title_field && title_field.api_key
|
150
|
-
end
|
151
151
|
end
|
152
152
|
end
|
153
153
|
end
|
data/lib/dato/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dato
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Verna
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|