Skip to content

Commit 9ef6c68

Browse files
committed
Class diagrams
1 parent 298a026 commit 9ef6c68

File tree

2 files changed

+69
-19
lines changed

2 files changed

+69
-19
lines changed

README.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1534,28 +1534,28 @@ class MyClass(metaclass=MyMetaClass):
15341534

15351535
#### Type diagram ('abc' is a str, str is a type, ...):
15361536
```text
1537-
┏━━━━━━━━━┯━━━━━━━━━━━━━┓
1538-
classes metaclasses
1539-
┠─────────┼─────────────┨
1540-
MyClass MyMetaClass
1541-
1542-
object ───→ type ←╮ ┃
1543-
↑ ╰───╯ ┃
1544-
str ───────╯
1545-
┗━━━━━━━━━┷━━━━━━━━━━━━━┛
1537+
+---------+-------------+
1538+
| classes | metaclasses |
1539+
+---------|-------------|
1540+
| MyClass > MyMetaClass |
1541+
| | v |
1542+
| object ---> type <+ |
1543+
| | ^ +---+ |
1544+
| str -------+ |
1545+
+---------+-------------+
15461546
```
15471547

15481548
#### Inheritance diagram (str inherits from object, ...):
15491549
```text
1550-
┏━━━━━━━━━┯━━━━━━━━━━━━━┓
1551-
classes metaclasses
1552-
┠─────────┼─────────────┨
1553-
MyClass MyMetaClass
1554-
1555-
object ←─── type
1556-
1557-
str
1558-
┗━━━━━━━━━┷━━━━━━━━━━━━━┛
1550+
+---------+-------------+
1551+
| classes | metaclasses |
1552+
+---------|-------------|
1553+
| MyClass | MyMetaClass |
1554+
| v | v |
1555+
| object <--- type |
1556+
| ^ | |
1557+
| str | |
1558+
+---------+-------------+
15591559
```
15601560

15611561

parse.js

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,50 @@ const TOC =
3030
'}\n' +
3131
'</code></pre>\n';
3232

33+
const DIAGRAM_1_A =
34+
'+---------+-------------+\n' +
35+
'| classes | metaclasses |\n' +
36+
'+---------|-------------|\n' +
37+
'| MyClass > MyMetaClass |\n' +
38+
'| | v |\n' +
39+
'| object ---> type <+ |\n' +
40+
'| | ^ +---+ |\n' +
41+
'| str -------+ |\n' +
42+
'+---------+-------------+\n';
43+
44+
const DIAGRAM_1_B =
45+
'┏━━━━━━━━━┯━━━━━━━━━━━━━┓\n' +
46+
'┃ classes │ metaclasses ┃\n' +
47+
'┠─────────┼─────────────┨\n' +
48+
'┃ MyClass → MyMetaClass ┃\n' +
49+
'┃ │ ↓ ┃\n' +
50+
'┃ object ───→ type ←╮ ┃\n' +
51+
'┃ │ ↑ ╰───╯ ┃\n' +
52+
'┃ str ───────╯ ┃\n' +
53+
'┗━━━━━━━━━┷━━━━━━━━━━━━━┛\n';
54+
55+
const DIAGRAM_2_A =
56+
'+---------+-------------+\n' +
57+
'| classes | metaclasses |\n' +
58+
'+---------|-------------|\n' +
59+
'| MyClass | MyMetaClass |\n' +
60+
'| v | v |\n' +
61+
'| object <--- type |\n' +
62+
'| ^ | |\n' +
63+
'| str | |\n' +
64+
'+---------+-------------+\n';
65+
66+
const DIAGRAM_2_B =
67+
'┏━━━━━━━━━┯━━━━━━━━━━━━━┓\n' +
68+
'┃ classes │ metaclasses ┃\n' +
69+
'┠─────────┼─────────────┨\n' +
70+
'┃ MyClass │ MyMetaClass ┃\n' +
71+
'┃ ↓ │ ↓ ┃\n' +
72+
'┃ object ←─── type ┃\n' +
73+
'┃ ↑ │ ┃\n' +
74+
'┃ str │ ┃\n' +
75+
'┗━━━━━━━━━┷━━━━━━━━━━━━━┛\n';
76+
3377

3478
function main() {
3579
const html = getMd();
@@ -50,11 +94,17 @@ function initDom(html) {
5094
}
5195

5296
function getMd() {
53-
const readme = readFile('README.md');
97+
var readme = readFile('README.md');
98+
readme = switchClassDiagrams(readme);
5499
const converter = new showdown.Converter();
55100
return converter.makeHtml(readme);
56101
}
57102

103+
function switchClassDiagrams(readme) {
104+
readme = readme.replace(DIAGRAM_1_A, DIAGRAM_1_B)
105+
return readme.replace(DIAGRAM_2_A, DIAGRAM_2_B)
106+
}
107+
58108
function modifyPage() {
59109
removeOrigToc();
60110
addToc();

0 commit comments

Comments
 (0)