middleman-targets 1.0.3 → 1.0.4
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/.gitignore +7 -0
- data/.yardopts +9 -0
- data/CHANGELOG.md +7 -0
- data/README.md +21 -4
- data/Rakefile +12 -6
- data/documentation_project/Gemfile +1 -1
- data/documentation_project/config.rb +7 -7
- data/documentation_project/source/helpers-resources.html.md.erb +14 -66
- data/documentation_project/source/partials/config.erb +326 -0
- data/documentation_project/source/partials/helpers.erb +354 -0
- data/documentation_project/source/partials/resources.erb +100 -0
- data/documentation_project/source/stylesheets/_middlemac_minimal.scss +283 -1
- data/documentation_project/source/target-feature-config.html.md.erb +6 -36
- data/features/build_target_option.feature +42 -0
- data/features/helpers_and_resources.feature +44 -0
- data/features/server_target_option.feature +42 -0
- data/features/support/env.rb +20 -0
- data/fixtures/middleman_targets_app/config.rb +33 -0
- data/fixtures/middleman_targets_app/source/all-root-logo.png +0 -0
- data/fixtures/middleman_targets_app/source/all-root.png +0 -0
- data/fixtures/middleman_targets_app/source/free-root.png +0 -0
- data/fixtures/middleman_targets_app/source/images/all-image.png +0 -0
- data/fixtures/middleman_targets_app/source/images/all-logo.png +0 -0
- data/fixtures/middleman_targets_app/source/images/free-image.png +0 -0
- data/fixtures/middleman_targets_app/source/images/pro-image.png +0 -0
- data/fixtures/middleman_targets_app/source/index.html.md.erb +35 -0
- data/fixtures/middleman_targets_app/source/pro-root.png +0 -0
- data/lib/middleman-targets/extension.rb +182 -54
- data/lib/middleman-targets/middleman-cli/build_all.rb +5 -6
- data/lib/middleman-targets/version.rb +1 -1
- data/middleman-targets.gemspec +9 -2
- data/yard/readme.md +6 -0
- data/yard/templates/default/fulldoc/html/css/common.css +1 -0
- data/yard/templates/default/fulldoc/html/css/full_list.css +57 -0
- data/yard/templates/default/fulldoc/html/css/style.css +343 -0
- data/yard/templates/default/onefile/html/files.erb +5 -0
- data/yard/templates/default/onefile/html/headers.erb +6 -0
- data/yard/templates/default/onefile/html/layout.erb +17 -0
- data/yard/templates/default/onefile/html/readme.erb +3 -0
- data/yard/templates/default/onefile/html/setup.rb +61 -0
- data/yard/yard_extensions.rb +73 -0
- metadata +83 -3
@@ -1,23 +1,114 @@
|
|
1
|
-
################################################################################
|
2
|
-
# extension.rb
|
3
|
-
# This file constitutes the framework for the bulk of this extension.
|
4
|
-
################################################################################
|
5
1
|
require 'middleman-core'
|
6
2
|
|
3
|
+
################################################################################
|
4
|
+
# This extension provides Middleman the ability to build and serve multiple
|
5
|
+
# targets, and includes resource extensions and helpers to take advantage of
|
6
|
+
# this new feature.
|
7
|
+
# @author Jim Derry <balthisar@gmail.com>
|
8
|
+
################################################################################
|
7
9
|
class MiddlemanTargets < ::Middleman::Extension
|
8
10
|
|
9
11
|
############################################################
|
10
12
|
# Define the options that are to be set within `config.rb`
|
11
13
|
# as Middleman *application* (not extension) options.
|
12
14
|
############################################################
|
15
|
+
|
13
16
|
define_setting :target, 'default', 'The default target to process if not specified.'
|
14
17
|
define_setting :targets, { :default => { :features => {} } } , 'A hash that defines many characteristics of the target.'
|
15
18
|
define_setting :target_magic_images, true, 'Enable magic images for targets.'
|
16
|
-
define_setting :target_magic_word, 'all', 'The magic image prefix for
|
19
|
+
define_setting :target_magic_word, 'all', 'The magic image prefix for image substitution.'
|
20
|
+
|
21
|
+
# @!group Middleman Configuration
|
22
|
+
|
23
|
+
# @!attribute [rw] config[:target]=
|
24
|
+
# Indicates the current target that is being built or served. When
|
25
|
+
# set in `config.rb` it indicates the default target if one is not
|
26
|
+
# specified on the command line.
|
27
|
+
# @param [Symbol] value The target from `config[:targets]` that should
|
28
|
+
# be used as the default.
|
29
|
+
# @return [Symbol] Returns the current target.
|
30
|
+
# @note This is a Middleman application level config option.
|
31
|
+
|
32
|
+
|
33
|
+
# @!attribute [rw] config[:targets]=
|
34
|
+
# A hash that defines all of the characteristics of your individual targets.
|
35
|
+
# The `build_dir` and `features` keys in a target have special meanings;
|
36
|
+
# other keys can be added arbitrarily and helpers can fetch these for you.
|
37
|
+
# A best practice is to assign the same features to _all_ of your targets and
|
38
|
+
# toggle them `on` or `off` on a target-specific basis.
|
39
|
+
# @example You might define this in your `config.rb` like this:
|
40
|
+
# config[:targets] = {
|
41
|
+
# :free =>
|
42
|
+
# {
|
43
|
+
# :sample_key => 'People who use free versions don\'t drive profits.',
|
44
|
+
# :build_dir => 'build (%s)',
|
45
|
+
# :features =>
|
46
|
+
# {
|
47
|
+
# :feature_advertise_pro => true,
|
48
|
+
# :insults_user => true,
|
49
|
+
# :grants_wishes => false,
|
50
|
+
# }
|
51
|
+
# },
|
52
|
+
#
|
53
|
+
# :pro =>
|
54
|
+
# {
|
55
|
+
# :sample_key => 'You are a valued contributor to our balance sheet!',
|
56
|
+
# :features =>
|
57
|
+
# {
|
58
|
+
# :feature_advertise_pro => false,
|
59
|
+
# :insults_user => false,
|
60
|
+
# :grants_wishes => true,
|
61
|
+
# }
|
62
|
+
# },
|
63
|
+
# }
|
64
|
+
# @param [Hash] value The complete definition of your targets, their
|
65
|
+
# features, and other keys-value pairs that you wish to include.
|
66
|
+
# @return [Hash] Returns the attributes of your targets.
|
67
|
+
# @note This is a Middleman application level config option.
|
68
|
+
|
69
|
+
|
70
|
+
# @!attribute [rw] config[:target_magic_images]=
|
71
|
+
# This option is used to enable or disable the target magic images feature.
|
72
|
+
# If it's `true` then the `image_tag` helper will attempt to substitute
|
73
|
+
# target-specific images instead of the specified image, if the specified
|
74
|
+
# image begins with `:target_magic_word`.
|
75
|
+
# @param [Boolean] value Specify whether or not automatic target-specific
|
76
|
+
# image substitution should be enabled.
|
77
|
+
# @return [Boolean] Returns the current state of this option.
|
78
|
+
# @note This is a Middleman application level config option.
|
79
|
+
|
80
|
+
|
81
|
+
# @!attribute [rw] config[:target_magic_word]=
|
82
|
+
# Indicates the magic image prefix for image substitution with the
|
83
|
+
# `image_tag` helper when `:target_magic_images` is enabled. For example
|
84
|
+
# if you specify `all-image.png` and `pro-image.png` exists, then the
|
85
|
+
# latter will be used by the helper instead of the former.
|
86
|
+
# @param [String] value Indicate the prefix that should indicate and image
|
87
|
+
# the should be substituted, such as `all`.
|
88
|
+
# @return [String] Returns the current magic prefix.
|
89
|
+
# @note This is a Middleman application level config option.
|
90
|
+
|
91
|
+
|
92
|
+
# @!attribute [rw] config[:build_dir]=
|
93
|
+
# Indicates where **Middleman** will put build output. This standard config
|
94
|
+
# value will be treated as a *prefix*; for example if the current target is
|
95
|
+
# `:pro` and this value is set to its default `build`, then the actual build
|
96
|
+
# directory will be `build (pro)/`.
|
97
|
+
#
|
98
|
+
# If the `build_dir` key is present for any of the `config[:targets]`, they
|
99
|
+
# will override this setting.
|
100
|
+
# @param [String] value Indicate the build directory prefix that should be
|
101
|
+
# used for build output.
|
102
|
+
# @return [String] Returns the current value of this configuration setting.
|
103
|
+
# @note This is a Middleman application level config option.
|
104
|
+
|
105
|
+
|
106
|
+
# @!endgroup
|
17
107
|
|
18
108
|
|
19
109
|
############################################################
|
20
110
|
# initialize
|
111
|
+
# @!visibility private
|
21
112
|
############################################################
|
22
113
|
def initialize(app, options_hash={}, &block)
|
23
114
|
|
@@ -30,6 +121,7 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
30
121
|
############################################################
|
31
122
|
# after_configuration
|
32
123
|
# Handle the --target cli setting.
|
124
|
+
# @!visibility private
|
33
125
|
#############################################################
|
34
126
|
def after_configuration
|
35
127
|
|
@@ -83,12 +175,10 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
83
175
|
resources.each do |resource|
|
84
176
|
|
85
177
|
#--------------------------------------------------------
|
86
|
-
#
|
87
|
-
#
|
88
|
-
#
|
89
|
-
#
|
90
|
-
# only features that can be used with frontmatter
|
91
|
-
# :target or :exclude.
|
178
|
+
# Returns an array of valid features for a resource
|
179
|
+
# based on the current target, i.e., features that
|
180
|
+
# are true for the current target.
|
181
|
+
# @return [Array] Returns an array of features.
|
92
182
|
#--------------------------------------------------------
|
93
183
|
def resource.valid_features
|
94
184
|
@app.config[:targets][@app.config[:target]][:features].select { |k, v| v }.keys
|
@@ -96,21 +186,22 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
96
186
|
|
97
187
|
|
98
188
|
#--------------------------------------------------------
|
99
|
-
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
103
|
-
#
|
104
|
-
#
|
105
|
-
#
|
106
|
-
#
|
107
|
-
#
|
189
|
+
# Determines if the resource is eligible for inclusion
|
190
|
+
# in the current target based on the front matter data
|
191
|
+
# `target` and `exclude` fields.
|
192
|
+
#
|
193
|
+
# * If **frontmatter:target** is used, the target or
|
194
|
+
# feature appears in the frontmatter, and
|
195
|
+
# * If **frontmatter:exclude** is used, the target or
|
196
|
+
# enabled feature does NOT appear in the
|
197
|
+
# frontmatter
|
108
198
|
#
|
109
|
-
#
|
110
|
-
#
|
111
|
-
#
|
112
|
-
#
|
113
|
-
#
|
199
|
+
# In general you won't use this resource method because
|
200
|
+
# resources will already be excluded before you have a
|
201
|
+
# chance to check them, and so any leftover resources
|
202
|
+
# will always return `true` for this method.
|
203
|
+
# @return [Boolean] Returns a value indicating whether
|
204
|
+
# or not this resource belongs in the current target.
|
114
205
|
#--------------------------------------------------------
|
115
206
|
def resource.targeted?
|
116
207
|
target_name = @app.config[:target]
|
@@ -153,16 +244,16 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
153
244
|
|
154
245
|
|
155
246
|
############################################################
|
156
|
-
#
|
157
|
-
#
|
158
|
-
#
|
247
|
+
# Helpers
|
248
|
+
# Methods defined in this helpers block are available in
|
249
|
+
# templates.
|
159
250
|
############################################################
|
160
251
|
|
161
252
|
helpers do
|
162
253
|
|
163
254
|
#--------------------------------------------------------
|
164
|
-
#
|
165
|
-
#
|
255
|
+
# Return the current build target.
|
256
|
+
# @return [Symbol] Returns the current build target.
|
166
257
|
#--------------------------------------------------------
|
167
258
|
def target_name
|
168
259
|
@app.config[:target]
|
@@ -170,8 +261,11 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
170
261
|
|
171
262
|
|
172
263
|
#--------------------------------------------------------
|
173
|
-
#
|
174
|
-
#
|
264
|
+
# Is the current target `proposal`?
|
265
|
+
# @param [String, Symbol] proposal Specifies a proposed
|
266
|
+
# target.
|
267
|
+
# @return [Boolean] Returns `true` if the current target
|
268
|
+
# matches the parameter `proposal`.
|
175
269
|
#--------------------------------------------------------
|
176
270
|
def target_name?( proposal )
|
177
271
|
@app.config[:target] == proposal.to_sym
|
@@ -179,8 +273,12 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
179
273
|
|
180
274
|
|
181
275
|
#--------------------------------------------------------
|
182
|
-
#
|
183
|
-
#
|
276
|
+
# Does the target have the feature `feature` enabled?
|
277
|
+
# @param [String, Symbol] feature Specifies a proposed
|
278
|
+
# feature.
|
279
|
+
# @return [Boolean] Returns `true` if the current target
|
280
|
+
# has the features `feature` and the features is
|
281
|
+
# enabled.
|
184
282
|
#--------------------------------------------------------
|
185
283
|
def target_feature?( feature )
|
186
284
|
features = @app.config[:targets][@app.config[:target]][:features]
|
@@ -189,9 +287,13 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
189
287
|
|
190
288
|
|
191
289
|
#--------------------------------------------------------
|
192
|
-
#
|
193
|
-
#
|
194
|
-
#
|
290
|
+
# Attempts to return arbitrary key values for the key
|
291
|
+
# `key` for the current target.
|
292
|
+
# @param [String, Symbol] key Specifies the desired key
|
293
|
+
# to look up.
|
294
|
+
# @return [String, Nil] Returns the value for `key` in
|
295
|
+
# the `:targets` structure, or `nil` if it doesn’t
|
296
|
+
# exist.
|
195
297
|
#--------------------------------------------------------
|
196
298
|
def target_value( key )
|
197
299
|
target_values = @app.config[:targets][@app.config[:target]]
|
@@ -200,12 +302,30 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
200
302
|
|
201
303
|
|
202
304
|
#--------------------------------------------------------
|
203
|
-
#
|
204
|
-
#
|
205
|
-
#
|
206
|
-
#
|
207
|
-
#
|
208
|
-
#
|
305
|
+
# Override the built-in `image-tag` helper in order to
|
306
|
+
# support additional features.
|
307
|
+
#
|
308
|
+
# * Automatic target-specific images. Note that this
|
309
|
+
# only works on local files, and only if enabled
|
310
|
+
# with the option `:target_magic_images`.
|
311
|
+
# * Target and feature dependent images using the
|
312
|
+
# `params` hash.
|
313
|
+
# * Absolute paths, which Middleman sometimes bungles.
|
314
|
+
#
|
315
|
+
# Note that in addition to the options described below,
|
316
|
+
# `middleman-targets` inherits all of the built-in
|
317
|
+
# option parameters as well.
|
318
|
+
#
|
319
|
+
# @param [String] path The path to the image file.
|
320
|
+
# @param [Hash] params Optional parameters to pass to
|
321
|
+
# the helper.
|
322
|
+
# @option params [String, Symbol] :target This image
|
323
|
+
# tag will only be applied if the current target is
|
324
|
+
# `target`.
|
325
|
+
# @option params [String, Symbol] :feature This image
|
326
|
+
# tag will only be applied if the current target
|
327
|
+
# enables the feature `feature`.
|
328
|
+
# @return [Void]
|
209
329
|
#--------------------------------------------------------
|
210
330
|
def image_tag(path, params={})
|
211
331
|
params.symbolize_keys!
|
@@ -237,7 +357,6 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
237
357
|
super(path, params)
|
238
358
|
end
|
239
359
|
|
240
|
-
|
241
360
|
end #helpers
|
242
361
|
|
243
362
|
|
@@ -246,12 +365,21 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
246
365
|
############################################################
|
247
366
|
|
248
367
|
|
249
|
-
|
250
|
-
#
|
251
|
-
#
|
252
|
-
#
|
253
|
-
#
|
254
|
-
|
368
|
+
#########################################################
|
369
|
+
# Returns a target-specific proposed file when given
|
370
|
+
# a user-specified file, and will return the same file
|
371
|
+
# if not enabled or doesn't begin with the magic word.
|
372
|
+
#
|
373
|
+
# This method allow other implementations of `image-tag`
|
374
|
+
# to honor this implementation’s use of automatic
|
375
|
+
# image substitutions.
|
376
|
+
# @param [String] path Specify the path to the image
|
377
|
+
# for which you want to provide a substitution. This
|
378
|
+
# image doesn’t have to exist in fact if suitable
|
379
|
+
# images exist for the current target.
|
380
|
+
# @return [String] Returns the substitute image if one
|
381
|
+
# was found, otherwise it returns the original path.
|
382
|
+
#########################################################
|
255
383
|
def target_specific_proposal( path )
|
256
384
|
return path unless @app.config[:target_magic_images] && File.basename(path).start_with?( @app.config[:target_magic_word])
|
257
385
|
|
@@ -278,10 +406,10 @@ class MiddlemanTargets < ::Middleman::Extension
|
|
278
406
|
end
|
279
407
|
|
280
408
|
|
281
|
-
|
282
|
-
#
|
283
|
-
#
|
284
|
-
|
409
|
+
#########################################################
|
410
|
+
# Output colored messages using ANSI codes.
|
411
|
+
# @!visibility private
|
412
|
+
#########################################################
|
285
413
|
def say(message = '', color = :reset)
|
286
414
|
colors = { :blue => "\033[34m",
|
287
415
|
:cyan => "\033[36m",
|
@@ -1,10 +1,8 @@
|
|
1
|
-
################################################################################
|
2
|
-
# build_all.rb
|
3
|
-
# Provides the class necessary for the build_all (all) command.
|
4
|
-
################################################################################
|
5
|
-
|
6
1
|
require 'middleman-cli'
|
7
2
|
|
3
|
+
################################################################################
|
4
|
+
# Envelops the class necessary to provide the `build_all`/`all` commands.
|
5
|
+
################################################################################
|
8
6
|
module Middleman::Cli
|
9
7
|
|
10
8
|
###################################################################
|
@@ -16,7 +14,8 @@ module Middleman::Cli
|
|
16
14
|
check_unknown_options!
|
17
15
|
|
18
16
|
############################################################
|
19
|
-
#
|
17
|
+
# Build all targets.
|
18
|
+
# @return [Void]
|
20
19
|
############################################################
|
21
20
|
def build_all
|
22
21
|
|
data/middleman-targets.gemspec
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
$:.push File.expand_path('../lib', __FILE__)
|
3
3
|
require 'middleman-targets/version'
|
4
4
|
|
5
|
+
mm_needed = ['~> 4.1', '>= 4.1.6']
|
6
|
+
|
5
7
|
Gem::Specification.new do |s|
|
6
8
|
s.name = 'middleman-targets'
|
7
9
|
s.version = Middleman::MiddlemanTargets::VERSION
|
@@ -19,8 +21,13 @@ Gem::Specification.new do |s|
|
|
19
21
|
s.require_paths = ['lib']
|
20
22
|
|
21
23
|
# The version of middleman-core your extension depends on
|
22
|
-
s.add_runtime_dependency('middleman-core',
|
24
|
+
s.add_runtime_dependency('middleman-core', mm_needed)
|
23
25
|
|
24
26
|
# Additional dependencies
|
25
|
-
s.add_runtime_dependency('middleman-cli',
|
27
|
+
s.add_runtime_dependency('middleman-cli', mm_needed)
|
28
|
+
|
29
|
+
# Development dependencies
|
30
|
+
s.add_development_dependency 'middleman', mm_needed
|
31
|
+
s.add_development_dependency 'bundler', '>= 1.6'
|
32
|
+
s.add_development_dependency 'rake', '>= 10.3'
|
26
33
|
end
|
data/yard/readme.md
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
This gem provides the ability to generate multiple targets by outfitting
|
2
|
+
*Middleman** with additional command line options. The provided helpers make it
|
3
|
+
simple to control content that is specific to each target, based on the target
|
4
|
+
name or based on feature sets for each target.
|
5
|
+
|
6
|
+
It is standalone and can be used in any **Middleman** project.
|
@@ -0,0 +1 @@
|
|
1
|
+
/* Override this file with custom rules */
|
@@ -0,0 +1,57 @@
|
|
1
|
+
body {
|
2
|
+
margin: 0;
|
3
|
+
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
4
|
+
font-size: 13px;
|
5
|
+
height: 101%;
|
6
|
+
overflow-x: hidden;
|
7
|
+
}
|
8
|
+
|
9
|
+
h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
|
10
|
+
.clear { clear: both; }
|
11
|
+
#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
|
12
|
+
#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
|
13
|
+
#full_list { padding: 0; list-style: none; margin-left: 0; }
|
14
|
+
#full_list ul { padding: 0; }
|
15
|
+
#full_list li { padding: 5px; padding-left: 12px; margin: 0; font-size: 1.1em; list-style: none; }
|
16
|
+
#noresults { padding: 7px 12px; }
|
17
|
+
#content.insearch #noresults { margin-left: 7px; }
|
18
|
+
ul.collapsed ul, ul.collapsed li { display: none; }
|
19
|
+
ul.collapsed.search_uncollapsed { display: block; }
|
20
|
+
ul.collapsed.search_uncollapsed li { display: list-item; }
|
21
|
+
li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
|
22
|
+
li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
|
23
|
+
li { color: #888; cursor: pointer; }
|
24
|
+
li.deprecated { text-decoration: line-through; font-style: italic; }
|
25
|
+
li.r1 { background: #f0f0f0; }
|
26
|
+
li.r2 { background: #fafafa; }
|
27
|
+
li:hover { background: #ddd; }
|
28
|
+
li small:before { content: "("; }
|
29
|
+
li small:after { content: ")"; }
|
30
|
+
li small.search_info { display: none; }
|
31
|
+
a:link, a:visited { text-decoration: none; color: #05a; }
|
32
|
+
li.clicked { background: #05a; color: #ccc; }
|
33
|
+
li.clicked a:link, li.clicked a:visited { color: #eee; }
|
34
|
+
li.clicked a.toggle { opacity: 0.5; background-position: bottom right; }
|
35
|
+
li.collapsed.clicked a.toggle { background-position: top right; }
|
36
|
+
#search input { border: 1px solid #bbb; -moz-border-radius: 3px; -webkit-border-radius: 3px; }
|
37
|
+
#nav { margin-left: 10px; font-size: 0.9em; display: none; color: #aaa; }
|
38
|
+
#nav a:link, #nav a:visited { color: #358; }
|
39
|
+
#nav a:hover { background: transparent; color: #5af; }
|
40
|
+
.frames #nav span:after { content: ' | '; }
|
41
|
+
.frames #nav span:last-child:after { content: ''; }
|
42
|
+
|
43
|
+
.frames #content h1 { margin-top: 0; }
|
44
|
+
.frames li { white-space: nowrap; cursor: normal; }
|
45
|
+
.frames li small { display: block; font-size: 0.8em; }
|
46
|
+
.frames li small:before { content: ""; }
|
47
|
+
.frames li small:after { content: ""; }
|
48
|
+
.frames li small.search_info { display: none; }
|
49
|
+
.frames #search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
|
50
|
+
.frames #content.insearch #search { background-position: center right; }
|
51
|
+
.frames #search input { width: 110px; }
|
52
|
+
.frames #nav { display: block; }
|
53
|
+
|
54
|
+
#full_list.insearch li { display: none; }
|
55
|
+
#full_list.insearch li.found { display: list-item; padding-left: 10px; }
|
56
|
+
#full_list.insearch li a.toggle { display: none; }
|
57
|
+
#full_list.insearch li small.search_info { display: block; }
|