hyde_admin 0.0.1 → 0.0.3
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/.gitattributes +3 -0
- data/.idea/hyde_admin.iml +2 -0
- data/.idea/vcs.xml +6 -0
- data/CHANGELOG.md +11 -0
- data/README.md +23 -0
- data/TODO.md +1 -0
- data/bin/admin_views/admin_layout.html.erb +138 -109
- data/bin/admin_views/configuration.erb +13 -0
- data/bin/admin_views/dashboard.erb +1 -1
- data/bin/admin_views/editor_html.erb +24 -0
- data/bin/admin_views/editor_js.erb +120 -0
- data/bin/admin_views/files/edit.erb +30 -0
- data/bin/admin_views/files/listing.erb +111 -0
- data/bin/admin_views/posts/edit.erb +156 -0
- data/bin/admin_views/posts/listing.erb +34 -0
- data/bin/fslightbox/fslightbox.js +1 -0
- data/bin/hyde_admin +3 -0
- data/bin/hyde_admin.ru +243 -55
- data/bin/hyde_admin.yml +12 -5
- data/bin/hyde_assets/hyde_admin.css +18 -0
- data/bin/hyde_assets/hyde_admin.js +24 -0
- data/bin/i18n/en.yml +62 -1
- data/bin/i18n/fr.yml +62 -1
- data/bin/lib/codemirror.css +349 -0
- data/bin/lib/codemirror.js +9833 -0
- data/bin/mode/css/css.js +864 -0
- data/bin/mode/css/gss.html +104 -0
- data/bin/mode/css/gss_test.js +17 -0
- data/bin/mode/css/index.html +81 -0
- data/bin/mode/css/less.html +152 -0
- data/bin/mode/css/less_test.js +54 -0
- data/bin/mode/css/scss.html +158 -0
- data/bin/mode/css/scss_test.js +110 -0
- data/bin/mode/css/test.js +217 -0
- data/bin/mode/htmlembedded/htmlembedded.js +37 -0
- data/bin/mode/htmlembedded/index.html +60 -0
- data/bin/mode/htmlmixed/htmlmixed.js +153 -0
- data/bin/mode/htmlmixed/index.html +100 -0
- data/bin/mode/javascript/index.html +118 -0
- data/bin/mode/javascript/javascript.js +959 -0
- data/bin/mode/javascript/json-ld.html +72 -0
- data/bin/mode/javascript/test.js +521 -0
- data/bin/mode/javascript/typescript.html +62 -0
- data/bin/mode/markdown/index.html +418 -0
- data/bin/mode/markdown/markdown.js +886 -0
- data/bin/mode/markdown/test.js +1319 -0
- data/bin/mode/ruby/index.html +183 -0
- data/bin/mode/ruby/ruby.js +303 -0
- data/bin/mode/ruby/test.js +23 -0
- data/bin/mode/sass/index.html +68 -0
- data/bin/mode/sass/sass.js +459 -0
- data/bin/mode/sass/test.js +122 -0
- data/bin/mode/spreadsheet/index.html +42 -0
- data/bin/mode/spreadsheet/spreadsheet.js +112 -0
- data/bin/mode/xml/index.html +61 -0
- data/bin/mode/xml/test.js +51 -0
- data/bin/mode/xml/xml.js +417 -0
- data/bin/mode/yaml/index.html +80 -0
- data/bin/mode/yaml/yaml.js +120 -0
- data/bin/mode/yaml-frontmatter/index.html +121 -0
- data/bin/mode/yaml-frontmatter/yaml-frontmatter.js +72 -0
- data/hyde_admin.gemspec +6 -1
- data/lib/hyde_admin/version.rb +1 -1
- metadata +114 -7
- data/bin/admin_views/edit.erb +0 -57
- data/bin/admin_views/listing.erb +0 -32
- data/bin/hyde_admin.sh +0 -3
data/bin/hyde_admin.ru
CHANGED
@@ -2,86 +2,251 @@
|
|
2
2
|
# lancer avec rackup
|
3
3
|
require "roda"
|
4
4
|
require 'yaml'
|
5
|
+
require 'fileutils'
|
6
|
+
require 'i18n'
|
7
|
+
require 'date'
|
8
|
+
require_relative '../lib/hyde_admin/version'
|
9
|
+
|
10
|
+
# TODO détecter format nouveau post (pour codemirror)
|
5
11
|
|
6
12
|
class App < Roda
|
7
13
|
YML_FILE_NAME = "hyde_admin.yml"
|
8
14
|
|
9
15
|
plugin :render,
|
10
16
|
#escape: true, # Automatically escape output in erb templates using Erubi's escaping support
|
11
|
-
views: 'admin_views', # Default views directory
|
17
|
+
views: File.join(File.expand_path(File.dirname(__FILE__)),'admin_views'), # Default views directory
|
12
18
|
layout_opts: {template: 'admin_layout', engine: 'html.erb'}, # Default layout options
|
13
19
|
template_opts: {default_encoding: 'UTF-8'} # Default template options
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
# TODO load option (default_layout, deploy_dest_address, deploy_dest_path, path_to_jekyll_src, rsync_fullpath)
|
22
|
-
# expliquer dans la doc le hyde.yml (voir une commande pour le prégénérer)
|
20
|
+
plugin :i18n, translations: File.join(File.expand_path(File.dirname(__FILE__)), 'i18n') # gem 'roda-i18n'
|
21
|
+
opts[:root] = Dir.pwd
|
22
|
+
plugin :public, root: File.join(Dir.pwd, '_site') # simulate jekyll site
|
23
|
+
plugin :static, ['/mode', '/lib', '/fslightbox', '/hyde_assets'], :root => File.join(File.expand_path(File.dirname(__FILE__)))
|
24
|
+
plugin :http_auth
|
25
|
+
plugin :common_logger
|
23
26
|
|
24
27
|
def initialize(param)
|
25
|
-
puts "============> #{Dir.pwd}"
|
26
28
|
yml_in_current_dir = File.join(Dir.pwd, YML_FILE_NAME)
|
27
29
|
yml_in_gem = File.expand_path(File.join(File.dirname(__FILE__), YML_FILE_NAME))
|
28
30
|
|
29
|
-
puts yml_in_current_dir
|
30
|
-
puts yml_in_gem
|
31
|
-
|
32
31
|
# Generate default YML for hyde_admin
|
33
32
|
if !File.exist?(yml_in_current_dir)
|
34
|
-
|
33
|
+
FileUtils.cp(yml_in_gem, yml_in_current_dir)
|
35
34
|
end
|
36
35
|
@hyde_parameters ||= YAML.load(File.read(yml_in_current_dir))
|
37
36
|
super(param)
|
38
37
|
end
|
39
38
|
|
39
|
+
def self.transliterate_title_for_url(title)
|
40
|
+
I18n.config.available_locales = :en
|
41
|
+
I18n.transliterate(title).downcase.gsub(/[^a-zA-Z ]/,'').gsub(' ','-')
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.urlize(date_str, title, with_date = true)
|
45
|
+
url_str = ""
|
46
|
+
if with_date
|
47
|
+
url_str += "#{Date.parse(date_str).strftime('%Y-%m-%d')}-"
|
48
|
+
end
|
49
|
+
url_str += "#{self.transliterate_title_for_url(title)}"
|
50
|
+
url_str
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.extract_header_str(str)
|
54
|
+
str.scan(/---(.*?)---/m).flatten.first
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.extract_header(str)
|
58
|
+
headers = App.extract_header_str(str).to_s.split("\n")
|
59
|
+
headers = headers.select{ |header| !header.empty? }.map{ |header| header.scan(/([a-zA-Z0-9]*): (.*)/).flatten }.select{ |header| !header.empty? }
|
60
|
+
hsh_headers = {}
|
61
|
+
if !headers.flatten.empty?
|
62
|
+
#$stderr.puts "==============="
|
63
|
+
#$stderr.puts headers.inspect
|
64
|
+
hsh_headers = Hash[headers]
|
65
|
+
end
|
66
|
+
hsh_headers
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.remove_header(str)
|
70
|
+
str.gsub(/---(.*?)---/m, "")
|
71
|
+
end
|
72
|
+
|
73
|
+
FORMAT_DATE_FILENAME = '%Y-%m-%d'
|
74
|
+
FORMAT_DATE_INPUT_FILENAME = '%Y-%m-%d %H:%M:%S %z'
|
75
|
+
|
76
|
+
REGEXP_EXTRACT_DATE_FROM_FILENAME = /\d{4}-\d{2}-\d{2}-/
|
77
|
+
REGEXP_EXTRACT_DATE_TITLE_FROM_FILENAME = /(\d{4}-\d{2}-\d{2}-)(.*)(\.[^.]*)$/
|
78
|
+
|
40
79
|
route do |r|
|
41
|
-
|
80
|
+
@page = r.params['page']
|
81
|
+
|
82
|
+
if @hyde_parameters['hyde_admin_auth'].to_s == 'true'
|
83
|
+
http_auth {|u, p| [u, p] == [@hyde_parameters['hyde_admin_user'], @hyde_parameters['hyde_admin_password']] }
|
84
|
+
end
|
85
|
+
|
86
|
+
# GET serve jekyll site
|
42
87
|
r.public
|
43
88
|
|
89
|
+
r.i18n_set_locale(@hyde_parameters['hyde_admin_language']) do
|
90
|
+
|
44
91
|
r.root do
|
45
92
|
r.redirect "/dashboard"
|
46
93
|
end
|
47
94
|
|
95
|
+
# Redirect to jekyll index site
|
48
96
|
r.on "overview" do
|
49
97
|
r.redirect @hyde_parameters['site_index']
|
50
98
|
end
|
51
|
-
|
52
|
-
#
|
99
|
+
|
100
|
+
# Rebuild static files
|
53
101
|
r.on "rebuild" do
|
54
|
-
puts
|
55
|
-
`cd #{
|
102
|
+
puts Dir.pwd
|
103
|
+
`cd #{Dir.pwd} && jekyll b`
|
56
104
|
r.redirect "/dashboard"
|
57
105
|
end
|
58
106
|
|
59
107
|
r.on "deploy" do
|
60
|
-
`#{@hyde_parameters['rsync_fullpath']} #{
|
108
|
+
`#{@hyde_parameters['rsync_fullpath']} #{Dir.pwd}/_site/ #{@hyde_parameters['deploy_dest_user']}@#{@hyde_parameters['deploy_dest_address']}:#{@hyde_parameters['deploy_dest_path']}`
|
61
109
|
r.redirect "/dashboard"
|
62
110
|
end
|
63
111
|
|
64
|
-
r.
|
65
|
-
|
112
|
+
r.post "configuration" do
|
113
|
+
r.params.each_pair do |k,v|
|
114
|
+
@hyde_parameters[k] = v
|
115
|
+
end
|
116
|
+
File.open(File.join(Dir.pwd, YML_FILE_NAME),"w+") do |f|
|
66
117
|
f.write(@hyde_parameters.to_yaml)
|
67
118
|
end
|
68
|
-
r.redirect "/
|
119
|
+
r.redirect "/configuration"
|
120
|
+
end
|
121
|
+
|
122
|
+
r.get "configuration" do
|
123
|
+
view("configuration")
|
69
124
|
end
|
70
125
|
|
71
126
|
r.on "dashboard" do
|
72
127
|
view("dashboard")
|
73
128
|
end
|
74
129
|
|
130
|
+
r.on "files" do
|
131
|
+
@dir_path = r.params['dir_path'] || Dir.pwd
|
132
|
+
|
133
|
+
# List files
|
134
|
+
r.get "index" do
|
135
|
+
@files = Dir[File.join(@dir_path, '*')].sort(&:casecmp).reverse
|
136
|
+
@parent_dir = (@dir_path != Dir.pwd)
|
137
|
+
view("files/listing")
|
138
|
+
end
|
139
|
+
|
140
|
+
# Upload files
|
141
|
+
r.post "create" do
|
142
|
+
files = [r.params['files']].flatten # 1 or more files
|
143
|
+
files.each do |file|
|
144
|
+
File.open(File.join(@dir_path, file[:filename]), 'wb') do |f|
|
145
|
+
f.write(file[:tempfile].read)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
r.redirect "/files/index?dir_path=#{@dir_path}"
|
149
|
+
end
|
150
|
+
|
151
|
+
# Create directory
|
152
|
+
r.post "create_dir" do
|
153
|
+
Dir.mkdir(File.join(@dir_path, r.params['directory_name']))
|
154
|
+
r.redirect "/files/index?dir_path=#{@dir_path}"
|
155
|
+
end
|
156
|
+
|
157
|
+
# Create file
|
158
|
+
r.post "create_file" do
|
159
|
+
fullpath = File.join(@dir_path, r.params['file_name'])
|
160
|
+
File.open(fullpath, 'w+') do |f|
|
161
|
+
f.write("")
|
162
|
+
end
|
163
|
+
r.redirect "/files/edit?dir_path=#{@dir_path}&file=#{fullpath}"
|
164
|
+
end
|
165
|
+
|
166
|
+
# Edit text files
|
167
|
+
r.get "edit" do
|
168
|
+
@file = r.params['file']
|
169
|
+
@content = File.read(@file)
|
170
|
+
@header = App.extract_header_str(@content)
|
171
|
+
@content = App.remove_header(@content)
|
172
|
+
@has_header = (!@header.nil? && !@header.empty?)
|
173
|
+
@has_editor = ['.html','.md'].include?(File.extname(@file))
|
174
|
+
view("files/edit")
|
175
|
+
end
|
176
|
+
|
177
|
+
# Update file
|
178
|
+
r.post "update" do
|
179
|
+
@file = r.params['file']
|
180
|
+
@content = r.params['content']
|
181
|
+
@header = r.params['header']
|
182
|
+
File.open(@file,"w+") do |f|
|
183
|
+
if !@header.nil? and !@header.empty?
|
184
|
+
f.write("---")
|
185
|
+
f.write(@header)
|
186
|
+
f.write("---")
|
187
|
+
f.write("")
|
188
|
+
end
|
189
|
+
f.write(@content)
|
190
|
+
end
|
191
|
+
view("files/edit")
|
192
|
+
end
|
193
|
+
|
194
|
+
# Delete
|
195
|
+
r.post "delete" do
|
196
|
+
file = r.params['file']
|
197
|
+
File.unlink(file)
|
198
|
+
r.redirect "/files/index?dir_path=#{@dir_path}"
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
r.on "ajax" do
|
203
|
+
r.post "update_path_date" do
|
204
|
+
path = r.params['path']
|
205
|
+
date = Date.parse(r.params['date'])
|
206
|
+
new_path = path.gsub(REGEXP_EXTRACT_DATE_FROM_FILENAME, date.strftime("#{FORMAT_DATE_FILENAME}-"))
|
207
|
+
response.write(new_path)
|
208
|
+
end
|
209
|
+
r.post "update_path_title" do
|
210
|
+
path = r.params['path']
|
211
|
+
title = r.params['title']
|
212
|
+
I18n.config.available_locales = :en
|
213
|
+
new_path = path.gsub(REGEXP_EXTRACT_DATE_TITLE_FROM_FILENAME, "\\1#{App.transliterate_title_for_url(title)}\\3")
|
214
|
+
response.write(new_path)
|
215
|
+
end
|
216
|
+
r.post "update_date_today" do
|
217
|
+
date = Time.now.strftime(FORMAT_DATE_INPUT_FILENAME)
|
218
|
+
response.write(date)
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
75
222
|
# Posts/pages/drafts
|
76
223
|
r.on /posts|pages|drafts/ do
|
77
224
|
# Set variable for all routes in /hello branch
|
78
225
|
@type_file = r.matched_path.split('/').compact.select{ |elt| elt != '' }.first
|
79
226
|
|
227
|
+
# Mkdir _pages _drafts _posts if they not exist
|
228
|
+
FileUtils.mkdir_p(File.join(Dir.pwd, "_#{@type_file}"))
|
229
|
+
|
80
230
|
# GET /posts/index request
|
81
231
|
# list all posts...
|
82
232
|
r.get "index" do
|
83
|
-
@files = Dir[File.join(
|
84
|
-
view("listing")
|
233
|
+
@files = Dir[File.join(Dir.pwd, "_#{@type_file}", '*')].sort.reverse
|
234
|
+
view("posts/listing")
|
235
|
+
end
|
236
|
+
|
237
|
+
r.get "new" do
|
238
|
+
@file = ""
|
239
|
+
@headers = {}
|
240
|
+
@new_record = @file.empty?
|
241
|
+
view("posts/edit")
|
242
|
+
end
|
243
|
+
|
244
|
+
# POST /posts/delete?file=truc request
|
245
|
+
# save the truc post
|
246
|
+
r.post "delete" do
|
247
|
+
@file = r.params['file']
|
248
|
+
File.unlink(@file)
|
249
|
+
r.redirect "/#{@type_file}/index?dir_path=#{File.dirname(@file)}"
|
85
250
|
end
|
86
251
|
|
87
252
|
r.is do
|
@@ -91,52 +256,75 @@ class App < Roda
|
|
91
256
|
@file = r.params['file']
|
92
257
|
|
93
258
|
content_file = File.read(@file)
|
94
|
-
@headers =
|
95
|
-
@
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
259
|
+
@headers = App.extract_header(content_file)
|
260
|
+
@content = File.read(@file).gsub(/---(.*?)---/m, "")
|
261
|
+
|
262
|
+
# for page
|
263
|
+
if @headers.empty?
|
264
|
+
r.redirect "/files/edit?dir_path=#{r.params['dir_path']}&file=#{@file}"
|
265
|
+
else
|
266
|
+
@new_record = @file.empty?
|
267
|
+
view("posts/edit")
|
268
|
+
end
|
100
269
|
end
|
101
270
|
|
102
271
|
# POST /posts?file=truc request
|
103
272
|
# save the truc post
|
104
273
|
r.post do
|
105
|
-
@file = r.params
|
106
|
-
@content = r.params
|
107
|
-
@filename = r.params
|
108
|
-
@tags = r.params
|
109
|
-
@
|
110
|
-
@
|
111
|
-
@
|
112
|
-
@
|
113
|
-
@
|
114
|
-
@
|
274
|
+
@file = r.params.delete('file') # in a route (new record : empty ELSE old filename)
|
275
|
+
@content = r.params.delete('content')
|
276
|
+
@filename = r.params.delete('filename')
|
277
|
+
@tags = r.params.delete('tags')
|
278
|
+
@date = r.params.delete('date')
|
279
|
+
@meta = r.params.delete('meta')
|
280
|
+
@format = r.params.delete('format')
|
281
|
+
@publish = r.params.delete('publish')
|
282
|
+
@layout = r.params.delete('layout')
|
283
|
+
@title = r.params.delete('title')
|
284
|
+
@new_file = r.params.delete('new_file') # form (new record : empty ELSE new filename)
|
285
|
+
|
286
|
+
#$stderr.puts "---->"
|
287
|
+
|
288
|
+
if @new_file.nil? || @new_file.empty?
|
289
|
+
filename = App.urlize(@date, @title, (@type_file != 'pages'))
|
290
|
+
@new_file = File.join(Dir.pwd,"_#{@type_file}", "#{filename}.#{@format}")
|
291
|
+
end
|
115
292
|
|
116
293
|
@headers = ['---']
|
117
|
-
@headers << ['tags', @tags.join(',')].join(': ')
|
294
|
+
@headers << ['tags', @tags.split(',').map(&:strip).join(',')].join(': ')
|
118
295
|
@headers << ['layout', @layout].join(': ')
|
119
296
|
@headers << ['date', @date.to_s].join(': ')
|
120
|
-
|
297
|
+
@headers << ['title', @title.to_s].join(': ')
|
298
|
+
r.params.each do |k,v|
|
299
|
+
if k.start_with?('header')
|
300
|
+
@headers << [v.first, v.last.to_s].join(': ')
|
301
|
+
else
|
302
|
+
@headers << [k, v.to_s].join(': ')
|
303
|
+
end
|
304
|
+
end
|
121
305
|
@headers << ['---']
|
306
|
+
@headers << ['']
|
122
307
|
|
123
|
-
File.open(
|
308
|
+
File.open(@new_file, "w+") do |f|
|
124
309
|
f.write(@headers.join("\n"))
|
125
|
-
f.write(
|
126
|
-
f.write(content)
|
310
|
+
f.write(@content)
|
127
311
|
end
|
128
|
-
end
|
129
312
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
313
|
+
# Change path of file
|
314
|
+
if !@file.to_s.empty? && @new_file.to_s != @file.to_s
|
315
|
+
File.unlink(@file)
|
316
|
+
end
|
317
|
+
|
318
|
+
# publish : move draft to post
|
319
|
+
if @publish == 'publish' && @new_file.to_s.include?('_drafts')
|
320
|
+
FileUtils.mv(@new_file, @new_file.gsub('_drafts','_posts'))
|
321
|
+
end
|
322
|
+
|
323
|
+
r.redirect "/#{@type_file}/index?dir_path=#{File.dirname(@new_file)}"
|
135
324
|
end
|
136
325
|
end
|
137
326
|
end
|
138
|
-
|
139
|
-
# TODO faire un jekyll serve
|
327
|
+
end
|
140
328
|
end
|
141
329
|
end
|
142
330
|
|
data/bin/hyde_admin.yml
CHANGED
@@ -1,8 +1,15 @@
|
|
1
1
|
---
|
2
|
-
default_layout:
|
3
|
-
deploy_dest_user:
|
4
|
-
deploy_dest_address:
|
5
|
-
deploy_dest_path: "/
|
6
|
-
path_to_jekyll_src: "/Users/scl/blog/rivscblog-zolan"
|
2
|
+
default_layout: default
|
3
|
+
deploy_dest_user: root
|
4
|
+
deploy_dest_address: example.com
|
5
|
+
deploy_dest_path: "/absolute/remote/path/mysite"
|
7
6
|
rsync_fullpath: rsync
|
8
7
|
site_index: index.html
|
8
|
+
hyde_admin_language: en
|
9
|
+
hyde_admin_auth: false
|
10
|
+
hyde_admin_user: admin
|
11
|
+
hyde_admin_password: admin
|
12
|
+
default_format: html
|
13
|
+
display_layout: true
|
14
|
+
display_format: true
|
15
|
+
images_path: assets/images/
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/* modal pictures */
|
2
|
+
.modal-body-image{
|
3
|
+
display: grid;
|
4
|
+
grid-template-columns: 1fr 1fr 1fr;
|
5
|
+
}
|
6
|
+
.modal-body-image .image-element{
|
7
|
+
width: 150px;
|
8
|
+
height: 150px;
|
9
|
+
}
|
10
|
+
.modal-body-image .image-element img{
|
11
|
+
width: 100%;
|
12
|
+
height: 100%;
|
13
|
+
object-fit: contain;
|
14
|
+
overflow: hidden;
|
15
|
+
}
|
16
|
+
.modal-body-image .image-element img:hover{
|
17
|
+
border:2px solid gray;
|
18
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
$(function(){
|
2
|
+
$(document).on('click','#btn-deploy,#btn-rebuild',function(elt){
|
3
|
+
let path = '';
|
4
|
+
|
5
|
+
if(elt.id === 'btn-deploy'){
|
6
|
+
path = '/deploy';
|
7
|
+
}else if(elt.id === 'btn-rebuild'){
|
8
|
+
path = '/rebuild';
|
9
|
+
}
|
10
|
+
|
11
|
+
$.post( path, {
|
12
|
+
beforeSend: function( xhr ) {
|
13
|
+
$('#waiting').show();
|
14
|
+
}
|
15
|
+
})
|
16
|
+
.done(function( data ) {
|
17
|
+
$('#waiting').hide();
|
18
|
+
return false;
|
19
|
+
});
|
20
|
+
});
|
21
|
+
$(document).on('click','.form-confirm',function(){
|
22
|
+
return window.confirm($(this).attr('data-confirm'));
|
23
|
+
});
|
24
|
+
});
|
data/bin/i18n/en.yml
CHANGED
@@ -5,11 +5,17 @@ pages: pages
|
|
5
5
|
post: post
|
6
6
|
posts: posts
|
7
7
|
save: save
|
8
|
+
new: new
|
8
9
|
edit: edit
|
9
10
|
delete: delete
|
10
|
-
|
11
|
+
create: create
|
12
|
+
upload: upload
|
13
|
+
header: header
|
14
|
+
add_header: add header
|
15
|
+
are_you_sure: are you sure ?
|
11
16
|
tag: tag
|
12
17
|
tags: tags
|
18
|
+
help_tags: set tags separate by comma
|
13
19
|
layout: layout
|
14
20
|
configuration: configuration
|
15
21
|
files: files
|
@@ -25,3 +31,58 @@ date: date
|
|
25
31
|
content: content
|
26
32
|
publish: publish
|
27
33
|
path: path
|
34
|
+
help_path: You can move the file by changing the path. Change the path can affect SEO or causing 404 errors. For a new file, this is automatically filled at submit.
|
35
|
+
overview: overview
|
36
|
+
submit: submit
|
37
|
+
default_layout: default layout
|
38
|
+
help_default_layout: default layout for jekyll posts/pages
|
39
|
+
deploy_dest_user: deploy remote user
|
40
|
+
help_deploy_dest_user: Ssh user for rsync
|
41
|
+
deploy_dest_address: deploy remote domain
|
42
|
+
help_deploy_dest_address: remote domain for ssh deployment
|
43
|
+
deploy_dest_path: deploy remote path
|
44
|
+
help_deploy_dest_path: remote path on disk for ssh deployment
|
45
|
+
rsync_fullpath: rsync path
|
46
|
+
help_rsync_fullpath: if rsync is not in PATH, othervise just let 'rsync'
|
47
|
+
site_index: index file name of site
|
48
|
+
help_site_index: link to open when we click on overview
|
49
|
+
hyde_admin_language: hyde admin language
|
50
|
+
help_hyde_admin_language: To change hyde admin language interface
|
51
|
+
set_date_today: set date at today
|
52
|
+
change_date_path: update date in path
|
53
|
+
change_title_path: update title in path
|
54
|
+
directory_input_placeholder: directory name to create
|
55
|
+
file_input_placeholder: file name to create
|
56
|
+
hyde_admin_auth: enable BasicAuth
|
57
|
+
help_hyde_admin_auth: enable BasicAuth
|
58
|
+
hyde_admin_user: BasicAuth user
|
59
|
+
help_hyde_admin_user: BasicAuth user
|
60
|
+
hyde_admin_password: BasicAuth password
|
61
|
+
help_hyde_admin_password: BasicAuth password
|
62
|
+
default_format: default format
|
63
|
+
help_default_format: default format
|
64
|
+
display_layout: display the layout input on edit form
|
65
|
+
help_display_layout: display the layout input on edit form
|
66
|
+
display_format: display the format input on edit form
|
67
|
+
help_display_format: display the format input on edit form
|
68
|
+
images_path: pictures path
|
69
|
+
help_images_path: relative local picture path
|
70
|
+
editor_undo: Undo
|
71
|
+
editor_redo: Redo
|
72
|
+
editor_file: Add picture
|
73
|
+
editor_list: List
|
74
|
+
editor_list_ol: Numbered List
|
75
|
+
editor_link: Add link
|
76
|
+
editor_quote: Quote
|
77
|
+
editor_title_h1: Title H1
|
78
|
+
editor_title_h2: Title H2
|
79
|
+
editor_title_h3: Title H3
|
80
|
+
editor_title_h4: Title H4
|
81
|
+
editor_title_h5: Title H5
|
82
|
+
editor_underline: Underline
|
83
|
+
editor_bold: Bold
|
84
|
+
editor_italic: Italic
|
85
|
+
editor_strikethrough: Strikethrough
|
86
|
+
default_alt_img: Alt text
|
87
|
+
default_title_img: Title text
|
88
|
+
parent_dir: dossier parent
|
data/bin/i18n/fr.yml
CHANGED
@@ -5,11 +5,17 @@ pages: pages
|
|
5
5
|
post: article
|
6
6
|
posts: articles
|
7
7
|
save: sauvegarder
|
8
|
+
new: nouveau
|
8
9
|
edit: éditer
|
9
10
|
delete: supprimer
|
10
|
-
|
11
|
+
create: créer
|
12
|
+
upload: uploader
|
13
|
+
header: Entête
|
14
|
+
are_you_sure: êtes-vous sûr ?
|
15
|
+
add_header: ajouter un entête
|
11
16
|
tag: mot-clé
|
12
17
|
tags: mots-clés
|
18
|
+
help_tags: Mettez les tags séparés par des virgules
|
13
19
|
layout: présentation
|
14
20
|
configuration: configuration
|
15
21
|
files: fichiers
|
@@ -25,3 +31,58 @@ date: date
|
|
25
31
|
content: contenu
|
26
32
|
publish: publier
|
27
33
|
path: chemin
|
34
|
+
help_path: Vous pouvez déplacer le fichier en changeant le chemin. Changer le chemin peut affecter le SEO et provoquer des erreurs 404. Pour un nouveau fichier, c'est automatiquement remplit à la sousmission du formulaire.
|
35
|
+
overview: aperçu
|
36
|
+
submit: valider
|
37
|
+
default_layout: présentation par défaut
|
38
|
+
help_default_layout: présentation par défaut pour les posts et pages
|
39
|
+
deploy_dest_user: Utilisateur pour déploiement
|
40
|
+
help_deploy_dest_user: Utilisateur pour déploiement par ssh
|
41
|
+
deploy_dest_address: Adresse pour déploiement
|
42
|
+
help_deploy_dest_address: Domaine ou adresse IP pour déploiement à travers ssh
|
43
|
+
deploy_dest_path: chemin distant pour déploiement
|
44
|
+
help_deploy_dest_path: chemin distant pour déploiement du site
|
45
|
+
rsync_fullpath: chemin rsync
|
46
|
+
help_rsync_fullpath: si rsync n'est pas dans le PATH, sinon laissez 'rsync'
|
47
|
+
site_index: nom du fichier index pour le site
|
48
|
+
help_site_index: Lien pour le lien aperçu, pensez à l'extention si nécessaire
|
49
|
+
hyde_admin_language: hyde admin langue
|
50
|
+
help_hyde_admin_language: Pour changer la langue d'interface de hyde admin
|
51
|
+
set_date_today: mets la date du jour
|
52
|
+
change_date_path: mets à jour la date dans le chemin de fichier
|
53
|
+
change_title_path: mets à jour le titre dans le chemin de fichier
|
54
|
+
directory_input_placeholder: nom du dossier à créer
|
55
|
+
file_input_placeholder: nom du fichier à créer
|
56
|
+
hyde_admin_auth: enable BasicAuth
|
57
|
+
help_hyde_admin_auth: enable BasicAuth
|
58
|
+
hyde_admin_user: BasicAuth user
|
59
|
+
help_hyde_admin_user: BasicAuth user
|
60
|
+
hyde_admin_password: BasicAuth password
|
61
|
+
help_hyde_admin_password: BasicAuth password
|
62
|
+
default_format: format par défaut
|
63
|
+
help_default_format: format par défaut pour les posts
|
64
|
+
display_layout: affiche le choix du layout sur le formulaire d'édition
|
65
|
+
help_display_layout: affiche le choix du layout sur le formulaire d'édition
|
66
|
+
display_format: affiche le choix du format sur le formulaire d'édition
|
67
|
+
help_display_format: affiche le choix du format sur le formulaire d'édition
|
68
|
+
images_path: chemin des images
|
69
|
+
help_images_path: chemin local relatif des images
|
70
|
+
editor_undo: Annuler
|
71
|
+
editor_redo: Refaire
|
72
|
+
editor_file: Ajouter image
|
73
|
+
editor_list: Liste
|
74
|
+
editor_list_ol: Liste numéroté
|
75
|
+
editor_link: Ajouter lien
|
76
|
+
editor_quote: Citation
|
77
|
+
editor_title_h1: Titre H1
|
78
|
+
editor_title_h2: Titre H2
|
79
|
+
editor_title_h3: Titre H3
|
80
|
+
editor_title_h4: Titre H4
|
81
|
+
editor_title_h5: Titre H5
|
82
|
+
editor_underline: Souligner
|
83
|
+
editor_bold: Gras
|
84
|
+
editor_italic: Italique
|
85
|
+
editor_strikethrough: Barré
|
86
|
+
default_alt_img: Texte alternatif
|
87
|
+
default_title_img: Titre image
|
88
|
+
parent_dir: dossier parent
|