fronde 0.3.0
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 +7 -0
- data/LICENSE +14 -0
- data/bin/fronde +45 -0
- data/lib/fronde/cli.rb +60 -0
- data/lib/fronde/cli/commands.rb +115 -0
- data/lib/fronde/config.rb +137 -0
- data/lib/fronde/config/lisp_config.rb +269 -0
- data/lib/fronde/config/org-config.el +17 -0
- data/lib/fronde/config/ox-fronde.el +114 -0
- data/lib/fronde/emacs.rb +37 -0
- data/lib/fronde/index.rb +130 -0
- data/lib/fronde/index/atom_generator.rb +86 -0
- data/lib/fronde/index/org_generator.rb +114 -0
- data/lib/fronde/org_file.rb +301 -0
- data/lib/fronde/org_file/class_methods.rb +72 -0
- data/lib/fronde/org_file/extracter.rb +72 -0
- data/lib/fronde/org_file/htmlizer.rb +43 -0
- data/lib/fronde/preview.rb +55 -0
- data/lib/fronde/templater.rb +118 -0
- data/lib/fronde/utils.rb +214 -0
- data/lib/fronde/version.rb +6 -0
- data/lib/tasks/org.rake +96 -0
- data/lib/tasks/site.rake +55 -0
- data/lib/tasks/sync.rake +34 -0
- data/lib/tasks/tags.rake +19 -0
- data/locales/en.yml +37 -0
- data/locales/fr.yml +37 -0
- metadata +267 -0
data/lib/tasks/site.rake
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fronde/emacs'
|
4
|
+
require 'fronde/index'
|
5
|
+
require 'fronde/utils'
|
6
|
+
require 'fronde/org_file'
|
7
|
+
require 'fronde/templater'
|
8
|
+
|
9
|
+
namespace :site do
|
10
|
+
desc 'Generates all index files'
|
11
|
+
task :index do
|
12
|
+
index = Fronde::Index.new
|
13
|
+
verbose = Rake::FileUtilsExt.verbose_flag
|
14
|
+
if verbose
|
15
|
+
index.write_all
|
16
|
+
next
|
17
|
+
end
|
18
|
+
build = Thread.new do
|
19
|
+
index.write_all(verbose: false)
|
20
|
+
end
|
21
|
+
Fronde::Utils.throbber(build, 'Generating indexes:')
|
22
|
+
next if index.empty?
|
23
|
+
Fronde::Config.write_org_lisp_config(with_tags: true)
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'Convert and customize all org files'
|
27
|
+
task :build, [:force?] => ['var/lib/org-config.el', :index] do |_, args|
|
28
|
+
args.with_defaults(:force? => false)
|
29
|
+
build_html = Thread.new do
|
30
|
+
rm_r 'var/tmp/timestamps', force: true if args[:force?]
|
31
|
+
Fronde::Emacs.new(verbose: Rake::FileUtilsExt.verbose_flag).publish
|
32
|
+
end
|
33
|
+
begin
|
34
|
+
Fronde::Utils.throbber(build_html, 'Building:')
|
35
|
+
# :nocov:
|
36
|
+
rescue RuntimeError
|
37
|
+
warn 'Aborting'
|
38
|
+
next
|
39
|
+
end
|
40
|
+
# :nocov:
|
41
|
+
customize_html = Thread.new do
|
42
|
+
pubfolder = Fronde::Config.settings['public_folder']
|
43
|
+
Dir["#{pubfolder}/**/*.html"].each do |f|
|
44
|
+
Fronde::Templater.customize_output(f)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
Fronde::Utils.throbber(customize_html, 'Customizing:')
|
48
|
+
end
|
49
|
+
|
50
|
+
desc 'Start a test server'
|
51
|
+
task :preview do
|
52
|
+
require 'fronde/preview'
|
53
|
+
Fronde.start_preview
|
54
|
+
end
|
55
|
+
end
|
data/lib/tasks/sync.rake
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fronde/config'
|
4
|
+
require 'fronde/utils'
|
5
|
+
|
6
|
+
def rsync_command(verbose, test = nil)
|
7
|
+
rsync_command = Fronde::Config.settings['rsync']
|
8
|
+
return rsync_command unless rsync_command.nil?
|
9
|
+
optstring = []
|
10
|
+
optstring << 'n' if test
|
11
|
+
if verbose
|
12
|
+
optstring << 'v'
|
13
|
+
else
|
14
|
+
optstring << 'q'
|
15
|
+
end
|
16
|
+
"rsync -#{optstring.join}rlpD --delete"
|
17
|
+
end
|
18
|
+
|
19
|
+
namespace :sync do
|
20
|
+
desc 'Push change to server'
|
21
|
+
task :push, :test? do |_, args|
|
22
|
+
remote_path = Fronde::Config.settings['remote']
|
23
|
+
if remote_path.nil?
|
24
|
+
warn 'No remote path set'
|
25
|
+
next
|
26
|
+
end
|
27
|
+
public_folder = Fronde::Config.settings['public_folder']
|
28
|
+
publish_thread = Thread.new do
|
29
|
+
sh [rsync_command(Rake::FileUtilsExt.verbose_flag, args[:test?]),
|
30
|
+
"#{public_folder}/", remote_path].join(' ')
|
31
|
+
end
|
32
|
+
Fronde::Utils.throbber(publish_thread, 'Publishing:')
|
33
|
+
end
|
34
|
+
end
|
data/lib/tasks/tags.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fronde/index'
|
4
|
+
|
5
|
+
namespace :tags do
|
6
|
+
desc 'List all tags by name'
|
7
|
+
task :name do
|
8
|
+
index = Fronde::Index.new
|
9
|
+
next if index.empty?
|
10
|
+
puts index.sort_by(:name).join("\n")
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'List all tags by weight'
|
14
|
+
task :weight do
|
15
|
+
index = Fronde::Index.new
|
16
|
+
next if index.empty?
|
17
|
+
puts index.sort_by(:weight).join("\n")
|
18
|
+
end
|
19
|
+
end
|
data/locales/en.yml
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
fronde:
|
3
|
+
bin:
|
4
|
+
usage: 'Usage: fronde %1 [options]'
|
5
|
+
commands:
|
6
|
+
cmd_title: Commands
|
7
|
+
alias: Alias for %1.
|
8
|
+
init: Initialize your Fronde instance (you just need to do it once).
|
9
|
+
preview: 'Start a test web server to preview your website on http://127.0.0.1:5000'
|
10
|
+
open: Open or create an org file.
|
11
|
+
build: Compile your org files to HTML.
|
12
|
+
publish: Push local changes to your public web server.
|
13
|
+
help: Alias for the -h switch.
|
14
|
+
options:
|
15
|
+
cmd_title: Options
|
16
|
+
directory: Wrap the new org file in this named folder.
|
17
|
+
help: Display help for a command and exit.
|
18
|
+
version: Display Fronde version and exit.
|
19
|
+
error:
|
20
|
+
no_command: 'ERROR: no command or unknown command given.'
|
21
|
+
no_file: 'ERROR: no file to open or edit.'
|
22
|
+
error:
|
23
|
+
label: An error occured.
|
24
|
+
explanation: To see it, run again your command with more verbosity, i.e. fronde build -v
|
25
|
+
index:
|
26
|
+
unsorted: Unsorted
|
27
|
+
published_on: Published on %1
|
28
|
+
all_tags: All tags
|
29
|
+
by_name: By alphabetical order
|
30
|
+
by_weight: By publication number
|
31
|
+
full_date_format: '%A %{date}'
|
32
|
+
full_date_with_time_format: '%{date} at %{time}'
|
33
|
+
org:
|
34
|
+
postamble:
|
35
|
+
written_by: Written by %a
|
36
|
+
with_emacs: 'with %c, and published with %N'
|
37
|
+
last_modification: Last modification on %C
|
data/locales/fr.yml
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
fronde:
|
3
|
+
bin:
|
4
|
+
usage: 'Usage : fronde %1 [options]'
|
5
|
+
commands:
|
6
|
+
cmd_title: Commandes
|
7
|
+
alias: Alias pour %1.
|
8
|
+
init: Initialise votre instance de Fronde (vous ne devriez faire cela qu'une fois).
|
9
|
+
preview: "Démarre un serveur web de test pour prévisualiser votre site à l'adresse http://127.0.0.1:5000"
|
10
|
+
open: Ouvre ou crée un fichier org.
|
11
|
+
build: Compile vos fichiers org en HTML.
|
12
|
+
publish: Pousse vos changements locaux vers votre serveur web public.
|
13
|
+
help: Alias pour l'argument -h.
|
14
|
+
options:
|
15
|
+
cmd_title: Options
|
16
|
+
directory: Place le nouveau fichier org dans un dossier à ce nom.
|
17
|
+
help: Affiche l'aide pour une commande et quitte.
|
18
|
+
version: Affiche la version de Fronde et quitte.
|
19
|
+
error:
|
20
|
+
no_command: 'ERREUR : Aucune commande ou commande inconnue donnée.'
|
21
|
+
no_file: 'ERREUR : Aucun fichier à ouvrir ou éditer.'
|
22
|
+
error:
|
23
|
+
label: Une erreur est survenue
|
24
|
+
explanation: Pour voir le détail, lancez de nouveau la commande avec plus de verbosité, par exemple fronde build -v
|
25
|
+
index:
|
26
|
+
unsorted: Non triés
|
27
|
+
published_on: Publié le %1
|
28
|
+
all_tags: Toutes les étiquettes
|
29
|
+
by_name: Par ordre alphabétique
|
30
|
+
by_weight: Par nombre de publication
|
31
|
+
full_date_format: '%A %{date}'
|
32
|
+
full_date_with_time_format: '%{date} à %{time}'
|
33
|
+
org:
|
34
|
+
postamble:
|
35
|
+
written_by: Écrit par %a
|
36
|
+
with_emacs: 'avec %c et publié avec %N'
|
37
|
+
last_modification: dernière modification le %C
|
metadata
ADDED
@@ -0,0 +1,267 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fronde
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Étienne Deparis
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-11-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: nokogiri
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: r18n-core
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rainbow
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '13.0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '13.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: byebug
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '11.1'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '11.1'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: org-ruby
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.9'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.9'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.13'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.13'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry-doc
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.1'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.1'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.9'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.9'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubocop
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0.93'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.93'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop-performance
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '1.8'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '1.8'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubocop-rspec
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '1.43'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '1.43'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: simplecov
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0.19'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0.19'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: yard
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0.9'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0.9'
|
209
|
+
description: |
|
210
|
+
Fronde helps you to convert Org mode files into websites, giving you
|
211
|
+
full control over the publication process.
|
212
|
+
email: etienne@depar.is
|
213
|
+
executables:
|
214
|
+
- fronde
|
215
|
+
extensions: []
|
216
|
+
extra_rdoc_files: []
|
217
|
+
files:
|
218
|
+
- LICENSE
|
219
|
+
- bin/fronde
|
220
|
+
- lib/fronde/cli.rb
|
221
|
+
- lib/fronde/cli/commands.rb
|
222
|
+
- lib/fronde/config.rb
|
223
|
+
- lib/fronde/config/lisp_config.rb
|
224
|
+
- lib/fronde/config/org-config.el
|
225
|
+
- lib/fronde/config/ox-fronde.el
|
226
|
+
- lib/fronde/emacs.rb
|
227
|
+
- lib/fronde/index.rb
|
228
|
+
- lib/fronde/index/atom_generator.rb
|
229
|
+
- lib/fronde/index/org_generator.rb
|
230
|
+
- lib/fronde/org_file.rb
|
231
|
+
- lib/fronde/org_file/class_methods.rb
|
232
|
+
- lib/fronde/org_file/extracter.rb
|
233
|
+
- lib/fronde/org_file/htmlizer.rb
|
234
|
+
- lib/fronde/preview.rb
|
235
|
+
- lib/fronde/templater.rb
|
236
|
+
- lib/fronde/utils.rb
|
237
|
+
- lib/fronde/version.rb
|
238
|
+
- lib/tasks/org.rake
|
239
|
+
- lib/tasks/site.rake
|
240
|
+
- lib/tasks/sync.rake
|
241
|
+
- lib/tasks/tags.rake
|
242
|
+
- locales/en.yml
|
243
|
+
- locales/fr.yml
|
244
|
+
homepage: https://git.umaneti.net/fronde/about/
|
245
|
+
licenses:
|
246
|
+
- WTFPL
|
247
|
+
metadata: {}
|
248
|
+
post_install_message:
|
249
|
+
rdoc_options: []
|
250
|
+
require_paths:
|
251
|
+
- lib
|
252
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
253
|
+
requirements:
|
254
|
+
- - ">="
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: '2.6'
|
257
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
|
+
requirements:
|
259
|
+
- - ">="
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
version: '0'
|
262
|
+
requirements: []
|
263
|
+
rubygems_version: 3.1.4
|
264
|
+
signing_key:
|
265
|
+
specification_version: 4
|
266
|
+
summary: An opinionated static website generator for Org
|
267
|
+
test_files: []
|