fronde 0.3.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/bin/fronde +15 -30
  3. data/lib/ext/nil_time.rb +25 -0
  4. data/lib/ext/r18n.rb +37 -0
  5. data/lib/ext/time.rb +39 -0
  6. data/lib/ext/time_no_time.rb +23 -0
  7. data/lib/fronde/cli/commands.rb +97 -104
  8. data/lib/fronde/cli/data/Rakefile +8 -0
  9. data/lib/fronde/cli/data/config.yml +13 -0
  10. data/lib/fronde/cli/data/gitignore +6 -0
  11. data/lib/fronde/cli/data/zsh_completion +37 -0
  12. data/lib/fronde/cli/helpers.rb +55 -0
  13. data/lib/fronde/cli/opt_parse.rb +140 -0
  14. data/lib/fronde/cli/throbber.rb +110 -0
  15. data/lib/fronde/cli.rb +42 -42
  16. data/lib/fronde/config/data/org-config.el +25 -0
  17. data/lib/fronde/config/data/ox-fronde.el +158 -0
  18. data/lib/fronde/config/data/themes/umaneti/css/htmlize.css +364 -0
  19. data/lib/fronde/config/data/themes/umaneti/css/style.css +250 -0
  20. data/lib/fronde/config/data/themes/umaneti/img/bottom.png +0 -0
  21. data/lib/fronde/config/data/themes/umaneti/img/content.png +0 -0
  22. data/lib/fronde/config/data/themes/umaneti/img/tic.png +0 -0
  23. data/lib/fronde/config/data/themes/umaneti/img/top.png +0 -0
  24. data/lib/fronde/config/helpers.rb +62 -0
  25. data/lib/fronde/config/lisp.rb +80 -0
  26. data/lib/fronde/config.rb +148 -98
  27. data/lib/fronde/emacs.rb +23 -20
  28. data/lib/fronde/index/atom_generator.rb +55 -66
  29. data/lib/fronde/index/data/all_tags.org +19 -0
  30. data/lib/fronde/index/data/template.org +26 -0
  31. data/lib/fronde/index/data/template.xml +37 -0
  32. data/lib/fronde/index/org_generator.rb +72 -88
  33. data/lib/fronde/index.rb +57 -86
  34. data/lib/fronde/org/file.rb +299 -0
  35. data/lib/fronde/org/file_extracter.rb +101 -0
  36. data/lib/fronde/org.rb +105 -0
  37. data/lib/fronde/preview.rb +43 -39
  38. data/lib/fronde/slug.rb +54 -0
  39. data/lib/fronde/source/gemini.rb +34 -0
  40. data/lib/fronde/source/html.rb +67 -0
  41. data/lib/fronde/source.rb +209 -0
  42. data/lib/fronde/sync/neocities.rb +220 -0
  43. data/lib/fronde/sync/rsync.rb +46 -0
  44. data/lib/fronde/sync.rb +32 -0
  45. data/lib/fronde/templater.rb +101 -71
  46. data/lib/fronde/version.rb +1 -1
  47. data/lib/tasks/cli.rake +33 -0
  48. data/lib/tasks/org.rake +58 -43
  49. data/lib/tasks/site.rake +66 -31
  50. data/lib/tasks/sync.rake +37 -40
  51. data/lib/tasks/tags.rake +11 -7
  52. data/locales/en.yml +61 -14
  53. data/locales/fr.yml +69 -14
  54. metadata +77 -95
  55. data/lib/fronde/config/lisp_config.rb +0 -340
  56. data/lib/fronde/config/org-config.el +0 -19
  57. data/lib/fronde/config/ox-fronde.el +0 -121
  58. data/lib/fronde/org_file/class_methods.rb +0 -72
  59. data/lib/fronde/org_file/extracter.rb +0 -72
  60. data/lib/fronde/org_file/htmlizer.rb +0 -43
  61. data/lib/fronde/org_file.rb +0 -298
  62. data/lib/fronde/utils.rb +0 -229
data/locales/en.yml CHANGED
@@ -2,27 +2,56 @@
2
2
  fronde:
3
3
  bin:
4
4
  usage: 'Usage: fronde %1 [options]'
5
+ done: done
6
+ interrupted: interrupted
5
7
  commands:
6
8
  cmd_title: Commands
