1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
|
# RNA MANUAL REFERENCE
#
# This file maps RNA to online URL's for right mouse context menu documentation access
#
# To make international, we made a script,
# pointing the manuals to the proper language,
# specified in the 'User Preferences Window' by the users
# Some Languages have their manual page, using a prefix or
# being preceded by their respective reference, for example
#
# manual/ --> manual/ru/
#
# The table in the script, contains all of the languages we have in the
# Blender manual website, for those other languages that still
# doesn't have a team of translators, and/or don't have a manual for their languages
# we commented the lines below, you should add them to the language table
# when they have a proper manual in our Blender manual, or added
# to the Blender UI translation table
# The Blender manual uses a list of ISO_639-1 codes to convert languages to manual prefixes
#
# URL is the: url_manual_prefix + url_manual_mapping[id]
import bpy
url_manual_prefix = "https://www.blender.org/manual/"
language = ""
if bpy.context.user_preferences.system.use_international_fonts:
language = bpy.context.user_preferences.system.language
if language == 'DEFAULT':
import os
language = os.getenv('LANG', '').split('.')[0]
LANG = {
# "ar_EG": "ar",
# "bg_BG": "bg",
# "ca_AD": "ca",
# "cs_CZ": "cz",
"de_DE": "de", # German.
# "el_GR": "el",
"ru_RU": "ru", # Russian.
# "sr_RS": "sr",
# "sv_SE": "sv",
# "tr_TR": "th",
# "uk_UA": "uk",
# "es": "es",
# "fi_FI": "fi",
"fr_FR": "fr", # French.
# "id_ID": "id",
# "it_IT": "it",
# "ja_JP": "ja",
# "nl_NL": "nl",
# "pl_PL": "pl",
# "pt_PT": "pt",
# "pt_BR": "pt",
"zh_CN": "zh.cn", # Chinese - Should be changed to "zh_cn" but there is a bug in sphinx-intl.
"zh_TW": "zh.cn", # Taiwanese Chinese - for until we have a zh_tw version?
}.get(language)
if LANG is not None:
url_manual_prefix = url_manual_prefix.replace("manual", "manual/" + LANG)
# - The first item is a wildcard - typical file system globbing
# using python module 'fnmatch.fnmatch'
# - Expressions are evaluated top down (include catch-all expressions last).
url_manual_mapping = (
# *** User Prefs ***
("bpy.types.UserPreferences.*", "preferences"),
("bpy.types.UserPreferencesView.*", "preferences/interface.html"),
("bpy.types.UserPreferencesEdit.*", "preferences/editing.html"),
("bpy.types.UserPreferencesInput.*", "preferences/input.html"),
("bpy.ops.wm.addon_*", "preferences/add_ons.html"),
("bpy.types.Theme.*", "preferences/themes.html"),
("bpy.types.UserPreferencesFilePaths.*", "preferences/file.html"),
("bpy.types.UserPreferencesSystem.*", "preferences/system.html"),
("bpy.types.UserSolidLight.*", "preferences/system.html"),
# *** Modifiers ***
# --- Intro ---
("bpy.types.Modifier.show_*", "modeling/modifiers/the_stack.html"),
("bpy.types.Modifier.*", "modeling/modifiers"), # catchall for various generic options
# --- Modify Modifiers ---
("bpy.types.DataTransferModifier.*", "modeling/modifiers/modify/data_transfer.html"),
("bpy.types.MeshCacheModifier.*", "modeling/modifiers/modify/mesh_cache.html"),
("bpy.types.NormalEditModifier.*", "modeling/modifiers/modify/normal_edit.html"),
("bpy.types.UVProjectModifier.*", "modeling/modifiers/modify/uv_project.html"),
("bpy.types.UVWarpModifier.*", "modeling/modifiers/modify/uv_warp.html"),
("bpy.types.VertexWeightMixModifier.*", "modeling/modifiers/modify/vertex_weight.html"),
("bpy.types.VertexWeightEditModifier.*", "modeling/modifiers/modify/vertex_weight.html"),
("bpy.types.VertexWeightProximityModifier.*", "modeling/modifiers/modify/vertex_weight.html"),
# --- Generate Modifiers ---
("bpy.types.ArrayModifier.*", "modeling/modifiers/generate/array.html"),
("bpy.types.BevelModifier.*", "modeling/modifiers/generate/bevel.html"),
("bpy.types.BooleanModifier.*", "modeling/modifiers/generate/booleans.html"),
("bpy.types.BuildModifier.*", "modeling/modifiers/generate/build.html"),
("bpy.types.DecimateModifier.*", "modeling/modifiers/generate/decimate.html"),
("bpy.types.EdgeSplitModifier.*", "modeling/modifiers/generate/edge_split.html"),
("bpy.types.MaskModifier.*", "modeling/modifiers/generate/mask.html"),
("bpy.types.MirrorModifier.*", "modeling/modifiers/generate/mirror.html"),
("bpy.types.MultiresModifier.*", "modeling/modifiers/generate/multiresolution.html"),
("bpy.types.RemeshModifier.*", "modeling/modifiers/generate/remesh.html"),
("bpy.types.ScrewModifier.*", "modeling/modifiers/generate/screw.html"),
("bpy.types.SkinModifier.*", "modeling/modifiers/generate/skin.html"),
("bpy.types.SolidifyModifier.*", "modeling/modifiers/generate/solidify.html"),
("bpy.types.SubsurfModifier.*", "modeling/modifiers/generate/subsurf.html"),
("bpy.types.TriangulateModifier.*", "modeling/modifiers/generate/triangulate.html"),
("bpy.types.WireframeModifier.*", "modeling/modifiers/generate/wireframe.html"),
# --- Deform Modifiers ---
("bpy.types.ArmatureModifier.*", "modeling/modifiers/deform/armature.html"),
("bpy.types.CastModifier.*", "modeling/modifiers/deform/cast.html"),
("bpy.types.CorrectiveSmoothModifier.*", "modeling/modifiers/deform/corrective_smooth.html"),
("bpy.types.CurveModifier.*", "modeling/modifiers/deform/curve.html"),
("bpy.types.DisplaceModifier.*", "modeling/modifiers/deform/displace.html"),
("bpy.types.HookModifier.*", "modeling/modifiers/deform/hooks.html"),
("bpy.types.LaplacianSmoothModifier.*", "modeling/modifiers/deform/laplacian_smooth.html"),
("bpy.types.LaplacianDeformModifier.*", "modeling/modifiers/deform/laplacian_deform.html"),
("bpy.types.LatticeModifier.*", "modeling/modifiers/deform/lattice.html"),
("bpy.types.MeshDeformModifier.*", "modeling/modifiers/deform/mesh_deform.html"),
("bpy.types.ShrinkwrapModifier.*", "modeling/modifiers/deform/shrinkwrap.html"),
("bpy.types.SimpleDeformModifier.*", "modeling/modifiers/deform/simple_deform.html"),
("bpy.types.SmoothModifier.*", "modeling/modifiers/deform/smooth.html"),
# ("bpy.types.SurfaceModifier.*", "Modifiers/Deform/"), # USERS NEVER SEE THIS
("bpy.types.WarpModifier.*", "modeling/modifiers/deform/warp.html"),
("bpy.types.WaveModifier.*", "modeling/modifiers/deform/wave.html"),
# --- Simulate Modifiers ---
("bpy.types.ClothModifier.*", "physics/cloth"),
("bpy.types.CollisionModifier.*", "physics/collision.html"),
("bpy.types.DynamicPaintModifier.*", "physics/dynamic_paint"),
("bpy.types.ExplodeModifier.*", "modeling/modifiers/simulate/explode.html"),
("bpy.types.FluidSimulationModifier.*", "physics/fluid"),
("bpy.types.OceanModifier.*", "modeling/modifiers/simulate/ocean.html"),
("bpy.types.ParticleInstanceModifier.*", "modeling/modifiers/simulate/particle_instance.html"),
("bpy.types.ParticleSystemModifier.*", "physics/particles"),
("bpy.types.SmokeModifier.*", "physics/smoke"),
("bpy.types.SoftBodyModifier.*", "physics/soft_body"),
# *** Constraints ***
("bpy.types.Constraint.*", "rigging/constraints"),
("bpy.types.Constraint.mute", "rigging/constraints/interface/the_stack.html"), # others could be added here?
# --- Motion Tracking Constraints ---
("bpy.types.FollowTrackConstraint.*", "rigging/constraints/motion_tracking/follow_track.html"),
("bpy.types.ObjectSolverConstraint.*", "rigging/constraints/motion_tracking/object_solver.html"),
("bpy.types.CameraSolverConstraint.*", "rigging/constraints/motion_tracking/camera_solver.html"),
# --- Transform Constraints ---
("bpy.types.CopyLocationConstraint.*", "rigging/constraints/transform/copy_location.html"),
("bpy.types.CopyRotationConstraint.*", "rigging/constraints/transform/copy_rotation.html"),
("bpy.types.CopyScaleConstraint.*", "rigging/constraints/transform/copy_scale.html"),
("bpy.types.CopyTransformsConstraint.*", "rigging/constraints/transform/copy_transforms.html"),
("bpy.types.LimitDistanceConstraint.*", "rigging/constraints/transform/limit_distance.html"),
("bpy.types.LimitLocationConstraint.*", "rigging/constraints/transform/limit_location.html"),
("bpy.types.LimitRotationConstraint.*", "rigging/constraints/transform/limit_rotation.html"),
("bpy.types.LimitScaleConstraint.*", "rigging/constraints/transform/limit_scale.html"),
("bpy.types.MaintainVolumeConstraint.*", "rigging/constraints/transform/maintain_volume.html"),
("bpy.types.TransformConstraint.*", "rigging/constraints/transform/transformation.html"),
# --- Tracking Constraints ---
("bpy.types.ClampToConstraint.*", "rigging/constraints/tracking/clamp_to.html"),
("bpy.types.DampedTrackConstraint.*", "rigging/constraints/tracking/damped_track.html"),
("bpy.types.KinematicConstraint.*", "rigging/constraints/tracking/ik_solver.html"),
("bpy.types.LockedTrackConstraint.*", "rigging/constraints/tracking/locked_track.html"),
("bpy.types.SplineIKConstraint.*", "rigging/constraints/tracking/spline_ik.html"),
("bpy.types.StretchToConstraint.*", "rigging/constraints/tracking/stretch_to.html"),
("bpy.types.TrackToConstraint.*", "rigging/constraints/tracking/track_to.html"),
# --- Relationship Constraints ---
("bpy.types.ActionConstraint.*", "rigging/constraints/relationship/action.html"),
("bpy.types.ChildOfConstraint.*", "rigging/constraints/relationship/action.html"),
("bpy.types.FloorConstraint.*", "rigging/constraints/relationship/child_of.html"),
("bpy.types.FollowPathConstraint.*", "rigging/constraints/relationship/follow_path.html"),
("bpy.types.PivotConstraint.*", "rigging/constraints/relationship/pivot.html"),
("bpy.types.RigidBodyJointConstraint.*", "rigging/constraints/relationship/rigid_body_joint.html"),
("bpy.types.ShrinkwrapConstraint.*", "rigging/constraints/relationship/shrinkwrap.html"),
# *** Render Settings ***
("bpy.types.ImageFormatSettings.*", "data_system/files/image_formats.html"),
("bpy.types.RenderSettings.filepath", "render/output/output.html#output-panel"),
("bpy.types.RenderSettings.display_mode", "render/output/display.html#displaying-renders"),
("bpy.types.RenderSettings.*", "render"), # catchall, todo - refine
# *** FreeStyle ***
("bpy.types.LineStyleAlphaModifier_AlongStroke.*", "render/freestyle/parameter_editor/line_style/alpha.html#along-stroke"),
("bpy.types.LineStyleAlphaModifier_CreaseAngle.*", "render/freestyle/parameter_editor/line_style/alpha.html#crease-angle"),
("bpy.types.LineStyleAlphaModifier_Curvature_3D.*", "render/freestyle/parameter_editor/line_style/alpha.html#d-curvature"),
("bpy.types.LineStyleAlphaModifier_DistanceFromCamera.*", "render/freestyle/parameter_editor/line_style/alpha.html#distance-from-camera"),
("bpy.types.LineStyleAlphaModifier_DistanceFromObject.*", "render/freestyle/parameter_editor/line_style/alpha.html#distance-from-object"),
("bpy.types.LineStyleAlphaModifier_Material.*", "render/freestyle/parameter_editor/line_style/alpha.html#material"),
("bpy.types.LineStyleAlphaModifier_Noise.*", "render/freestyle/parameter_editor/line_style/alpha.html#noise"),
("bpy.types.LineStyleAlphaModifier_Tangent.*", "render/freestyle/parameter_editor/line_style/alpha.html#tangent"),
("bpy.types.LineStyleColorModifier_AlongStroke.*", "render/freestyle/parameter_editor/line_style/color.html#along-stroke"),
("bpy.types.LineStyleColorModifier_CreaseAngle.*", "render/freestyle/parameter_editor/line_style/color.html#crease-angle"),
("bpy.types.LineStyleColorModifier_Curvature_3D.*", "render/freestyle/parameter_editor/line_style/color.html#d-curvature"),
("bpy.types.LineStyleColorModifier_DistanceFromCamera.*", "render/freestyle/parameter_editor/line_style/color.html#distance-from-camera"),
("bpy.types.LineStyleColorModifier_DistanceFromObject.*", "render/freestyle/parameter_editor/line_style/color.html#distance-from-object"),
("bpy.types.LineStyleColorModifier_Material.*", "render/freestyle/parameter_editor/line_style/color.html#material"),
("bpy.types.LineStyleColorModifier_Noise.*", "render/freestyle/parameter_editor/line_style/color.html#noise"),
("bpy.types.LineStyleColorModifier_Tangent.*", "render/freestyle/parameter_editor/line_style/color.html#tangent"),
("bpy.types.LineStyleGeometryModifier_2DOffset.*", "render/freestyle/parameter_editor/line_style/geometry.html#d-offset"),
("bpy.types.LineStyleGeometryModifier_2DTransform.*", "render/freestyle/parameter_editor/line_style/geometry.html#d-transform"),
("bpy.types.LineStyleGeometryModifier_BackboneStretcher.*", "render/freestyle/parameter_editor/line_style/geometry.html#backbone-stretcher"),
("bpy.types.LineStyleGeometryModifier_BezierCurve.*", "render/freestyle/parameter_editor/line_style/geometry.html#bezier-curve"),
("bpy.types.LineStyleGeometryModifier_Blueprint.*", "render/freestyle/parameter_editor/line_style/geometry.html#blueprint"),
("bpy.types.LineStyleGeometryModifier_GuidingLines.*", "render/freestyle/parameter_editor/line_style/geometry.html#guiding-lines"),
("bpy.types.LineStyleGeometryModifier_PerlinNoise1D.*", "render/freestyle/parameter_editor/line_style/geometry.html#perlin-noise-1d"),
("bpy.types.LineStyleGeometryModifier_PerlinNoise2D.*", "render/freestyle/parameter_editor/line_style/geometry.html#perlin-noise-2d"),
("bpy.types.LineStyleGeometryModifier_Polygonalization.*", "render/freestyle/parameter_editor/line_style/geometry.html#polygonization"),
("bpy.types.LineStyleGeometryModifier_Sampling.*", "render/freestyle/parameter_editor/line_style/geometry.html#sampling"),
("bpy.types.LineStyleGeometryModifier_Simplification.*", "render/freestyle/parameter_editor/line_style/geometry.html#simplification"),
("bpy.types.LineStyleGeometryModifier_SinusDisplacement.*", "render/freestyle/parameter_editor/line_style/geometry.html#sinus-displacement"),
("bpy.types.LineStyleGeometryModifier_SpatialNoise.*", "render/freestyle/parameter_editor/line_style/geometry.html#spatial-noise"),
("bpy.types.LineStyleGeometryModifier_TipRemover.*", "render/freestyle/parameter_editor/line_style/geometry.html#tip-remover"),
# ("bpy.types.LineStyleTextureSlot.*", ""), Todo
("bpy.types.LineStyleThicknessModifier_AlongStroke.*", "render/freestyle/parameter_editor/line_style/thickness.html#along-stroke"),
("bpy.types.LineStyleThicknessModifier_Calligraphy.*", "render/freestyle/parameter_editor/line_style/thickness.html#calligraphy"),
("bpy.types.LineStyleThicknessModifier_CreaseAngle.*", "render/freestyle/parameter_editor/line_style/thickness.html#crease-angle"),
("bpy.types.LineStyleThicknessModifier_Curvature_3D.*", "render/freestyle/parameter_editor/line_style/thickness.html#d-curvature"),
("bpy.types.LineStyleThicknessModifier_DistanceFromCamera.*", "render/freestyle/parameter_editor/line_style/thickness.html#distance-from-camera"),
("bpy.types.LineStyleThicknessModifier_DistanceFromObject.*", "render/freestyle/parameter_editor/line_style/thickness.html#distance-from-object"),
("bpy.types.LineStyleThicknessModifier_Material.*", "render/freestyle/parameter_editor/line_style/thickness.html#material"),
("bpy.types.LineStyleThicknessModifier_Noise.*", "render/freestyle/parameter_editor/line_style/thickness.html#noise"),
("bpy.types.LineStyleThicknessModifier_Tangent.*", "render/freestyle/parameter_editor/line_style/thickness.html#tangent"),
("bpy.types.FreestyleLineSet.*", "render/freestyle/parameter_editor/line_set.html"),
("bpy.types.FreestyleLineStyle.*", "render/freestyle/parameter_editor/line_style.html"),
# ("bpy.types.FreestyleModuleSettings.*", ""), Todo
# ("bpy.types.FreestyleSettings.*", ""), Todo
("bpy.types.Linesets.*", "render/freestyle/parameter_editor/line_set.html"),
# *** ID Subclasses ***
("bpy.types.Action.*", "animation/actions.html"),
#("bpy.types.Brush.*", ""), # TODO - manual has no place for this! XXX
("bpy.types.Curve.*", "modeling/curves"),
("bpy.types.GreasePencil.*", "interface/grease_pencil"),
("bpy.types.Group.*", "editors/3dview/object/relationships/groups.html"),
("bpy.types.Image.*", "editors/uv_image/texturing/textures/image.html"),
("bpy.types.ShapeKey.*", "animation/shape_keys.html"), # not an id but include because of key
("bpy.types.Key.*", "animation/shape_keys.html"),
#("bpy.types.Lattice.*", ""), # TODO - manual has no place for this! XXX
("bpy.types.Library.*", "data_system/linked_libraries.html"),
("bpy.types.Mask.*", "editors/movie_clip_editor/masking.html"),
# *** Materials (blender internal) ***
("bpy.types.Material.diffuse*", "render/blender_render/materials/properties/diffuse_shaders.html"),
("bpy.types.Material.specular*", "render/blender_render/materials/properties/specular_shaders.html"),
("bpy.types.Material.ambient*", "render/blender_render/materials/properties/shading.html"),
("bpy.types.Material.preview_render_type", "render/blender_render/materials/properties/preview.html"),
("bpy.types.Material.*", "render/blender_render"), # catchall, until the section is filled in
# ("bpy.types.MaterialSlot.link", "render/blender_render/materials/options.html#material-naming_and_linking"), # TODO, T42839
("bpy.types.MaterialVolume.*", "render/blender_render/materials/special_effects/volume.html"),
("bpy.types.MaterialHalo.*", "render/blender_render/materials/special_effects/halo.html"),
("bpy.types.MaterialStrand.*", "render/blender_render/materials/properties/strands.html"),
("bpy.types.MaterialSubsurfaceScattering.*", "render/blender_render/materials/properties/subsurface_scattering.html"),
("bpy.types.MaterialRaytraceMirror.*", "render/blender_render/materials/properties/mirror.html"),
("bpy.types.MaterialRaytraceTransparency.*", "render/blender_render/materials/properties/transparency.html#raytraced-transparency"),
# ... todo, many more options
("bpy.types.MovieClip.*", "editors/movie_clip_editor"),
("bpy.types.MovieTrackingCamera.*", "editors/movie_clip_editor/tracking/clip.html#tools-available-in-reconstruction-mode"),
("bpy.types.MovieTrackingStabilization.*", "editors/movie_clip_editor/tracking/introduction.html#tools-for-scene-orientation-and-stabilization"),
("bpy.types.MovieTrackingTrack*", "editors/movie_clip_editor/index.html#tools-available-in-tracking-mode"),
("bpy.types.MovieTracking*", "editors/movie_clip_editor"),
("bpy.types.SpaceClipEditor.*", "editors/movie_clip_editor/introduction.html"),
("bpy.types.ColorManaged*", "render/post_process/cm_and_exposure.html"),
#("bpy.types.NodeTree.*", ""), # dont document
("bpy.types.Object.*", "editors/3dview/object"), # catchall, todo - refine
("bpy.types.ParticleSettings.*", "physics/particles"),
("bpy.types.Scene.*", "data_system/scenes.html"),
("bpy.types.Screen.*", "interface/screens.html"),
("bpy.types.Sound.*", "editors/3dview/object/types/speaker.html"),
("bpy.types.Speaker.*", "editors/3dview/object/types/speaker.html"),
("bpy.types.Text.*", "editors/text_editor.html"),
("bpy.types.Texture.*", "render/blender_render/textures"),
("bpy.types.VectorFont.*", "modeling/texts"),
("bpy.types.WindowManager.*", "interface/window_system"),
("bpy.types.World.*", "render/blender_render/world"),
("bpy.types.WorldLighting.*ao*", "render/blender_render/lighting/ambient_occlusion.html"),
("bpy.types.WorldLighting.*ambient*", "render/blender_render/lighting/ambient_occlusion.html"),
("bpy.types.WorldLighting.*environment*", "render/blender_render/lighting/ambient_light.html"),
# only other WorldLighting props are in Gather panel
("bpy.types.WorldLighting.*", "render/blender_render/lighting/ambient_occlusion.html#gather"),
# *** Cycles ***
("bpy.types.CyclesRenderSettings.*", "render/cycles/settings/integrator.html"),
("bpy.types.CyclesVisibilitySettings.*", "render/cycles/settings/light_paths.html#ray-visibility"),
("bpy.types.CyclesWorldSettings.*", "render/cycles/world.html"),
("bpy.types.SceneRenderLayer.*pass*", "render/blender_render/passes.html"),
("bpy.types.SceneRenderLayer.*", "render/post_process/layers.html"),
("bpy.types.Cycles*", "render/cycles"),
# Currently all manual links on all sockets and values (such as Fac, Roughness, Color...) are NodeSocket* type.
# It'd be much better if the name of the socket could be used for the manual reference
("bpy.types.NodeSocket*", "editors/node_editor/node_parts.html"), # no generic socket type page exists, but composite types are the same
# *** Cycles Material Nodes ***
# Outputs
("bpy.types.ShaderNodeOutputLamp.*", "render/cycles/lamps.html"),
("bpy.types.ShaderNodeOutputMaterial.*", "render/cycles/materials"),
("bpy.types.ShaderNodeOutputWorld.*", "render/cycles/world.html"),
# Shaders
("bpy.types.ShaderNodeAddShader.*", "render/cycles/nodes/shaders.html#mix-and-add"),
("bpy.types.ShaderNodeAmbientOcclusion.*", "render/cycles/nodes/shaders.html#ambient-occlusion"),
("bpy.types.ShaderNodeBackground.*", "render/cycles/nodes/shaders.html#background"),
("bpy.types.ShaderNodeBsdfAnisotropic.*", "render/cycles/nodes/shaders.html#anisotropic"),
("bpy.types.ShaderNodeBsdfDiffuse.*", "render/cycles/nodes/shaders.html#diffuse"),
("bpy.types.ShaderNodeBsdfGlass.*", "render/cycles/nodes/shaders.html#glass"),
("bpy.types.ShaderNodeBsdfGlossy.*", "render/cycles/nodes/shaders.html#glossy"),
("bpy.types.ShaderNodeBsdfHair.*", "render/cycles/nodes/shaders.html#hair"),
("bpy.types.ShaderNodeBsdfRefraction.*", "render/cycles/nodes/shaders.html#refraction"),
("bpy.types.ShaderNodeBsdfToon.*", "render/cycles/nodes/shaders.html#toon"),
("bpy.types.ShaderNodeBsdfTranslucent.*", "render/cycles/nodes/shaders.html#translucent"),
("bpy.types.ShaderNodeBsdfTransparent.*", "render/cycles/nodes/shaders.html#transparent"),
("bpy.types.ShaderNodeBsdfVelvet.*", "render/cycles/nodes/shaders.html#velvet"),
("bpy.types.ShaderNodeEmission.*", "render/cycles/nodes/shaders.html#emission"),
("bpy.types.ShaderNodeHoldout.*", "render/cycles/nodes/shaders.html#holdout"),
("bpy.types.ShaderNodeMixShader.*", "render/cycles/nodes/shaders.html#mix-and-add"),
("bpy.types.ShaderNodeSubsurfaceScattering.*", "render/cycles/nodes/shaders.html#subsurface-scattering"),
("bpy.types.ShaderNodeVolumeAbsorption.*", "render/cycles/nodes/shaders.html#volume-absorption"),
("bpy.types.ShaderNodeVolumeScatter.*", "render/cycles/nodes/shaders.html#volume-scatter"),
# Textures
("bpy.types.ShaderNodeTexBrick.*", "render/cycles/nodes/textures.html#brick-texture"),
("bpy.types.ShaderNodeTexChecker.*", "render/cycles/nodes/textures.html#checker-texture"),
("bpy.types.ShaderNodeTexEnvironment.*", "render/cycles/nodes/textures.html#environment-texture"),
("bpy.types.ShaderNodeTexGradient.*", "render/cycles/nodes/textures.html#gradient-texture"),
("bpy.types.ShaderNodeTexImage.*", "render/cycles/nodes/textures.html#image-texture"),
("bpy.types.ShaderNodeTexMagic.*", "render/cycles/nodes/textures.html#magic-texture"),
("bpy.types.ShaderNodeTexMusgrave.*", "render/cycles/nodes/textures.html#musgrave-texture"),
("bpy.types.ShaderNodeTexNoise.*", "render/cycles/nodes/textures.html#noise-texture"),
("bpy.types.ShaderNodeTexSky.*", "render/cycles/nodes/textures.html#sky-texture"),
("bpy.types.ShaderNodeTexVoronoi.*", "render/cycles/nodes/textures.html#voronoi-texture"),
("bpy.types.ShaderNodeTexWave.*", "render/cycles/nodes/textures.html#wave-texture"),
# Other
("bpy.types.ShaderNodeAttribute.*", "render/cycles/nodes/more.html#attribute"),
("bpy.types.ShaderNodeBlackbody.*", "render/cycles/nodes/more.html#blackbody"),
# ("bpy.types.ShaderNodeBrightContrast.*", ""),
("bpy.types.ShaderNodeBump.*", "render/cycles/nodes/more.html#bump"),
("bpy.types.ShaderNodeCameraData.*", "render/cycles/nodes/input.html#camera-data"),
# ("bpy.types.ShaderNodeCombineHSV.*", ""),
# ("bpy.types.ShaderNodeCombineRGB.*", ""),
("bpy.types.ShaderNodeFresnel.*", "render/cycles/nodes/more.html#fresnel"),
# ("bpy.types.ShaderNodeGamma.*", ""),
("bpy.types.ShaderNodeGeometry.*", "render/cycles/nodes/more.html#geometry"),
("bpy.types.ShaderNodeHairInfo.*", "render/cycles/nodes/input.html#hair-info"),
# ("bpy.types.ShaderNodeHueSaturation.*", ""),
# ("bpy.types.ShaderNodeInvert.*", ""),
("bpy.types.ShaderNodeLayerWeight.*", "render/cycles/nodes/more.html#layer-weight"),
("bpy.types.ShaderNodeLightFalloff.*", "render/cycles/nodes/more.html#light-falloff"),
("bpy.types.ShaderNodeLightPath.*", "render/cycles/nodes/more.html#light-path"),
("bpy.types.ShaderNodeMapping.*", "render/cycles/nodes/more.html#mapping"),
# # ("bpy.types.ShaderNodeMath.*", ""),
# ("bpy.types.ShaderNodeMixRGB.*", ""),
("bpy.types.ShaderNodeNormalMap.*", "render/cycles/nodes/more.html#normal-map"),
("bpy.types.ShaderNodeObjectInfo.*", "render/cycles/nodes/more.html#object-info"),
("bpy.types.ShaderNodeParticleInfo.*", "render/cycles/nodes/more.html#particle-info"),
("bpy.types.ShaderNodeRGB.*", "render/cycles/nodes/more.html#rgb"),
# ("bpy.types.ShaderNodeRGBCurve.*", ""),
# ("bpy.types.ShaderNodeRGBToBW.*", ""),
# ("bpy.types.ShaderNodeSeparateHSV.*", ""),
# ("bpy.types.ShaderNodeSeparateRGB.*", ""),
("bpy.types.ShaderNodeTangent.*", "render/cycles/nodes/more.html#tangent"),
("bpy.types.ShaderNodeTexCoord.*", "render/cycles/nodes/more.html#texture-coordinates"),
("bpy.types.ShaderNodeValue.*", "render/cycles/nodes/more.html#value"),
# ("bpy.types.ShaderNodeVectorCurve.*", ""),
("bpy.types.ShaderNodeVectorMath.*", "render/cycles/nodes/more.html"), # TODO doc
("bpy.types.ShaderNodeVectorTransform.*", "render/cycles/nodes/more.html#vector-transform"),
("bpy.types.ShaderNodeWavelength.*", "render/cycles/nodes/more.html#wavelength"),
("bpy.types.ShaderNodeWireframe.*", "render/cycles/nodes/more.html#wireframe"),
("bpy.types.ShaderNodeGroup.*", "editors/node_editor/node_groups.html"),
("bpy.types.ShaderNode*", "render/cycles/nodes"),
("bpy.types.ShaderNodeScript.*", "render/cycles/osl.html"),
# *** Compositing Nodes ***
# Input
("bpy.types.CompositorNodeBokehImage.*", "compositing/types/input/bokeh_image.html"),
("bpy.types.CompositorNodeImage.*", "compositing/types/input/image.html"),
("bpy.types.CompositorNodeMask.*", "compositing/types/input/mask.html"),
("bpy.types.CompositorNodeMovieClip.*", "compositing/types/input/movie_clip.html"),
("bpy.types.CompositorNodeRGB.*", "compositing/types/input/rgb.html"),
("bpy.types.CompositorNodeRLayers.*", "compositing/types/input/render_layers.html"),
("bpy.types.CompositorNodeTexture.*", "compositing/types/input/texture.html"),
("bpy.types.CompositorNodeTime.*", "compositing/types/input/time.html"),
("bpy.types.CompositorNodeTrackPos.*", "compositing/types/input/track_position.html"),
("bpy.types.CompositorNodeValue.*", "compositing/types/input/value.html"),
# Output
("bpy.types.CompositorNodeComposite.*", "compositing/types/output/composite.html"),
("bpy.types.CompositorNodeLevels.*", "compositing/types/output/levels.html"),
("bpy.types.CompositorNodeOutputFile*", "compositing/types/output/file.html"),
("bpy.types.CompositorNodeSplitViewer.*", "compositing/types/output/split_viewer.html"),
("bpy.types.CompositorNodeViewer.*", "compositing/types/output/viewer.html"),
# Color
("bpy.types.CompositorNodeAlphaOver.*", "compositing/types/color/alpha_over.html"),
("bpy.types.CompositorNodeBrightContrast.*", "compositing/types/color/bright_contrast.html"),
("bpy.types.CompositorNodeColorBalance.*", "compositing/types/color/bright_contrast.html"),
("bpy.types.CompositorNodeColorCorrection.*", "compositing/types/color/color_correction.html"),
("bpy.types.CompositorNodeCurveRGB.*", "compositing/types/color/rgb_curves.html"),
("bpy.types.CompositorNodeGamma.*", "compositing/types/color/gamma.html"),
("bpy.types.CompositorNodeHueCorrect.*", "compositing/types/color/hue_correct.html"),
("bpy.types.CompositorNodeHueSat.*", "compositing/types/color/hue_saturation.html"),
("bpy.types.CompositorNodeInvert.*", "compositing/types/color/invert.html"),
("bpy.types.CompositorNodeMixRGB.*", "compositing/types/color/mix.html"),
("bpy.types.CompositorNodeTonemap.*", "compositing/types/color/tone_map.html"),
("bpy.types.CompositorNodeZcombine.*", "compositing/types/color/z_combine.html"),
# Converter
("bpy.types.CompositorNodeSep*", "compositing/types/converter/combine_separate.html"),
("bpy.types.CompositorNodeComb*", "compositing/types/converter/combine_separate.html"),
("bpy.types.CompositorNodeIDMask.*", "compositing/types/converter/id_mask.html"),
("bpy.types.CompositorNodeMath.*", "compositing/types/converter/math.html"),
("bpy.types.CompositorNodePremulKey.*", "compositing/types/converter/alpha_convert.html"),
("bpy.types.CompositorNodeRGBToBW.*", "compositing/types/converter/rgb_to_bw.html"),
("bpy.types.CompositorNodeSetAlpha.*", "compositing/types/converter/set_alpha.html"),
# Filter
("bpy.types.CompositorNodeBilateralblur.*", "compositing/types/filter/bilateral_blur.html"),
("bpy.types.CompositorNodeBlur.*", "compositing/types/filter/blur_node.html"),
("bpy.types.CompositorNodeBokehBlur.*", "compositing/types/filter/bokeh_blur.html"),
("bpy.types.CompositorNodeDBlur.*", "compositing/types/filter/directional_blur.html"),
("bpy.types.CompositorNodeDefocus.*", "compositing/types/filter/defocus.html"),
("bpy.types.CompositorNodeDespeckle.*", "compositing/types/filter/despeckle.html"),
("bpy.types.CompositorNodeDilateErode.*", "compositing/types/filter/dilate_erode.html"),
("bpy.types.CompositorNodeFilter.*", "compositing/types/filter/filter_node.html"),
("bpy.types.CompositorNodeGlare.*", "compositing/types/filter/glare.html"),
("bpy.types.CompositorNodeInpaint.*", "compositing/types/filter/inpaint.html"),
("bpy.types.CompositorNodePixelate.*", "compositing/types/filter/pixelate.html"),
("bpy.types.CompositorNodeSunBeams.*", "compositing/types/filter/sun_beams.html"),
("bpy.types.CompositorNodeVecBlur.*", "compositing/types/filter/vector_blur.html"),
# Vector
("bpy.types.CompositorNodeCurveVec.*", "compositing/types/vector/vector_curves.html"),
("bpy.types.CompositorNodeMapRange.*", "compositing/types/vector/map_range.html"),
("bpy.types.CompositorNodeMapValue.*", "compositing/types/vector/map_value.html"),
("bpy.types.CompositorNodeNormal.*", "compositing/types/vector/normal.html"),
("bpy.types.CompositorNodeNormalize.*", "compositing/types/vector/normalize.html"),
# Matte
("bpy.types.CompositorNodeBoxMask.*", "compositing/types/matte/box_mask.html"),
("bpy.types.CompositorNodeChannelMatte.*", "compositing/types/matte/channel_key.html"),
("bpy.types.CompositorNodeChromaMatte.*", "compositing/types/matte/chroma_key.html"),
("bpy.types.CompositorNodeColorMatte.*", "compositing/types/matte/color_key.html"),
("bpy.types.CompositorNodeColorSpill.*", "compositing/types/matte/color_spill_key.html"),
("bpy.types.CompositorNodeDiffMatte.*", "compositing/types/matte/difference_key.html"),
("bpy.types.CompositorNodeDistanceMatte.*", "compositing/types/matte/difference_key.html"),
("bpy.types.CompositorNodeDoubleEdgeMask.*", "compositing/types/matte/double_edge_mask.html"),
("bpy.types.CompositorNodeEllipseMask.*", "compositing/types/matte/ellipse_mask.html"),
("bpy.types.CompositorNodeKeying.*", "compositing/types/matte/keying.html"),
("bpy.types.CompositorNodeKeyingScreen.*", "compositing/types/matte/keying_screen.html"),
("bpy.types.CompositorNodeLumaMatte.*", "compositing/types/matte/luminance_key.html"),
# Distort
("bpy.types.CompositorNodeCrop.*", "compositing/types/distort/crop.html"),
("bpy.types.CompositorNodeDisplace.*", "compositing/types/distort/displace.html"),
("bpy.types.CompositorNodeFlip.*", "compositing/types/distort/flip.html"),
("bpy.types.CompositorNodeLensdist.*", "compositing/types/distort/lens.html"),
("bpy.types.CompositorNodeMapUV.*", "compositing/types/distort/map_uv.html"),
("bpy.types.CompositorNodeMovieDistortion.*", "compositing/types/distort/movie_distortion.html"),
("bpy.types.CompositorNodePlaneTrackDeform.*", "compositing/types/distort/plane_track_deform.html"),
("bpy.types.CompositorNodeRotate.*", "compositing/types/distort/rotate.html"),
("bpy.types.CompositorNodeScale.*", "compositing/types/distort/scale.html"),
("bpy.types.CompositorNodeStabilize.*", "compositing/types/distort/stabilize_2d.html"),
("bpy.types.CompositorNodeTransform.*", "compositing/types/distort/transform.html"),
("bpy.types.CompositorNodeTranslate.*", "compositing/types/distort/translate.html"),
# Other
("bpy.types.CompositorNodeGroup.*", "editors/node_editor/node_groups.html"),
("bpy.types.CompositorNode*", "compositing/types"), # catch anything else
("bpy.types.ColorRamp*", "interface/extended_controls.html#color-ramp-widget"),
# *** Sequencer ***
("bpy.types.AddSequence.*", "editors/sequencer/strips/effects/add.html"),
("bpy.types.AdjustmentSequence.*", "editors/sequencer/strips/effects/adjustment.html"),
("bpy.types.AlphaOverSequence.", "editors/sequencer/strips/effects/alpha_over_under_overdrop.html"),
("bpy.types.AlphaUnderSequence.*", "editors/sequencer/strips/effects/alpha_over_under_overdrop.html"),
("bpy.types.ColorSequence.*", "editors/sequencer/strips/effects/color.html"),
("bpy.types.CrossSequence.*", "editors/sequencer/strips/effects/cross.html"),
("bpy.types.EffectSequence.*", "editors/sequencer/strips/effects"),
("bpy.types.GammaCrossSequence.*", "editors/sequencer/strips/effects/cross.html"),
("bpy.types.GaussianBlurSequence.*", "editors/sequencer/strips/effects/blur.html"),
("bpy.types.GlowSequence.*", "editors/sequencer/strips/effects/glow.html"),
("bpy.types.ImageSequence.*", "editors/sequencer/strips/image_movie.html"),
("bpy.types.MaskSequence.*", "editors/sequencer/strips/mask.html"),
("bpy.types.MetaSequence.*", "editors/sequencer/strips/meta.html"),
("bpy.types.MovieSequence.*", "editors/sequencer/strips/image_movie.html"),
("bpy.types.MulticamSequence.*", "editors/sequencer/strips/effects/multicam.html"),
("bpy.types.MultiplySequence.*", "editors/sequencer/strips/effects/multiply.html"),
("bpy.types.OverDropSequence.*", "editors/sequencer/strips/effects/alpha_over_under_overdrop.html"),
("bpy.types.SceneSequence.*", "editors/sequencer/strips/scene.html"),
("bpy.types.SoundSequence.*", "editors/sequencer/strips/audio.html"),
("bpy.types.SpeedControlSequence.*", "editors/sequencer/strips/effects/speed_control.html"),
("bpy.types.SubtractSequence.*", "editors/sequencer/strips/effects/subtract.html"),
("bpy.types.TextSequence.*", "editors/sequencer/strips/effects/text.html"),
("bpy.types.TransformSequence.*", "editors/sequencer/strips/effects/transform.html"),
("bpy.types.WipeSequence.*", "editors/sequencer/strips/effects/wipe.html"),
# Modifiers
("bpy.types.BrightContrastModifier.*", "editors/sequencer/properties/modifiers.html"),
("bpy.types.ColorBalanceModifier.*", "editors/sequencer/properties/modifiers.html"),
("bpy.types.CurvesModifier.*", "editors/sequencer/properties/modifiers.html"),
("bpy.types.HueCorrectModifier.*", "editors/sequencer/properties/modifiers.html"),
# ("bpy.types.SequenceColorBalanceData.*", ""),
# ("py.types.SequenceCrop.*", ""),
# ("bpy.types.SequenceEditor.*", ""),
# ("bpy.types.SequenceElement.*", ""),
("bpy.types.SequenceModifier.*", "editors/sequencer/properties/modifiers.html"),
("bpy.types.SequenceProxy.*", "editors/sequencer/properties/proxy_timecode.html"),
# ("bpy.types.SequenceTransform.*", ""),
("bpy.types.Sequence.*", "editors/sequencer"), # catch anything else
# *** ID Subclasses (cont.) Object Data ***
("bpy.types.Mesh.*", "modeling/meshes"), # catchall, todo - refine
("bpy.types.MetaBall.*", "modeling/metas"), # catchall, todo - refine
("bpy.types.TextCurve.*", "modeling/texts"), # catchall, todo - refine
("bpy.types.Armature.*", "rigging/armatures"), # catchall, todo - refine
("bpy.types.Camera.*", "editors/3dview/object/types/camera/index.html"), # catchall, todo - refine
("bpy.types.PointLamp.*", "render/blender_render/lighting/lamps/point"), # catchall, todo - refine
("bpy.types.AreaLamp.*", "render/blender_render/lighting/lamps/area"), # catchall, todo - refine
("bpy.types.SpotLamp.*", "render/blender_render/lighting/lamps/spot"), # catchall, todo - refine
("bpy.types.SunLamp.*", "render/blender_render/lighting/lamps/sun"), # catchall, todo - refine
("bpy.types.HemiLamp.*", "render/blender_render/lighting/lamps/hemi.html"), # catchall, todo - refine
("bpy.types.Lamp.*", "render/blender_render/lighting"), # catchall, todo - refine
# --- Animation ---
("bpy.types.Keyframe.*", "animation/actions.html"),
("bpy.types.FCurve.*", "editors/graph_editor/fcurves.html"),
# --- Rigging ---
("bpy.types.Bone.*", "rigging/armatures/bones.html"),
("bpy.types.EditBone.*", "rigging/armatures/bones.html"),
("bpy.types.PoseBone.*", "rigging/posing"),
# --- World ---
("bpy.types.World.*", "render/blender_render/world"),
("bpy.types.Texture.*", "render/blender_render/textures"),
# *** Spaces ***
("bpy.types.SpaceConsole.*", "editors/python_console.html"),
("bpy.types.SpaceDopeSheetEditor.*", "editors/dope_sheet"),
("bpy.types.SpaceFileBrowser.*", "editors/file_browser/introduction.html"),
("bpy.types.SpaceGraphEditor.*", "editors/graph_editor"),
("bpy.types.SpaceImageEditor.*", "editors/uv_image"),
("bpy.types.SpaceInfo.*", "editors/info"),
("bpy.types.SpaceLogicEditor.*", "editors/logic_editor.html"),
("bpy.types.SpaceNLA.*", "editors/nla.html"),
("bpy.types.SpaceNodeEditor.*", "editors/node_editor"),
("bpy.types.SpaceOutliner.*", "editors/outliner.html"),
("bpy.types.SpaceProperties.*", "editors/properties"),
("bpy.types.SpaceSequenceEditor.*", "editors/sequencer"),
("bpy.types.SpaceTextEditor.*", "editors/text_editor.html"),
("bpy.types.SpaceTimeline.*", "editors/timeline.html"),
("bpy.types.SpaceUVEditor.*", "editors/uv_image"),
("bpy.types.SpaceUserPreferences.*", "preferences"),
("bpy.types.SpaceView3D.*", "editors/3dview"),
("bpy.types.Space.*", "editors"), # Catchall
# === Operators ===
# Catch all only for now!
# *** Window/Screen ***
("bpy.ops.action.*", "animation/actions.html"),
("bpy.ops.anim.*", "animation"),
("bpy.ops.armature.*", "rigging/armatures/"),
("bpy.ops.boid.*", "physics/particles/physics/boids.html"),
# ("bpy.ops.brush.*", ""), # TODO
("bpy.ops.buttons.*", "interface/buttons_and_controls.html"),
("bpy.ops.camera.*", "editors/3dview/object/types/camera/index.html"),
("bpy.ops.clip.*", "editors/movie_clip_editor/index.html#movie-clip-editor"),
("bpy.ops.cloth.*", "physics/cloth"),
("bpy.ops.console.*", "editors/python_console.html"),
("bpy.ops.constraint.*", "rigging/constraints"),
("bpy.ops.curve.*", "modeling/curves"),
("bpy.ops.dpaint.*", "physics/dynamic_paint"),
# ("bpy.ops.ed.*", ""), # TODO, this is for internal use only?
# ("bpy.ops.export_anim.*", ""), # TODO
# ("bpy.ops.export_mesh.*", ""), # TODO
# ("bpy.ops.export_scene.*", ""), # TODO
("bpy.ops.file.*", ""),
("bpy.ops.fluid.*", "physics/fluid"),
("bpy.ops.font.*", "modeling/texts"),
("bpy.ops.gpencil.*", "interface/grease_pencil/index.html"),
("bpy.ops.graph.*", "editors/graph_editor/fcurves.html"),
("bpy.ops.group.*", "editors/3dview/object/relationships/groups.html"),
("bpy.ops.image.*", "editors/uv_image/texturing/textures/image.html"),
# ("bpy.ops.import_anim.*", ""), # TODO
# ("bpy.ops.import_curve.*", ""), # TODO
# ("bpy.ops.import_mesh.*", ""), # TODO
# ("bpy.ops.import_scene.*", ""), # TODO
# ("bpy.ops.info.*", ""), # TODO
("bpy.ops.lamp.*", "render/blender_render/lighting"), # --- todo ... all below ---
# ("bpy.ops.lattice.*", ""), # TODO
("bpy.ops.logic.*", "game_engine/logic"),
("bpy.ops.marker.*", "animation/markers.html"),
("bpy.ops.mask.*", "editors/movie_clip_editor/masking.html"),
("bpy.ops.material.new", "render/blender_render/materials/assigning_a_material.html#creating-a-new-material"),
("bpy.ops.material.*", "render/blender_render"),
("bpy.ops.mesh.vertices_smooth", "modeling/meshes/editing/deforming/smooth.html"),
("bpy.ops.view3d.edit_mesh_extrude*", "modeling/meshes/editing/duplicating/extrude.html"),
("bpy.ops.mesh.subdivide", "modeling/meshes/editing/subdividing/subdivide.html"),
("bpy.ops.mesh.loopcut_slide", "modeling/meshes/editing/subdividing/loop_subdivide.html"),
("bpy.ops.mesh.bridge-edge-loops", "modeling/meshes/editing/edges.html#bridge-edge-loops"),
("bpy.ops.mesh.duplicate_move", "modeling/meshes/editing/duplicating/duplicate.html"),
("bpy.ops.mesh.spin", "modeling/meshes/editing/duplicating/spin.html"),
("bpy.ops.mesh.screw", "modeling/meshes/editing/duplicating/screw.html"),
("bpy.ops.mesh.knife*", "modeling/meshes/editing/subdividing/knife_subdivide.html"),
("bpy.ops.mesh.bisect", "modeling/meshes/editing/subdividing/bisect.html"),
("bpy.ops.mball.*", "modeling/metas"),
("bpy.ops.mesh.*", "modeling/meshes"),
("bpy.ops.nla.*", "editors/nla.html"),
# ("bpy.ops.node.*", ""), # TODO
("bpy.ops.object.*shape_key*", "animation/shape_keys.html"),
("bpy.ops.object.join_shapes", "animation/shape_keys.html"),
("bpy.ops.object.*", "editors/3dview/transform"),
("bpy.ops.outliner.*", "editors/outliner.html"),
# ("bpy.ops.paint.*", ""), # TODO
("bpy.ops.particle.*", "physics/particles"),
("bpy.ops.pose.*", "rigging/posing"),
("bpy.ops.poselib.*", "rigging/posing/pose_library.html"),
# ("bpy.ops.ptcache.*", ""), # TODO
("bpy.ops.render.play-rendered-anim", "render/output/display.html#animation-playback"),
("bpy.ops.render.*", "render"), # catchall
("bpy.ops.scene.*", "data_system/scenes.html"),
("bpy.ops.screen.*", "interface/window_system"),
("bpy.ops.script.*", "advanced/scripting"),
("bpy.ops.sculpt.*", "painting_sculpting/sculpting/index.html"),
("bpy.ops.sequencer.*", "editors/sequencer"),
# ("bpy.ops.sketch.*", ""), # TODO
("bpy.ops.sound.*", "editors/3dview/object/types/speaker.html"),
("bpy.ops.surface.*", "modeling/surfaces"),
("bpy.ops.text.*", "editors/text_editor.html"),
("bpy.ops.texture.*", "render/blender_render/textures"),
("bpy.ops.time.*", "editors/timeline.html"),
("bpy.ops.transform.edge_slide", "modeling/meshes/editing/edges.html#edge-slide"),
("bpy.ops.transform.vert_slide", "modeling/meshes/editing/vertices.html#vertex-slide"),
("bpy.ops.transform.shrink_fatten", "modeling/meshes/editing/deforming/shrink-fatten.html"),
("bpy.ops.transform.push_pull", "modeling/meshes/editing/deforming/push_pull.html"),
("bpy.ops.transform.*", "editors/3dview/transform/transform_control"),
("bpy.ops.ui.*", "interface"),
("bpy.ops.uv.*", "editors/uv_image/index.html"),
# ("bpy.ops.view2d.*", ""), # TODO
("bpy.ops.view3d.*", "editors/3dview/"),
("bpy.ops.wm.*", "interface/window_system"),
("bpy.ops.world.*", "render/blender_render/world"),
# === Tool Settings ===
("bpy.types.MeshStatVis.*", "modeling/meshes/mesh_analysis.html"),
)
# may have 'url_reference_mapping'... etc later
|