neruda 0.2.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/pablo +8 -4
- data/lib/neruda/config/lisp_config.rb +28 -20
- data/lib/neruda/config/org-config.el +1 -2
- data/lib/neruda/index/org_generator.rb +1 -2
- data/lib/neruda/org_file/class_methods.rb +5 -5
- data/lib/neruda/org_file/htmlizer.rb +1 -2
- data/lib/neruda/preview.rb +2 -2
- data/lib/neruda/utils.rb +12 -9
- data/lib/neruda/version.rb +1 -1
- data/lib/tasks/org.rake +27 -20
- data/lib/tasks/site.rake +3 -2
- metadata +32 -9
- data/themes/default/css/htmlize.css +0 -346
- data/themes/default/css/style.css +0 -153
- data/themes/default/img/bottom.png +0 -0
- data/themes/default/img/tic.png +0 -0
- data/themes/default/img/top.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65d74457beb2f9469147295e9edd1f0f2ba9bc307b0adf5c7945cad322be5dd1
|
4
|
+
data.tar.gz: 7327285f32dc4cf51cf60d08afcb4e1e170654a0d173dd2c802d45be7b979f94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a4317715347eff92a1ba934234d05612901a2b90c74827a5c8feed173be1d5ca390f0a19cc56bf8c7c854753fd7a03b1a08b7347c4447e714d632f847652d95
|
7
|
+
data.tar.gz: c898c9c6128405a60b4f0f9c6402fa23a1a3b221175b6296065b93d1dd6c20f8b45c3fa51c238c549cfc454615d7161fe10eb73ff692a1b35a55f8c17f7c94f4
|
data/bin/pablo
CHANGED
@@ -27,11 +27,15 @@ module PabloCommands
|
|
27
27
|
|
28
28
|
def pablo_build(file = ARGV[0])
|
29
29
|
@rake.options.build_all = true
|
30
|
-
if
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
# Update org-config.el, if necessary
|
31
|
+
@rake.invoke_task('org-config.el')
|
32
|
+
suffix = ''
|
33
|
+
if !file.nil?
|
34
|
+
suffix = ":one[#{file}]"
|
35
|
+
elsif @options[:force]
|
36
|
+
suffix = '[true]'
|
34
37
|
end
|
38
|
+
@rake.invoke_task("site:build#{suffix}")
|
35
39
|
end
|
36
40
|
|
37
41
|
def pablo_preview
|
@@ -93,9 +93,15 @@ module Neruda
|
|
93
93
|
names = projects.keys.map do |p|
|
94
94
|
["\"#{p}\"", "\"#{p}-assets\""]
|
95
95
|
end.flatten
|
96
|
-
|
96
|
+
unless settings['theme'] == 'default'
|
97
|
+
names << "\"theme-#{settings['theme']}\""
|
98
|
+
end
|
97
99
|
sources.each do |s|
|
100
|
+
# Default theme defined in settings is already included
|
98
101
|
next unless s['theme'] && s['theme'] != settings['theme']
|
102
|
+
# Never include theme named 'default' as it does not rely on any
|
103
|
+
# file to export.
|
104
|
+
next if s['theme'] == 'default'
|
99
105
|
theme = "\"theme-#{s['theme']}\""
|
100
106
|
next if names.include? theme
|
101
107
|
names << theme
|
@@ -131,7 +137,7 @@ module Neruda
|
|
131
137
|
other_lines << format(':exclude "%<value>s"',
|
132
138
|
value: opts['exclude'])
|
133
139
|
end
|
134
|
-
themeconf = org_theme_config(opts['theme'])
|
140
|
+
themeconf = org_theme_config(opts['theme'])
|
135
141
|
<<~ORGPROJECT
|
136
142
|
("#{project_name}"
|
137
143
|
:base-directory "#{opts['path']}"
|
@@ -171,10 +177,17 @@ module Neruda
|
|
171
177
|
HTMLHEAD
|
172
178
|
end
|
173
179
|
|
174
|
-
def org_default_html_options
|
180
|
+
def org_default_html_options(project)
|
181
|
+
curtheme = project['theme'] || settings['theme']
|
182
|
+
if curtheme.nil? || curtheme == 'default'
|
183
|
+
return { 'html-head' => '__ATOM_FEED__',
|
184
|
+
'html-postamble' => org_default_postamble,
|
185
|
+
'html-head-include-default-style' => 't',
|
186
|
+
'html-head-include-scripts' => 't' }
|
187
|
+
end
|
175
188
|
{ 'html-head' => org_default_html_head,
|
176
189
|
'html-postamble' => org_default_postamble,
|
177
|
-
'html-head-include-default-style' => '
|
190
|
+
'html-head-include-default-style' => 'nil',
|
178
191
|
'html-head-include-scripts' => 'nil' }
|
179
192
|
end
|
180
193
|
|
@@ -192,14 +205,15 @@ module Neruda
|
|
192
205
|
end
|
193
206
|
|
194
207
|
def build_project_org_headers(project)
|
195
|
-
orgtplopts = org_default_html_options.merge(
|
208
|
+
orgtplopts = org_default_html_options(project).merge(
|
196
209
|
settings['org-html'] || {}, project['org-html'] || {}
|
197
210
|
)
|
198
211
|
orgtpl = []
|
212
|
+
truthy_val = ['t', 'nil', '1'].freeze
|
199
213
|
orgtplopts.each do |k, v|
|
200
214
|
v = expand_vars_in_html_head(v, project) if k == 'html-head'
|
201
215
|
val = v.strip.gsub(/"/, '\"')
|
202
|
-
if
|
216
|
+
if truthy_val.include? val
|
203
217
|
orgtpl << ":#{k} #{val}"
|
204
218
|
else
|
205
219
|
orgtpl << ":#{k} \"#{val}\""
|
@@ -224,26 +238,20 @@ module Neruda
|
|
224
238
|
end
|
225
239
|
|
226
240
|
def org_default_theme_config
|
227
|
-
org_theme_config(settings['theme'])
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
end.join("\n")
|
241
|
+
theme_config = org_theme_config(settings['theme'])
|
242
|
+
return theme_config if theme_config == ''
|
243
|
+
output = theme_config.split("\n").map do |line|
|
244
|
+
" #{line}"
|
245
|
+
end
|
246
|
+
format("\n%<conf>s", conf: output.join("\n"))
|
234
247
|
end
|
235
248
|
|
236
249
|
def org_theme_config(theme)
|
237
|
-
return
|
250
|
+
return '' if theme.nil? || theme == 'default'
|
238
251
|
workdir = Dir.pwd
|
239
|
-
if theme == 'default'
|
240
|
-
sourcedir = File.expand_path('../../../', __dir__)
|
241
|
-
else
|
242
|
-
sourcedir = workdir
|
243
|
-
end
|
244
252
|
<<~THEMECONFIG
|
245
253
|
("theme-#{theme}"
|
246
|
-
:base-directory "#{
|
254
|
+
:base-directory "#{workdir}/themes/#{theme}"
|
247
255
|
:base-extension "jpg\\\\\\|gif\\\\\\|png\\\\\\|js\\\\\\|css\\\\\\|otf\\\\\\|ttf\\\\\\|woff2?"
|
248
256
|
:recursive t
|
249
257
|
:publishing-directory "#{workdir}/#{settings['public_folder']}/assets/#{theme}"
|
@@ -10,8 +10,7 @@
|
|
10
10
|
user-full-name "__AUTHOR_NAME__"
|
11
11
|
org-html-metadata-timestamp-format "__LONG_DATE_FMT__"
|
12
12
|
org-publish-project-alist
|
13
|
-
`(
|
14
|
-
__THEME_CONFIG__
|
13
|
+
`(__ALL_PROJECTS____THEME_CONFIG__
|
15
14
|
("website" :components (__ALL_PROJECTS_NAMES__))))
|
16
15
|
|
17
16
|
;; Load neruda lib
|
@@ -69,12 +69,11 @@ module Neruda
|
|
69
69
|
elsif title.nil? || title == 'index'
|
70
70
|
title = Neruda::Config.settings['title']
|
71
71
|
end
|
72
|
-
|
72
|
+
<<~HEADER.strip
|
73
73
|
#+title: #{title}
|
74
74
|
#+author: #{Neruda::Config.settings['author']}
|
75
75
|
#+language: #{Neruda::Config.settings['lang']}
|
76
76
|
HEADER
|
77
|
-
head.strip
|
78
77
|
end
|
79
78
|
|
80
79
|
def org_articles(articles_list)
|
@@ -5,7 +5,7 @@ module Neruda
|
|
5
5
|
module OrgFileClassMethods
|
6
6
|
def source_for_target(file_name)
|
7
7
|
# file_name may be frozen...
|
8
|
-
src = file_name.sub(/\.html
|
8
|
+
src = file_name.sub(/\.html\z/, '.org')
|
9
9
|
pubfolder = Neruda::Config.settings['public_folder']
|
10
10
|
src.sub!(/^#{pubfolder}\//, '')
|
11
11
|
# Look for match in each possible sources. The first found wins.
|
@@ -25,7 +25,7 @@ module Neruda
|
|
25
25
|
def target_for_source(file_name, project, with_public_folder: true)
|
26
26
|
return nil if file_name.nil?
|
27
27
|
# file_name may be frozen...
|
28
|
-
target = file_name.sub(/\.org
|
28
|
+
target = file_name.sub(/\.org\z/, '.html').sub(/^#{Dir.pwd}\//, '')
|
29
29
|
if project.nil?
|
30
30
|
subfolder = File.basename(File.dirname(target))
|
31
31
|
target = File.basename(target)
|
@@ -44,15 +44,15 @@ module Neruda
|
|
44
44
|
# Look for match in each possible sources. The first found wins.
|
45
45
|
Neruda::Config.sources.each do |project|
|
46
46
|
project_relative_path = project['path'].sub(/^#{Dir.pwd}\//, '')
|
47
|
-
return project if file_name
|
47
|
+
return project if file_name.match?(/^#{project_relative_path}\//)
|
48
48
|
end
|
49
49
|
nil
|
50
50
|
end
|
51
51
|
|
52
52
|
def slug(title)
|
53
|
-
title.downcase.
|
53
|
+
title.downcase.tr(' ', '-')
|
54
54
|
.encode('ascii', fallback: ->(k) { translit(k) })
|
55
|
-
.gsub(/[^\w-]/, '').
|
55
|
+
.gsub(/[^\w-]/, '').delete_suffix('-')
|
56
56
|
end
|
57
57
|
|
58
58
|
private
|
@@ -7,8 +7,7 @@ module Neruda
|
|
7
7
|
# This module holds HTML formatter methods for the {Neruda::OrgFile}
|
8
8
|
# class.
|
9
9
|
module OrgFileHtmlizer
|
10
|
-
# Publish the current file
|
11
|
-
# {Neruda::OrgFile#file @file} is ~nil~.
|
10
|
+
# Publish the current file
|
12
11
|
#
|
13
12
|
# @return [Boolean, nil] the underlying ~system~ method return value
|
14
13
|
def publish
|
data/lib/neruda/preview.rb
CHANGED
@@ -20,7 +20,7 @@ module Neruda # rubocop:disable Style/Documentation
|
|
20
20
|
|
21
21
|
def local_path(requested_path)
|
22
22
|
routes = Neruda::Config.settings.dig('preview', 'routes') || {}
|
23
|
-
return routes[requested_path] if routes.
|
23
|
+
return routes[requested_path] if routes.has_key? requested_path
|
24
24
|
local_path = Neruda::Config.settings['public_folder'] + requested_path
|
25
25
|
if File.directory? local_path
|
26
26
|
local_path = format(
|
@@ -33,7 +33,7 @@ module Neruda # rubocop:disable Style/Documentation
|
|
33
33
|
|
34
34
|
def parse_body(local_path, local_host)
|
35
35
|
body = IO.read local_path
|
36
|
-
return body unless local_path.match?(/\.(?:ht|x)ml
|
36
|
+
return body unless local_path.match?(/\.(?:ht|x)ml\z/)
|
37
37
|
domain = Neruda::Config.settings['domain']
|
38
38
|
return body if domain == ''
|
39
39
|
body.gsub(/"file:\/\//, format('"%<host>s', host: local_host))
|
data/lib/neruda/utils.rb
CHANGED
@@ -26,24 +26,25 @@ module Neruda
|
|
26
26
|
# configuration
|
27
27
|
PABLO_OPTIONS = {
|
28
28
|
'-a' => { long: 'author' },
|
29
|
+
'-d' => { long: 'directory', boolean: true },
|
30
|
+
'-f' => { long: 'force', boolean: true },
|
31
|
+
'-h' => { long: 'help', boolean: true, meth: :on_tail },
|
29
32
|
'-l' => { long: 'lang', keyword: 'LOCALE' },
|
30
|
-
'-t' => { long: 'title' },
|
31
33
|
'-p' => { long: 'path' },
|
32
|
-
'-
|
34
|
+
'-t' => { long: 'title' },
|
33
35
|
'-v' => { long: 'verbose', boolean: true, meth: :on_tail },
|
34
|
-
'-h' => { long: 'help', boolean: true, meth: :on_tail },
|
35
36
|
'-V' => { long: 'version', boolean: true, meth: :on_tail }
|
36
37
|
}.freeze
|
37
38
|
|
38
39
|
# @return [Hash] the possible ~pablo~ subcommands and their
|
39
40
|
# configuration
|
40
41
|
PABLO_COMMANDS = {
|
41
|
-
'init' => { opts: ['-a', '-
|
42
|
+
'init' => { opts: ['-a', '-h', '-l', '-t', '-v'] },
|
42
43
|
'config' => { alias: 'init' },
|
43
44
|
'preview' => { opts: ['-h'] },
|
44
|
-
'open' => { opts: ['-a', '-
|
45
|
+
'open' => { opts: ['-a', '-d', '-h', '-l', '-p', '-t', '-v'] },
|
45
46
|
'edit' => { alias: 'open' },
|
46
|
-
'build' => { opts: ['-h'] },
|
47
|
+
'build' => { opts: ['-f', '-h'] },
|
47
48
|
'publish' => { opts: ['-h'] },
|
48
49
|
'help' => { opts: ['-h'] },
|
49
50
|
'basic' => { opts: ['-h', '-V'], label: '<command>' }
|
@@ -150,10 +151,10 @@ module Neruda
|
|
150
151
|
# @return [String] either apple, windows or linux (default)
|
151
152
|
# :nocov:
|
152
153
|
def current_os
|
153
|
-
if ENV['OS'] == 'Windows_NT' || RUBY_PLATFORM
|
154
|
+
if ENV['OS'] == 'Windows_NT' || RUBY_PLATFORM.include?('cygwin')
|
154
155
|
return 'windows'
|
155
156
|
end
|
156
|
-
return 'apple' if RUBY_PLATFORM
|
157
|
+
return 'apple' if RUBY_PLATFORM.include?('darwin')
|
157
158
|
'linux'
|
158
159
|
end
|
159
160
|
# :nocov:
|
@@ -166,7 +167,9 @@ module Neruda
|
|
166
167
|
return if Neruda::Config.org_last_version.nil?
|
167
168
|
# :nocov:
|
168
169
|
tarball = "org-#{Neruda::Config.org_last_version}.tar.gz"
|
169
|
-
|
170
|
+
# Remove version number in dest file to allow easy rake file
|
171
|
+
# task naming
|
172
|
+
dest_file = 'tmp/org.tar.gz'
|
170
173
|
return if File.exist?(dest_file)
|
171
174
|
uri = URI("https://orgmode.org/#{tarball}")
|
172
175
|
# Will crash on purpose if anything goes wrong
|
data/lib/neruda/version.rb
CHANGED
data/lib/tasks/org.rake
CHANGED
@@ -5,9 +5,16 @@ require 'open-uri'
|
|
5
5
|
# Neruda::Config is required by Neruda::Utils
|
6
6
|
require 'neruda/utils'
|
7
7
|
|
8
|
+
require 'rake/clean'
|
9
|
+
|
10
|
+
CLOBBER.push(
|
11
|
+
'tmp/org.tar.gz', 'tmp/__last_org_version__',
|
12
|
+
'org-config.el', '.dir-locals.el', 'htmlize.el'
|
13
|
+
)
|
14
|
+
|
8
15
|
namespace :org do
|
9
16
|
desc 'Download last version of Org'
|
10
|
-
|
17
|
+
file 'tmp/org.tar.gz' do
|
11
18
|
verbose = Rake::FileUtilsExt.verbose_flag
|
12
19
|
download = Thread.new do
|
13
20
|
Thread.current[:org_version] = Neruda::Config.org_last_version
|
@@ -22,7 +29,7 @@ namespace :org do
|
|
22
29
|
end
|
23
30
|
|
24
31
|
desc 'Compile Org'
|
25
|
-
task compile:
|
32
|
+
task compile: 'tmp/org.tar.gz' do |task|
|
26
33
|
verbose = Rake::FileUtilsExt.verbose_flag
|
27
34
|
org_version = "org-#{Neruda::Config.org_last_version}"
|
28
35
|
next if Dir.exist?("#{org_version}/lisp")
|
@@ -32,9 +39,7 @@ namespace :org do
|
|
32
39
|
make << 'EMACSQ="emacs -Q --eval \'(setq inhibit-message t)\'"'
|
33
40
|
end
|
34
41
|
build = Thread.new do
|
35
|
-
|
36
|
-
sh "tar xzf #{tarball}"
|
37
|
-
File.unlink tarball
|
42
|
+
sh "tar xzf #{task.prerequisites[0]}"
|
38
43
|
sh((make + ['compile']).join(' '))
|
39
44
|
sh((make + ['autoloads']).join(' '))
|
40
45
|
Dir.glob('org-[0-9.]*').each do |ov|
|
@@ -51,19 +56,10 @@ namespace :org do
|
|
51
56
|
end
|
52
57
|
|
53
58
|
file 'htmlize.el' do
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
).open.read
|
59
|
-
IO.write 'htmlize.el', htmlize
|
60
|
-
end
|
61
|
-
if verbose
|
62
|
-
build.join
|
63
|
-
warn 'htmlize.el has been locally installed'
|
64
|
-
else
|
65
|
-
Neruda::Utils.throbber(build, 'Installing htmlize.el:')
|
66
|
-
end
|
59
|
+
htmlize = URI(
|
60
|
+
'https://raw.githubusercontent.com/hniksic/emacs-htmlize/master/htmlize.el'
|
61
|
+
).open.read
|
62
|
+
IO.write 'htmlize.el', htmlize
|
67
63
|
end
|
68
64
|
|
69
65
|
file 'org-config.el' => 'htmlize.el' do
|
@@ -74,11 +70,22 @@ namespace :org do
|
|
74
70
|
Neruda::Config.write_dir_locals
|
75
71
|
end
|
76
72
|
|
77
|
-
desc 'Install
|
78
|
-
|
73
|
+
desc 'Install Org'
|
74
|
+
multitask install: ['org:compile', 'org-config.el', '.dir-locals.el'] do
|
79
75
|
mkdir_p "#{Neruda::Config.settings['public_folder']}/assets"
|
80
76
|
Neruda::Config.sources.each do |s|
|
81
77
|
mkdir_p s['path'] unless Dir.exist? s['path']
|
82
78
|
end
|
83
79
|
end
|
80
|
+
|
81
|
+
# The following task only run the clobber task (not provided by us)
|
82
|
+
# and the org:install one, which is already tested. Thus, we can
|
83
|
+
# safely remove it from coverage.
|
84
|
+
# :nocov:
|
85
|
+
desc 'Upgrade Org'
|
86
|
+
task :upgrade do
|
87
|
+
Rake::Task['clobber'].execute
|
88
|
+
Rake::Task['org:install'].invoke
|
89
|
+
end
|
90
|
+
# :nocov:
|
84
91
|
end
|
data/lib/tasks/site.rake
CHANGED
@@ -24,10 +24,11 @@ namespace :site do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
desc 'Convert all org files'
|
27
|
-
task build: :index do
|
27
|
+
task :build, [:force?] => [:index] do |_, args|
|
28
|
+
args.with_defaults(:force? => false)
|
28
29
|
build_html = Thread.new do
|
30
|
+
rm_r 'tmp/timestamps', force: true if args[:force?]
|
29
31
|
Neruda::Emacs.new(verbose: Rake::FileUtilsExt.verbose_flag).publish
|
30
|
-
# TODO: Find a way to publish the virtual tag project
|
31
32
|
end
|
32
33
|
begin
|
33
34
|
Neruda::Utils.throbber(build_html, 'Building:')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neruda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Étienne Deparis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-10-
|
11
|
+
date: 2020-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -142,14 +142,42 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0.
|
145
|
+
version: '0.93'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0.
|
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'
|
153
181
|
- !ruby/object:Gem::Dependency
|
154
182
|
name: simplecov
|
155
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,11 +240,6 @@ files:
|
|
212
240
|
- lib/tasks/tags.rake
|
213
241
|
- locales/en.yml
|
214
242
|
- locales/fr.yml
|
215
|
-
- themes/default/css/htmlize.css
|
216
|
-
- themes/default/css/style.css
|
217
|
-
- themes/default/img/bottom.png
|
218
|
-
- themes/default/img/tic.png
|
219
|
-
- themes/default/img/top.png
|
220
243
|
homepage: https://git.umaneti.net/neruda/about/
|
221
244
|
licenses:
|
222
245
|
- WTFPL
|
@@ -1,346 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* This file has been generated with the `org-html-htmlize-generate-css'
|
3
|
-
* command of org mode, with the Dracula theme enabled.
|
4
|
-
* The Dracula theme is released under an MIT license and thus the
|
5
|
-
* following is also released under this license.
|
6
|
-
* See https://github.com/dracula/emacs for details.
|
7
|
-
*/
|
8
|
-
|
9
|
-
.src {
|
10
|
-
color: #f8f8f2;
|
11
|
-
background-color: #282a36;
|
12
|
-
padding: .6em 1em;
|
13
|
-
}
|
14
|
-
pre.src a:hover {
|
15
|
-
text-decoration: underline;
|
16
|
-
}
|
17
|
-
|
18
|
-
.org-bold {
|
19
|
-
/* bold */
|
20
|
-
font-weight: bold;
|
21
|
-
}
|
22
|
-
.org-bold-italic {
|
23
|
-
/* bold-italic */
|
24
|
-
font-weight: bold;
|
25
|
-
font-style: italic;
|
26
|
-
}
|
27
|
-
|
28
|
-
.org-builtin {
|
29
|
-
/* font-lock-builtin-face */
|
30
|
-
color: #ffb86c;
|
31
|
-
}
|
32
|
-
.org-button {
|
33
|
-
/* button */
|
34
|
-
color: #8be9fd;
|
35
|
-
text-decoration: underline;
|
36
|
-
}
|
37
|
-
.org-comment {
|
38
|
-
/* font-lock-comment-face */
|
39
|
-
color: #6272a4;
|
40
|
-
}
|
41
|
-
.org-comment-delimiter {
|
42
|
-
/* font-lock-comment-delimiter-face */
|
43
|
-
color: #6272a4;
|
44
|
-
}
|
45
|
-
.org-constant {
|
46
|
-
/* font-lock-constant-face */
|
47
|
-
color: #8be9fd;
|
48
|
-
}
|
49
|
-
.org-cursor {
|
50
|
-
/* cursor */
|
51
|
-
background-color: #8be9fd;
|
52
|
-
}
|
53
|
-
.org-doc {
|
54
|
-
/* font-lock-doc-face */
|
55
|
-
color: #6272a4;
|
56
|
-
}
|
57
|
-
.org-error {
|
58
|
-
/* error */
|
59
|
-
color: #ffc0cb;
|
60
|
-
font-weight: bold;
|
61
|
-
}
|
62
|
-
.org-escape-glyph {
|
63
|
-
/* escape-glyph */
|
64
|
-
color: #00ffff;
|
65
|
-
}
|
66
|
-
.org-file-name-shadow {
|
67
|
-
/* file-name-shadow */
|
68
|
-
color: #b3b3b3;
|
69
|
-
}
|
70
|
-
.org-fringe {
|
71
|
-
/* fringe */
|
72
|
-
color: #b6b6b2;
|
73
|
-
background-color: #282a36;
|
74
|
-
}
|
75
|
-
.org-function-name {
|
76
|
-
/* font-lock-function-name-face */
|
77
|
-
color: #50fa7b;
|
78
|
-
font-weight: bold;
|
79
|
-
}
|
80
|
-
.org-glyphless-char {
|
81
|
-
/* glyphless-char */
|
82
|
-
font-size: 60%;
|
83
|
-
}
|
84
|
-
.org-header-line {
|
85
|
-
/* header-line */
|
86
|
-
background-color: #282a36;
|
87
|
-
}
|
88
|
-
.org-header-line-highlight {
|
89
|
-
/* header-line-highlight */
|
90
|
-
color: #ccccc7;
|
91
|
-
background-color: #464752;
|
92
|
-
}
|
93
|
-
.org-help-argument-name {
|
94
|
-
/* help-argument-name */
|
95
|
-
font-style: italic;
|
96
|
-
}
|
97
|
-
.org-highlight {
|
98
|
-
/* highlight */
|
99
|
-
color: #ccccc7;
|
100
|
-
background-color: #464752;
|
101
|
-
}
|
102
|
-
.org-hl-line {
|
103
|
-
/* hl-line */
|
104
|
-
background-color: #44475a;
|
105
|
-
}
|
106
|
-
.org-homoglyph {
|
107
|
-
/* homoglyph */
|
108
|
-
color: #00ffff;
|
109
|
-
}
|
110
|
-
.org-italic {
|
111
|
-
/* italic */
|
112
|
-
font-style: italic;
|
113
|
-
}
|
114
|
-
.org-keyword {
|
115
|
-
/* font-lock-keyword-face */
|
116
|
-
color: #ff79c6;
|
117
|
-
font-weight: bold;
|
118
|
-
}
|
119
|
-
.org-lazy-highlight {
|
120
|
-
/* lazy-highlight */
|
121
|
-
color: #e2e2dc;
|
122
|
-
background-color: #464752;
|
123
|
-
}
|
124
|
-
.org-line-number-current-line {
|
125
|
-
/* line-number-current-line */
|
126
|
-
color: #b3b3b3;
|
127
|
-
background-color: #282a36;
|
128
|
-
}
|
129
|
-
.org-link {
|
130
|
-
/* link */
|
131
|
-
color: #8be9fd;
|
132
|
-
text-decoration: underline;
|
133
|
-
}
|
134
|
-
.org-link-visited {
|
135
|
-
/* link-visited */
|
136
|
-
color: #ee82ee;
|
137
|
-
text-decoration: underline;
|
138
|
-
}
|
139
|
-
.org-linum {
|
140
|
-
/* linum */
|
141
|
-
color: #565761;
|
142
|
-
background-color: #282a36;
|
143
|
-
font-style: italic;
|
144
|
-
}
|
145
|
-
.org-match {
|
146
|
-
/* match */
|
147
|
-
background-color: #3a5fcd;
|
148
|
-
}
|
149
|
-
.org-negation-char {
|
150
|
-
/* font-lock-negation-char-face */
|
151
|
-
color: #8be9fd;
|
152
|
-
}
|
153
|
-
.org-next-error {
|
154
|
-
/* next-error */
|
155
|
-
color: #282a36;
|
156
|
-
background-color: #f1fa8c;
|
157
|
-
}
|
158
|
-
.org-nobreak-hyphen {
|
159
|
-
/* nobreak-hyphen */
|
160
|
-
color: #00ffff;
|
161
|
-
}
|
162
|
-
.org-nobreak-space {
|
163
|
-
/* nobreak-space */
|
164
|
-
color: #00ffff;
|
165
|
-
text-decoration: underline;
|
166
|
-
}
|
167
|
-
.org-outline-1 {
|
168
|
-
/* outline-1 */
|
169
|
-
color: #50fa7b;
|
170
|
-
}
|
171
|
-
.org-outline-2 {
|
172
|
-
/* outline-2 */
|
173
|
-
color: #bd93f9;
|
174
|
-
}
|
175
|
-
.org-outline-3 {
|
176
|
-
/* outline-3 */
|
177
|
-
color: #8be9fd;
|
178
|
-
}
|
179
|
-
.org-outline-4 {
|
180
|
-
/* outline-4 */
|
181
|
-
color: #ffb86c;
|
182
|
-
}
|
183
|
-
.org-outline-5 {
|
184
|
-
/* outline-5 */
|
185
|
-
color: #ffb86c;
|
186
|
-
}
|
187
|
-
.org-outline-6 {
|
188
|
-
/* outline-6 */
|
189
|
-
color: #0189cc;
|
190
|
-
}
|
191
|
-
.org-outline-7 {
|
192
|
-
/* outline-7 */
|
193
|
-
color: #ffb86c;
|
194
|
-
}
|
195
|
-
.org-outline-8 {
|
196
|
-
/* outline-8 */
|
197
|
-
color: #f1fa8c;
|
198
|
-
}
|
199
|
-
.org-page-break-lines {
|
200
|
-
/* page-break-lines */
|
201
|
-
color: #6272a4;
|
202
|
-
}
|
203
|
-
.org-preprocessor {
|
204
|
-
/* font-lock-preprocessor-face */
|
205
|
-
color: #ffb86c;
|
206
|
-
}
|
207
|
-
.org-py-builtins {
|
208
|
-
/* py-builtins-face */
|
209
|
-
color: #ffb86c;
|
210
|
-
}
|
211
|
-
.org-py-class-name {
|
212
|
-
/* py-class-name-face */
|
213
|
-
color: #bd93f9;
|
214
|
-
}
|
215
|
-
.org-py-decorators {
|
216
|
-
/* py-decorators-face */
|
217
|
-
color: #ff79c6;
|
218
|
-
font-weight: bold;
|
219
|
-
}
|
220
|
-
.org-py-def-class {
|
221
|
-
/* py-def-class-face */
|
222
|
-
color: #ff79c6;
|
223
|
-
font-weight: bold;
|
224
|
-
}
|
225
|
-
.org-py-exception-name {
|
226
|
-
/* py-exception-name-face */
|
227
|
-
color: #ffb86c;
|
228
|
-
}
|
229
|
-
.org-py-import-from {
|
230
|
-
/* py-import-from-face */
|
231
|
-
color: #ff79c6;
|
232
|
-
font-weight: bold;
|
233
|
-
}
|
234
|
-
.org-py-number {
|
235
|
-
/* py-number-face */
|
236
|
-
color: #f8f8f2;
|
237
|
-
background-color: #282a36;
|
238
|
-
}
|
239
|
-
.org-py-object-reference {
|
240
|
-
/* py-object-reference-face */
|
241
|
-
color: #ff79c6;
|
242
|
-
font-weight: bold;
|
243
|
-
}
|
244
|
-
.org-py-pseudo-keyword {
|
245
|
-
/* py-pseudo-keyword-face */
|
246
|
-
color: #ff79c6;
|
247
|
-
font-weight: bold;
|
248
|
-
}
|
249
|
-
.org-py-try-if {
|
250
|
-
/* py-try-if-face */
|
251
|
-
color: #ff79c6;
|
252
|
-
font-weight: bold;
|
253
|
-
}
|
254
|
-
.org-py-variable-name {
|
255
|
-
/* py-variable-name-face */
|
256
|
-
color: #f8f8f2;
|
257
|
-
background-color: #282a36;
|
258
|
-
}
|
259
|
-
.org-py-xxx-tag {
|
260
|
-
/* py-XXX-tag-face */
|
261
|
-
color: #f1fa8c;
|
262
|
-
}
|
263
|
-
.org-query-replace {
|
264
|
-
/* query-replace */
|
265
|
-
color: #ffb86c;
|
266
|
-
background-color: #464752;
|
267
|
-
font-weight: bold;
|
268
|
-
}
|
269
|
-
.org-regexp-grouping-backslash {
|
270
|
-
/* font-lock-regexp-grouping-backslash */
|
271
|
-
font-weight: bold;
|
272
|
-
}
|
273
|
-
.org-regexp-grouping-construct {
|
274
|
-
/* font-lock-regexp-grouping-construct */
|
275
|
-
font-weight: bold;
|
276
|
-
}
|
277
|
-
.org-region {
|
278
|
-
/* region */
|
279
|
-
color: #282a36;
|
280
|
-
background-color: #f1fa8c;
|
281
|
-
}
|
282
|
-
.org-shadow {
|
283
|
-
/* shadow */
|
284
|
-
color: #b3b3b3;
|
285
|
-
}
|
286
|
-
.org-show-paren-match {
|
287
|
-
/* show-paren-match */
|
288
|
-
background-color: #4f94cd;
|
289
|
-
}
|
290
|
-
.org-show-paren-match-expression {
|
291
|
-
/* show-paren-match-expression */
|
292
|
-
background-color: #4f94cd;
|
293
|
-
}
|
294
|
-
.org-show-paren-mismatch {
|
295
|
-
/* show-paren-mismatch */
|
296
|
-
color: #ffffff;
|
297
|
-
background-color: #a020f0;
|
298
|
-
}
|
299
|
-
.org-string {
|
300
|
-
/* font-lock-string-face */
|
301
|
-
color: #f1fa8c;
|
302
|
-
}
|
303
|
-
.org-success {
|
304
|
-
/* success */
|
305
|
-
color: #00ff00;
|
306
|
-
font-weight: bold;
|
307
|
-
}
|
308
|
-
.org-tooltip {
|
309
|
-
/* tooltip */
|
310
|
-
color: #000000;
|
311
|
-
background-color: #ffffe0;
|
312
|
-
}
|
313
|
-
.org-trailing-whitespace {
|
314
|
-
/* trailing-whitespace */
|
315
|
-
background-color: #ffb86c;
|
316
|
-
}
|
317
|
-
.org-type {
|
318
|
-
/* font-lock-type-face */
|
319
|
-
color: #bd93f9;
|
320
|
-
}
|
321
|
-
.org-underline {
|
322
|
-
/* underline */
|
323
|
-
text-decoration: underline;
|
324
|
-
}
|
325
|
-
.org-variable-name {
|
326
|
-
/* font-lock-variable-name-face */
|
327
|
-
color: #f8f8f2;
|
328
|
-
}
|
329
|
-
.org-vertical-border {
|
330
|
-
/* vertical-border */
|
331
|
-
color: #373844;
|
332
|
-
}
|
333
|
-
.org-warning {
|
334
|
-
/* warning */
|
335
|
-
color: #ffb86c;
|
336
|
-
}
|
337
|
-
.org-warning-1 {
|
338
|
-
/* font-lock-warning-face */
|
339
|
-
color: #ffb86c;
|
340
|
-
background-color: #373844;
|
341
|
-
}
|
342
|
-
.org-which-func {
|
343
|
-
/* which-func */
|
344
|
-
color: #50fa7b;
|
345
|
-
font-weight: bold;
|
346
|
-
}
|
@@ -1,153 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
|
3
|
-
Version 2
|
4
|
-
Dernière modification: Milouse
|
5
|
-
|
6
|
-
|
7
|
-
Umaneti.net Legacy
|
8
|
-
==================
|
9
|
-
|
10
|
-
-> pour une largeur d'écran de 800 pixels
|
11
|
-
-> cette feuille est libre de droits
|
12
|
-
|
13
|
-
*/
|
14
|
-
|
15
|
-
body {
|
16
|
-
font-size: 12pt;
|
17
|
-
color: #000000;
|
18
|
-
background: url('/assets/default/img/top.png') top repeat-x;
|
19
|
-
font-family: sans-serif;
|
20
|
-
margin-bottom: 0;
|
21
|
-
}
|
22
|
-
|
23
|
-
h1 {color: #ffba53;}
|
24
|
-
|
25
|
-
h2 {
|
26
|
-
color: #68a5c3;
|
27
|
-
margin-left: 1em;
|
28
|
-
margin-top: 1.5em;
|
29
|
-
}
|
30
|
-
h2 code {
|
31
|
-
color: #68a5c3;
|
32
|
-
}
|
33
|
-
|
34
|
-
h3 {color:#ffba53;}
|
35
|
-
|
36
|
-
a[hreflang]:after {
|
37
|
-
content: "\00a0[" attr(hreflang) "]";
|
38
|
-
color: #cccccc;
|
39
|
-
background: transparent;
|
40
|
-
}
|
41
|
-
|
42
|
-
a, a:visited {color: #666666;}
|
43
|
-
a:hover {text-decoration: none;}
|
44
|
-
|
45
|
-
img {border: 0;}
|
46
|
-
|
47
|
-
blockquote {
|
48
|
-
font-style: italic;
|
49
|
-
border-left: 4px solid #666666;
|
50
|
-
padding-left: 1em;
|
51
|
-
}
|
52
|
-
|
53
|
-
acronym {
|
54
|
-
border-bottom:dotted 1px #666666;
|
55
|
-
cursor:help;
|
56
|
-
}
|
57
|
-
|
58
|
-
code {
|
59
|
-
font-family: monospace;
|
60
|
-
color: #c74350;
|
61
|
-
}
|
62
|
-
.org-src-container pre {
|
63
|
-
overflow: auto;
|
64
|
-
}
|
65
|
-
.org-src-container label.org-src-name {
|
66
|
-
display: block;
|
67
|
-
text-align: center;
|
68
|
-
font-size: .9em;
|
69
|
-
color: #666666;
|
70
|
-
}
|
71
|
-
|
72
|
-
ul {
|
73
|
-
list-style: url('/assets/default/img/tic.png');
|
74
|
-
padding-left: 2em;
|
75
|
-
}
|
76
|
-
|
77
|
-
ol {padding-left: 2em;}
|
78
|
-
|
79
|
-
p, li {
|
80
|
-
text-align: justify;
|
81
|
-
line-height: 1.75em;
|
82
|
-
}
|
83
|
-
|
84
|
-
dt {
|
85
|
-
font-weight: bold;
|
86
|
-
}
|
87
|
-
|
88
|
-
.underline {
|
89
|
-
text-decoration: underline;
|
90
|
-
}
|
91
|
-
|
92
|
-
.org-center {
|
93
|
-
text-align: center;
|
94
|
-
}
|
95
|
-
|
96
|
-
fieldset {border: 0;}
|
97
|
-
|
98
|
-
input, textarea {
|
99
|
-
border: 1px solid #cccccc;
|
100
|
-
margin: 3px 0px;
|
101
|
-
background: #ffffff;
|
102
|
-
}
|
103
|
-
input:hover,
|
104
|
-
input:focus,
|
105
|
-
textarea:hover,
|
106
|
-
textarea:focus {
|
107
|
-
border: 1px solid #ffba53;
|
108
|
-
background: #ffffff;
|
109
|
-
}
|
110
|
-
|
111
|
-
/* ID #TOUT pour faire que la page soit centrée de 800 de large. --------------------- */
|
112
|
-
#preamble, #content, #postamble {
|
113
|
-
width: 800px;
|
114
|
-
margin: 1em auto;
|
115
|
-
padding: 1em;
|
116
|
-
}
|
117
|
-
|
118
|
-
/* Header */
|
119
|
-
|
120
|
-
#content header h1 {
|
121
|
-
text-align: right;
|
122
|
-
margin-bottom: 1.5em;
|
123
|
-
}
|
124
|
-
|
125
|
-
#preamble nav ul {
|
126
|
-
list-style: none;
|
127
|
-
padding-left: 0;
|
128
|
-
}
|
129
|
-
#preamble li {
|
130
|
-
display: inline;
|
131
|
-
line-height: 1em;
|
132
|
-
}
|
133
|
-
#preamble li::before {
|
134
|
-
content: " · ";
|
135
|
-
}
|
136
|
-
#preamble li:first-child::before {
|
137
|
-
content: "";
|
138
|
-
}
|
139
|
-
|
140
|
-
/* Footer */
|
141
|
-
|
142
|
-
#postamble {
|
143
|
-
background: url('/assets/default/img/bottom.png') top repeat-x;
|
144
|
-
border-top: 1px solid #cccccc;
|
145
|
-
font-size: .8em;
|
146
|
-
text-align: center;
|
147
|
-
margin-bottom: 0;
|
148
|
-
}
|
149
|
-
|
150
|
-
.post-meta {
|
151
|
-
font-size: .9em;
|
152
|
-
font-style: italic;
|
153
|
-
}
|
Binary file
|
data/themes/default/img/tic.png
DELETED
Binary file
|
data/themes/default/img/top.png
DELETED
Binary file
|