7
- alias: Alias for %1.
8
- init: Initialize your Fronde instance (you just need to do it once).
9
- update: Update Fronde dependency (to be run once in a while).
10
- preview: 'Start a test web server to preview your website on http://127.0.0.1:5000'
9
+ alias: Alias for ‘%1’.
10
+ new: Initialize a new Fronde instance.
11
+ update: >-
12
+ Update Fronde configuration and dependency (to be run after each
13
+ modification of the config.yml file and once in a while to stay
14
+ up-to-date with Org).
15
+ preview: Start a test web server to preview the generated website.
11
16
  open: Open or create an org file.
12
- build: Compile your org files to HTML.
13
- publish: Push local changes to your public web server.
17
+ build: Compile all org files to HTML or gemtext.
18
+ publish: Push local changes to the public web server.
14
19
  help: Alias for the -h switch.
15
20
  options:
16
21
  cmd_title: Options
17
- directory: Wrap the new org file in this named folder.
18
22
  help: Display help for a command and exit.
19
23
  version: Display Fronde version and exit.
20
- error:
21
- no_command: 'ERROR: no command or unknown command given.'
22
- no_file: 'ERROR: no file to open or edit.'
24
+ default_title: New article
23
25
  error:
24
- label: An error occurred.
25
- explanation: To see the error, run your command again with more verbosity, for example, fronde build -v
26
+ bin:
27
+ label: An error occurred.
28
+ explanation: >-
29
+ To see the error, run the same command again with more
30
+ verbosity, for example, fronde build -v
31
+ no_command: 'ERROR: no command or unknown command given.'
32
+ no_file: >-
33
+ Warning: No file path given. Default file will be used.
34
+ config:
35
+ deprecated_public_folder: >-
36
+ ‘public_folder’ setting is deprecated. Please use either
37
+ ‘html_public_folder’ or ‘gemini_public_folder’.
38
+ source:
39
+ no_path: Skipping %{source} as its ‘path’ key is missing.
40
+ duplicate: >-
41
+ Skipping %{source} as it appears at least twice in the sources
42
+ of type %{type}.
43
+ inclusion: >-
44
+ Skipping %{source} as it might be already embedded into the
45
+ other source %{other_source} of type %{type}.
46
+ org_file:
47
+ no_file_or_title: No file or title given.
48
+ no_project: No project found for %{file}. Publication will fail.
49
+ index:
50
+ wrong_sort_kind: '%{kind} not in %{accepted_values}'
51
+ templater:
52
+ no_element_found: >-
53
+ No element found with the selector %{source} in %{file}.
54
+ no_head_element: No head tag found in file %{file}.
26
55
  index:
27
56
  unsorted: Unsorted
28
57
  published_on: Published on %1
@@ -31,9 +60,27 @@ fronde:
31
60
  by_weight: By publication number
32
61
  full_date_format: '%A %{date}'
33
62
  full_date_with_time_format: '%{date} at %{time}'
63
+ index_generated: Generated index file for %{tag}.
64
+ atom_generated: Generated Atom feed for %{tag}.
34
65
  org:
66
+ generate_blog_index: Generating blog home page for %{name}
35
67
  postamble:
36
68
  written_by: Written by %a
37
69
  last_modification: Last modification on %C
38
- with_emacs: 'with %c, and published with %n'
39
- with_emacs_html: 'with %c, and published with %N'
70
+ with_emacs: with %c, and published with %n
71
+ with_emacs_html: with %c, and published with %N
72
+ tasks:
73
+ site:
74
+ aborting: Aborting
75
+ generating_indexes: 'Generating index files:'
76
+ building_indexes: 'Building index files:'
77
+ publishing_feeds: 'Publishing Atom feeds:'
78
+ building: 'Building:'
79
+ customizing: 'Customizing:'
80
+ remove_orphan_file: 'Remove it? [y/N]: '
81
+ org:
82
+ downloaded: Org version %{version} has been downloaded.
83
+ downloading: 'Downloading Org:'
84
+ no_download: Impossible to download Org now. Please try again later.
85
+ installed: Org version %{version} has been locally installed.
86
+ installing: 'Installing Org:'
data/locales/fr.yml CHANGED
@@ -2,27 +2,62 @@
2
2
  fronde:
3
3
  bin:
4
4
  usage: 'Usage : fronde %1 [options]'
5
+ done: fait
6
+ interrupted: arrêté
5
7
  commands:
6
8
  cmd_title: Commandes
