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
|
--- a/asciidoc.py 2010-10-17 14:01:35.000000000 +0800
+++ b/asciidoc.py 2010-10-17 14:11:07.000000000 +0800
@@ -4260,10 +4260,12 @@
self.include1 = {} # Holds include1::[] files for {include1:}.
self.dumping = False # True if asciidoc -c option specified.
- def load_file(self,fname,dir=None):
+ def load_file(self, fname, dir=None, include=[]):
"""
Loads sections dictionary with sections from file fname.
Existing sections are overlaid.
+ The 'include' list contains the section names to be loaded,
+ if 'inlude' is not specified all sections are loaded.
Return False if no file was found in any of the locations.
"""
if dir:
@@ -4317,9 +4319,14 @@
else:
sections[section] = contents
rdr.close()
+ if include:
+ for s in set(sections) - set(include):
+ del sections[s]
attrs = {}
self.load_sections(sections,attrs)
- self.loaded.append(os.path.realpath(fname))
+ if not include:
+ # If all sections are loaded mark this file as loaded.
+ self.loaded.append(os.path.realpath(fname))
document.update_attributes(attrs) # So they are available immediately.
return True
@@ -5314,13 +5321,17 @@
if o == '-c': config.dumping = True
if o == '-s': config.header_footer = False
if o == '-v': config.verbose = True
- # Check the infile exists.
- if infile != '<stdin>' and not os.path.isfile(infile):
- raise EAsciiDoc,'input file %s missing' % infile
- document.infile = infile
# Load asciidoc.conf files.
if not config.load_from_dirs('asciidoc.conf'):
raise EAsciiDoc,'configuration file asciidoc.conf missing'
+ # Check the infile exists.
+ if infile != '<stdin>':
+ if not os.path.isfile(infile):
+ raise EAsciiDoc,'input file %s missing' % infile
+ indir = os.path.dirname(infile)
+ config.load_file('asciidoc.conf', indir,
+ ['attributes','titles','specialchars'])
+ document.infile = infile
AttributeList.initialize()
# Open input file and parse document header.
reader.tabsize = config.tabsize
@@ -5343,10 +5354,9 @@
document.load_lang()
# Load local conf files (conf files in the input file directory).
if infile != '<stdin>':
- d =os.path.dirname(infile)
- config.load_from_dirs('asciidoc.conf', [d])
- config.load_backend([d])
- config.load_filters([d])
+ config.load_file('asciidoc.conf', indir)
+ config.load_backend([indir])
+ config.load_filters([indir])
# Load document specific configuration files.
f = os.path.splitext(infile)[0]
config.load_file(f + '.conf')
--- a/doc/asciidoc.txt 2010-10-17 14:11:34.000000000 +0800
+++ b/doc/asciidoc.txt 2010-10-17 14:13:21.000000000 +0800
@@ -3632,6 +3632,8 @@
the following order:
- `asciidoc.conf` from locations 1, 2, 3.
+- 'attributes', 'titles' and 'specialcharacters' sections from the
+ `asciidoc.conf` in location 4.
- The document header is parsed at this point.
- `<backend>.conf` and `<backend>-<doctype>.conf` from locations 1,
2,3.
|