Skip to content

Commit 2ae6f08

Browse files
committed
Add API categories to README (cztomczak#326)...
Update apidocs.py.
1 parent cc227fd commit 2ae6f08

File tree

3 files changed

+129
-44
lines changed

3 files changed

+129
-44
lines changed

README.md

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ Table of contents:
1010
* [Thanks](#thanks)
1111
* [Quick links](#quick-links)
1212
* [Docs](#docs)
13-
* [API reference](#api-reference)
13+
* [API categories](#api-categories)
14+
* [API index](#api-index)
1415

1516

1617
## Introduction
@@ -128,7 +129,65 @@ directly.
128129
- [Migration guide](docs/Migration-guide.md)
129130
- [Tutorial](docs/Tutorial.md)
130131

131-
### API reference
132+
133+
### API categories
134+
135+
#### Modules
136+
137+
* [cefpython](cefpython.md#cefpython) module
138+
139+
140+
#### Settings
141+
142+
* [ApplicationSettings](ApplicationSettings.md#application-settings) dictionary
143+
* [BrowserSettings](BrowserSettings.md#browser-settings) dictionary
144+
* [CommandLineSwitches](CommandLineSwitches.md#command-line-switches) dictionary
145+
146+
147+
#### Classes and objects
148+
149+
* [Browser](Browser.md#browser-object) object
150+
* [Callback](Callback.md#callback-object) object
151+
* [Cookie](Cookie.md#cookie-class) class
152+
* [CookieManager](CookieManager.md#cookiemanager-class) class
153+
* [DpiAware](DpiAware.md#dpiaware-class) class (Win)
154+
* [DragData](DragData.md#dragdata-object) object
155+
* [Frame](Frame.md#frame-object) object
156+
* [Image](Image.md#image-object) object
157+
* [JavascriptBindings](JavascriptBindings.md#javascriptbindings-class) class
158+
* [JavascriptCallback](JavascriptCallback.md#javascriptcallback-object) object
159+
* [PaintBuffer](PaintBuffer.md#paintbuffer-object) object
160+
* [Request](Request.md#request-class) class
161+
* [Response](Response.md#response-object) object
162+
* [WebPluginInfo](WebPluginInfo.md#webplugininfo-object) object
163+
* [WebRequest](WebRequest.md#webrequest-class) class
164+
* [WindowInfo](WindowInfo.md#windowinfo-class) class
165+
* [WindowUtils](WindowUtils.md#windowutils-class) class
166+
167+
168+
#### Handlers (interfaces)
169+
170+
* [DisplayHandler](DisplayHandler.md#displayhandler-interface)
171+
* [DownloadHandler](DownloadHandler.md#downloadhandler)
172+
* [FocusHandler](FocusHandler.md#focushandler-interface)
173+
* [JavascriptDialogHandler](JavascriptDialogHandler.md#javascriptdialoghandler-interface)
174+
* [KeyboardHandler](KeyboardHandler.md#keyboardhandler-interface)
175+
* [LifespanHandler](LifespanHandler.md#lifespanhandler-interface)
176+
* [LoadHandler](LoadHandler.md#loadhandler-interface)
177+
* [RenderHandler](RenderHandler.md#renderhandler-interface)
178+
* [RequestHandler](RequestHandler.md#requesthandler-interface)
179+
* [ResourceHandler](ResourceHandler.md#resourcehandler-interface)
180+
* [V8ContextHandler](V8ContextHandler.md#v8contexthandler-interface)
181+
182+
183+
#### Other interfaces
184+
185+
* [CookieVisitor](CookieVisitor.md#cookievisitor-interface) interface
186+
* [StringVisitor](StringVisitor.md#stringvisitor-interface) interface
187+
* [WebRequestClient](WebRequestClient.md#webrequestclient-interface) interface
188+
189+
190+
### API index
132191

133192
* [Application settings](api/ApplicationSettings.md#application-settings)
134193
* [accept_language_list](api/ApplicationSettings.md#accept_language_list)

api/API-categories.md

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,55 +5,55 @@
55

66
### Modules
77

8-
* [cefpython](cefpython.md) module
8+
* [cefpython](cefpython.md#cefpython) module
99

1010

1111
### Settings
1212

13-
* [ApplicationSettings](ApplicationSettings.md) dictionary
14-
* [BrowserSettings](BrowserSettings.md) dictionary
15-
* [CommandLineSwitches](CommandLineSwitches.md) dictionary
13+
* [ApplicationSettings](ApplicationSettings.md#application-settings) dictionary
14+
* [BrowserSettings](BrowserSettings.md#browser-settings) dictionary
15+
* [CommandLineSwitches](CommandLineSwitches.md#command-line-switches) dictionary
1616

1717

1818
### Classes and objects
1919

20-
* [Browser](Browser.md) object
21-
* [Callback](Callback.md) object
22-
* [Cookie](Cookie.md) class
23-
* [CookieManager](CookieManager.md) class
24-
* [DpiAware](DpiAware.md) class (Win)
25-
* [DragData](DragData.md) object
26-
* [Frame](Frame.md) object
27-
* [Image](Image.md) object
28-
* [JavascriptBindings](JavascriptBindings.md) class
29-
* [JavascriptCallback](JavascriptCallback.md) object
30-
* [PaintBuffer](PaintBuffer.md) object
31-
* [Request](Request.md) class
32-
* [Response](Response.md) object
33-
* [WebPluginInfo](WebPluginInfo.md) object
34-
* [WebRequest](WebRequest.md) class
35-
* [WindowInfo](WindowInfo.md) class
36-
* [WindowUtils](WindowUtils.md) class
20+
* [Browser](Browser.md#browser-object) object
21+
* [Callback](Callback.md#callback-object) object
22+
* [Cookie](Cookie.md#cookie-class) class
23+
* [CookieManager](CookieManager.md#cookiemanager-class) class
24+
* [DpiAware](DpiAware.md#dpiaware-class) class (Win)
25+
* [DragData](DragData.md#dragdata-object) object
26+
* [Frame](Frame.md#frame-object) object
27+
* [Image](Image.md#image-object) object
28+
* [JavascriptBindings](JavascriptBindings.md#javascriptbindings-class) class
29+
* [JavascriptCallback](JavascriptCallback.md#javascriptcallback-object) object
30+
* [PaintBuffer](PaintBuffer.md#paintbuffer-object) object
31+
* [Request](Request.md#request-class) class
32+
* [Response](Response.md#response-object) object
33+
* [WebPluginInfo](WebPluginInfo.md#webplugininfo-object) object
34+
* [WebRequest](WebRequest.md#webrequest-class) class
35+
* [WindowInfo](WindowInfo.md#windowinfo-class) class
36+
* [WindowUtils](WindowUtils.md#windowutils-class) class
3737

3838

3939
### Handlers (interfaces)
4040

41-
* [DisplayHandler](DisplayHandler.md)
42-
* [DownloadHandler](DownloadHandler.md)
43-
* [FocusHandler](FocusHandler.md)
44-
* [JavascriptDialogHandler](JavascriptDialogHandler.md)
45-
* [KeyboardHandler](KeyboardHandler.md)
46-
* [LifespanHandler](LifespanHandler.md)
47-
* [LoadHandler](LoadHandler.md)
48-
* [RenderHandler](RenderHandler.md)
49-
* [RequestHandler](RequestHandler.md)
50-
* [ResourceHandler](ResourceHandler.md)
51-
* [V8ContextHandler](V8ContextHandler.md)
41+
* [DisplayHandler](DisplayHandler.md#displayhandler-interface)
42+
* [DownloadHandler](DownloadHandler.md#downloadhandler)
43+
* [FocusHandler](FocusHandler.md#focushandler-interface)
44+
* [JavascriptDialogHandler](JavascriptDialogHandler.md#javascriptdialoghandler-interface)
45+
* [KeyboardHandler](KeyboardHandler.md#keyboardhandler-interface)
46+
* [LifespanHandler](LifespanHandler.md#lifespanhandler-interface)
47+
* [LoadHandler](LoadHandler.md#loadhandler-interface)
48+
* [RenderHandler](RenderHandler.md#renderhandler-interface)
49+
* [RequestHandler](RequestHandler.md#requesthandler-interface)
50+
* [ResourceHandler](ResourceHandler.md#resourcehandler-interface)
51+
* [V8ContextHandler](V8ContextHandler.md#v8contexthandler-interface)
5252

5353

5454
### Other interfaces
5555

56-
* [CookieVisitor](CookieVisitor.md) interface
57-
* [StringVisitor](StringVisitor.md) interface
58-
* [WebRequestClient](WebRequestClient.md) interface
56+
* [CookieVisitor](CookieVisitor.md#cookievisitor-interface) interface
57+
* [StringVisitor](StringVisitor.md#stringvisitor-interface) interface
58+
* [WebRequestClient](WebRequestClient.md#webrequestclient-interface) interface
5959

tools/apidocs.py

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,44 @@ def update_api_index_file(api_links):
4646

4747

4848
def update_readme_file(api_links):
49-
"""Update root/README.md with API reference links."""
49+
"""Update root/README.md with API categories and index links.
50+
API categories are copied from API-categories.md which is
51+
generated manually. """
5052
api_links = api_links.replace("](", "](api/")
5153
readme_file = os.path.join(ROOT_DIR, "README.md")
5254
with open(readme_file, "rb") as fo:
53-
current_contents = fo.read().decode("utf-8")
54-
contents = current_contents
55-
contents = re.sub((r"### API reference\s+"
56-
r"(\s*\*[ ]\[[^\r\n\[\]]+\]\([^\r\n()]+\)\s+)*"),
57-
("### API reference\r\n\r\n{api_links}"
55+
readme_contents = fo.read().decode("utf-8")
56+
contents = readme_contents
57+
58+
# Update API categories
59+
categories_file = os.path.join(API_DIR, "API-categories.md")
60+
with open(categories_file, "rb") as fo:
61+
categories_contents = fo.read().decode("utf-8")
62+
match = re.search(r"# API categories\s+(###[\s\S]+)",
63+
categories_contents)
64+
assert match and match.group(1), "Failed to parse API categories"
65+
categories_contents = match.group(1)
66+
categories_contents = categories_contents.replace("###", "####")
67+
re_find = r"### API categories[\s\S]+### API index"
68+
assert re.search(re_find, readme_contents), ("API categories not found"
69+
" in README")
70+
contents = re.sub(re_find,
71+
("### API categories\r\n\r\n{categories_contents}"
72+
"\r\n### API index"
73+
.format(categories_contents=categories_contents)),
74+
contents)
75+
76+
# Update API index
77+
re_find = (r"### API index\s+"
78+
r"(\s*\*[ ]\[[^\r\n\[\]]+\]\([^\r\n()]+\)\s+)*")
79+
assert re.search(re_find, readme_contents), ("API index not found"
80+
" in README")
81+
contents = re.sub(re_find,
82+
("### API index\r\n\r\n{api_links}"
5883
.format(api_links=api_links)),
5984
contents)
60-
if contents == current_contents:
85+
86+
if contents == readme_contents:
6187
print("No changes: /%s" % (os.path.basename(readme_file)))
6288
return
6389
with open(readme_file, "wb") as fo:

0 commit comments

Comments
 (0)