7
- alias: Alias pour %1.
8
- init: Initialise votre instance de Fronde (vous ne devriez faire cela qu'une fois).
9
- update: Met à jour les dépendances de Fronde (à lancer une fois de temps à autre).
10
- preview: "Démarre un serveur web de test pour prévisualiser votre site à l'adresse http://127.0.0.1:5000"
9
+ alias: Alias pour ‘%1’.
10
+ new: Initialise une nouvelle instance de Fronde.
11
+ update: >-
12
+ Met à jour la configuration et les dépendances de Fronde (à
13
+ lancer après chaque modification du fichier config.yml et une
14
+ fois de temps à autre pour rester à jour avec Org).
15
+ preview: >-
16
+ Démarre un serveur web de test pour prévisualiser le site
17
+ généré.
11
18
  open: Ouvre ou crée un fichier org.
12
- build: Compile vos fichiers org en HTML.
13
- publish: Pousse vos changements locaux vers votre serveur web public.
19
+ build: Compile les fichiers org en HTML ou gemtext.
20
+ publish: >-
21
+ Pousse les changements locaux vers le serveur web public.
14
22
  help: Alias pour l'argument -h.
15
23
  options:
16
24
  cmd_title: Options
17
- directory: Place le nouveau fichier org dans un dossier à ce nom.
18
25
  help: Affiche l'aide pour une commande et quitte.
19
26
  version: Affiche la version de Fronde et quitte.
20
- error:
21
- no_command: 'ERREUR : Aucune commande ou commande inconnue donnée.'
22
- no_file: 'ERREUR : Aucun fichier à ouvrir ou éditer.'
27
+ default_title: Nouvel article
23
28
  error:
24
- label: Une erreur est survenue
25
- explanation: Pour voir le détail, lancez de nouveau la commande avec plus de verbosité, par exemple fronde build -v
29
+ bin:
30
+ label: Une erreur est survenue
31
+ explanation: >-
32
+ Pour voir le détail, lancez de nouveau la commande avec plus de
33
+ verbosité, par exemple fronde build -v
34
+ no_command: 'ERREUR : Aucune commande ou commande inconnue donnée.'
35
+ no_file: >-
36
+ Attention : Aucun chemin de fichier donné. Utilisation du
37
+ fichier par défaut.
38
+ config:
39
+ deprecated_public_folder: >-
40
+ La clé de configuration ‘public_folder’ est dépréciée. Merci
41
+ d’utiliser ‘html_public_folder’ ou ‘gemini_public_folder’ à la
42
+ place.
43
+ source:
44
+ no_path: >-
45
+ Ignore %{source} comme sa clé ‘path’ est manquante.
46
+ duplicate: >-
47
+ Ignore %{source} comme elle apparaît au moins deux fois dans les
48
+ sources de type %{type}.
49
+ inclusion: >-
50
+ Ignore %{source} qui semble être déjà inclue dans l’autre source
51
+ %{other_source} de type %{type}.
52
+ org_file:
53
+ no_file_or_title: Aucun chemin de fichier ou titre donné.
54
+ no_project: Aucun projet trouvé pour %{file}. Sa publication va échouer.
55
+ index:
56
+ wrong_sort_kind: '%{kind} n’est pas dans %{accepted_values}'
57
+ templater:
58
+ no_element_found: >-
59
+ Aucun élément trouvé avec le sélecteur %{source} dans %{file}.
60
+ no_head_element: Aucun élément head trouvé dans le fichier %{file}.
26
61
  index:
27
62
  unsorted: Non triés
28
63
  published_on: Publié le %1
@@ -31,9 +66,29 @@ fronde:
31
66
  by_weight: Par nombre de publication
32
67
  full_date_format: '%A %{date}'
33
68
  full_date_with_time_format: '%{date} à %{time}'
69
+ index_generated: Fichier d’index généré pour %{tag}.
70
+ atom_generated: Flux Atom généré pour %{tag}.
34
71
  org:
72
+ generate_blog_index: Génération de la page d’accueil du blog pour %{name}
35
73
  postamble:
36
74
  written_by: Écrit par %a
37
75
  last_modification: dernière modification le %C
38
- with_emacs: 'avec %c et publié avec %n'
39
- with_emacs_html: 'avec %c et publié avec %N'
76
+ with_emacs: avec %c et publié avec %n
77
+ with_emacs_html: avec %c et publié avec %N
78
+ tasks:
79
+ site:
80
+ aborting: Annulation
81
+ generating_indexes: 'Génération des fichiers d’index :'
82
+ building_indexes: 'Compilation des fichiers d’index :'
83
+ publishing_feeds: 'Publication des flux Atom :'
84
+ building: 'Compilation :'
85
+ customizing: 'Décoration :'
86
+ remove_orphan_file: 'Le supprimer ? [y/N]: '
87
+ org:
88
+ downloaded: La version %{version} de Org a été téléchargée.
89
+ downloading: 'Téléchargement de Org :'
90
+ no_download: >-
91
+ Impossible de télécharger Org maintenant. Merci de réessayer
92
+ plus tard.
93
+ installed: La version %{version} de Org a été installé localement.
94
+ installing: 'Installation de Org :'
metadata CHANGED
@@ -1,45 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fronde
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Étienne Deparis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-29 00:00:00.000000000 Z
11
+ date: 2024-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: nokogiri
14
+ name: base64
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.15'
19
+ version: '0.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.15'
26
+ version: '0.2'
27
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: '5.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '5.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rainbow
28
+ name: bigdecimal
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - "~>"
@@ -53,131 +39,89 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: '3.1'
55
41
  - !ruby/object:Gem::Dependency
56
- name: rake
42
+ name: liquid
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '13.0'
47
+ version: '5.5'
62
48
  type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '13.0'
54
+ version: '5.5'
69
55
  - !ruby/object:Gem::Dependency
70
- name: webrick
56
+ name: nokogiri
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '1.8'
61
+ version: '1.16'
76
62
  type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '1.8'
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'
68
+ version: '1.16'
97
69
  - !ruby/object:Gem::Dependency
98
- name: rspec
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '3.12'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '3.12'
111
- - !ruby/object:Gem::Dependency
112
- name: rubocop
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '1.56'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '1.56'
125
- - !ruby/object:Gem::Dependency
126
- name: rubocop-performance
70
+ name: r18n-core
127
71
  requirement: !ruby/object:Gem::Requirement
128
72
  requirements:
129
73
  - - "~>"
130
74
  - !ruby/object:Gem::Version
131
- version: '1.19'
132
- type: :development
75
+ version: '5.0'
76
+ type: :runtime
133
77
  prerelease: false
134
78
  version_requirements: !ruby/object:Gem::Requirement
135
79
  requirements:
136
80
  - - "~>"
137
81
  - !ruby/object:Gem::Version
138
- version: '1.19'
82
+ version: '5.0'
139
83
  - !ruby/object:Gem::Dependency
140
- name: rubocop-rspec
84
+ name: rainbow
141
85
  requirement: !ruby/object:Gem::Requirement
142
86
  requirements:
143
87
  - - "~>"
144
88
  - !ruby/object:Gem::Version
145
- version: '2.23'
146
- type: :development
89
+ version: '3.1'
90
+ type: :runtime
147
91
  prerelease: false
148
92
  version_requirements: !ruby/object:Gem::Requirement
149
93
  requirements:
150
94
  - - "~>"
151
95
  - !ruby/object:Gem::Version
152
- version: '2.23'
96
+ version: '3.1'
153
97
  - !ruby/object:Gem::Dependency
154
- name: simplecov
98
+ name: rake
155
99
  requirement: !ruby/object:Gem::Requirement
156
100
  requirements:
157
101
  - - "~>"
158
102
  - !ruby/object:Gem::Version
159
- version: '0.22'
160
- type: :development
103
+ version: '13.2'
104
+ type: :runtime
161
105
  prerelease: false
162
106
  version_requirements: !ruby/object:Gem::Requirement
163
107
  requirements:
164
108
  - - "~>"
165
109
  - !ruby/object:Gem::Version
166
- version: '0.22'
110
+ version: '13.2'
167
111
  - !ruby/object:Gem::Dependency
168
- name: yard
112
+ name: webrick
169
113
  requirement: !ruby/object:Gem::Requirement
170
114
  requirements:
171
115
  - - "~>"
172
116
  - !ruby/object:Gem::Version
173
- version: '0.9'
174
- type: :development
117
+ version: '1.8'
118
+ type: :runtime
175
119
  prerelease: false
176
120
  version_requirements: !ruby/object:Gem::Requirement
177
121
  requirements:
178
122
  - - "~>"
179
123
  - !ruby/object:Gem::Version
180
- version: '0.9'
124
+ version: '1.8'
181
125
  description: |
182
126
  Fronde helps you to convert Org mode files into websites, giving you
183
127
  full control over the publication process.
@@ -189,24 +133,51 @@ extra_rdoc_files: []
189
133
  files:
190
134
  - LICENSE
191
135
  - bin/fronde
136
+ - lib/ext/nil_time.rb
137
+ - lib/ext/r18n.rb
138
+ - lib/ext/time.rb
139
+ - lib/ext/time_no_time.rb
192
140
  - lib/fronde/cli.rb
193
141
  - lib/fronde/cli/commands.rb
142
+ - lib/fronde/cli/data/Rakefile
143
+ - lib/fronde/cli/data/config.yml
144
+ - lib/fronde/cli/data/gitignore
145
+ - lib/fronde/cli/data/zsh_completion
146
+ - lib/fronde/cli/helpers.rb
147
+ - lib/fronde/cli/opt_parse.rb
148
+ - lib/fronde/cli/throbber.rb
194
149
  - lib/fronde/config.rb
195
- - lib/fronde/config/lisp_config.rb
196
- - lib/fronde/config/org-config.el
197
- - lib/fronde/config/ox-fronde.el
150
+ - lib/fronde/config/data/org-config.el
151
+ - lib/fronde/config/data/ox-fronde.el
152
+ - lib/fronde/config/data/themes/umaneti/css/htmlize.css
153
+ - lib/fronde/config/data/themes/umaneti/css/style.css
154
+ - lib/fronde/config/data/themes/umaneti/img/bottom.png
155
+ - lib/fronde/config/data/themes/umaneti/img/content.png
156
+ - lib/fronde/config/data/themes/umaneti/img/tic.png
157
+ - lib/fronde/config/data/themes/umaneti/img/top.png
158
+ - lib/fronde/config/helpers.rb
159
+ - lib/fronde/config/lisp.rb
198
160
  - lib/fronde/emacs.rb
199
161
  - lib/fronde/index.rb
200
162
  - lib/fronde/index/atom_generator.rb
163
+ - lib/fronde/index/data/all_tags.org
164
+ - lib/fronde/index/data/template.org
165
+ - lib/fronde/index/data/template.xml
201
166
  - lib/fronde/index/org_generator.rb
202
- - lib/fronde/org_file.rb
203
- - lib/fronde/org_file/class_methods.rb
204
- - lib/fronde/org_file/extracter.rb
205
- - lib/fronde/org_file/htmlizer.rb
167
+ - lib/fronde/org.rb
168
+ - lib/fronde/org/file.rb
169
+ - lib/fronde/org/file_extracter.rb
206
170
  - lib/fronde/preview.rb
171
+ - lib/fronde/slug.rb
172
+ - lib/fronde/source.rb
173
+ - lib/fronde/source/gemini.rb
174
+ - lib/fronde/source/html.rb
175
+ - lib/fronde/sync.rb
176
+ - lib/fronde/sync/neocities.rb
177
+ - lib/fronde/sync/rsync.rb
207
178
  - lib/fronde/templater.rb
208
- - lib/fronde/utils.rb
209
179
  - lib/fronde/version.rb
180
+ - lib/tasks/cli.rake
210
181
  - lib/tasks/org.rake
211
182
  - lib/tasks/site.rake
212
183
  - lib/tasks/sync.rake
@@ -221,7 +192,16 @@ metadata:
221
192
  source_code_uri: https://git.umaneti.net/fronde
222
193
  homepage_uri: https://etienne.depar.is/fronde/
223
194
  funding_uri: https://liberapay.com/milouse
224
- post_install_message:
195
+ post_install_message: |+
196
+ Start your first fronde project with:
197
+
198
+ fronde new myproject
199
+
200
+ Update your existing projects with:
201
+
202
+ fronde update
203
+ fronde build -f
204
+
225
205
  rdoc_options: []
226
206
  require_paths:
227
207
  - lib
@@ -235,9 +215,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
235
215
  - - ">="
236
216
  - !ruby/object:Gem::Version
237
217
  version: '0'
238
- requirements: []
239
- rubygems_version: 3.4.13
218
+ requirements:
219
+ - emacs
220
+ rubygems_version: 3.5.15
240
221
  signing_key:
241
222
  specification_version: 4
242
223
  summary: An opinionated static website generator for Org
243
224
  test_files: []
225
+ ...