Compare commits
1029 Commits
fix/schedu
...
content/da
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6589f9a8c | ||
|
|
5c287d825f | ||
|
|
449e8f12e4 | ||
|
|
a15b13cedd | ||
|
|
609683db2f | ||
|
|
3e21d05767 | ||
|
|
82edfba6e9 | ||
|
|
65d7a737ac | ||
|
|
2e0a69ad72 | ||
|
|
485ffcf755 | ||
|
|
933c568066 | ||
|
|
3b809d9f81 | ||
|
|
12ae7de3c5 | ||
|
|
9316d4027f | ||
|
|
5a63432412 | ||
|
|
ffecb5ae1a | ||
|
|
efd5d20089 | ||
|
|
7a51c1af6c | ||
|
|
6970cccc85 | ||
|
|
78940d44a9 | ||
|
|
6f11403a41 | ||
|
|
214799b0c2 | ||
|
|
b5f564cba4 | ||
|
|
3a4514b9f1 | ||
|
|
df53280ee9 | ||
|
|
487a6a222b | ||
|
|
7933e222ee | ||
|
|
e7b8c033fb | ||
|
|
d893d0fe5d | ||
|
|
1c8571e484 | ||
|
|
3b43ed33c1 | ||
|
|
8a276d8e04 | ||
|
|
36a9e987b5 | ||
|
|
402104665e | ||
|
|
9ec3c1fb9d | ||
|
|
179cefe4da | ||
|
|
93c1ea0496 | ||
|
|
cb7c13fd1b | ||
|
|
704657cb36 | ||
|
|
eba3a78c70 | ||
|
|
d6cf9eb66d | ||
|
|
885e95399e | ||
|
|
d70582411e | ||
|
|
07277708eb | ||
|
|
87280b4c9e | ||
|
|
91b0a232ab | ||
|
|
c9ee8b0ee0 | ||
|
|
bbedfec17d | ||
|
|
96b2eb2797 | ||
|
|
fc1f666daf | ||
|
|
8fb38ae944 | ||
|
|
bfe340508c | ||
|
|
fc260ec3f0 | ||
|
|
cd18dbad95 | ||
|
|
949ada2fda | ||
|
|
2823038d79 | ||
|
|
dbb25ca129 | ||
|
|
467581bbf4 | ||
|
|
bd7cf6e4d7 | ||
|
|
0d5bce309e | ||
|
|
12dd62fbeb | ||
|
|
10e179345c | ||
|
|
830d365f3b | ||
|
|
50b04042ee | ||
|
|
e471c8b393 | ||
|
|
a63eb8e934 | ||
|
|
f79d8c0562 | ||
|
|
a024a573fe | ||
|
|
b01adcc62e | ||
|
|
87a2d493e2 | ||
|
|
a313552721 | ||
|
|
4931ba060f | ||
|
|
4c7daa6a5b | ||
|
|
bb47e557c6 | ||
|
|
88ac6406f9 | ||
|
|
f0a5853058 | ||
|
|
7072431723 | ||
|
|
374a56eeff | ||
|
|
79f9e72a9d | ||
|
|
b9502b8256 | ||
|
|
a25dced848 | ||
|
|
0aab2a24b8 | ||
|
|
6894e73781 | ||
|
|
c1d3db0c97 | ||
|
|
dc8ad22192 | ||
|
|
df1cdde166 | ||
|
|
dfb3238097 | ||
|
|
4fcff0c593 | ||
|
|
07b85c032a | ||
|
|
20c1a54198 | ||
|
|
0a4d6871db | ||
|
|
aeda7a369c | ||
|
|
404859737d | ||
|
|
5e8929c36b | ||
|
|
33cb7b9de5 | ||
|
|
cec01c3df5 | ||
|
|
126d28f7f2 | ||
|
|
ab432f7be8 | ||
|
|
65a0a8c5bf | ||
|
|
781721cd54 | ||
|
|
f371aa602f | ||
|
|
1ef8a2746f | ||
|
|
0385a97062 | ||
|
|
a40e9bc0d3 | ||
|
|
a3cd0fa52e | ||
|
|
837f8457cd | ||
|
|
b67ca1dab6 | ||
|
|
35e74516c1 | ||
|
|
6108963b9c | ||
|
|
bcf59df1db | ||
|
|
841bc996a6 | ||
|
|
04947d5b44 | ||
|
|
6000ef92b1 | ||
|
|
11ad1a8086 | ||
|
|
2a840c4f7e | ||
|
|
48d33e87cf | ||
|
|
70dac4377e | ||
|
|
d405582f50 | ||
|
|
7112987e54 | ||
|
|
b6aa554e1d | ||
|
|
b3a8da98f2 | ||
|
|
9e952fe22b | ||
|
|
85ec75eff4 | ||
|
|
47123f575b | ||
|
|
bd2719749d | ||
|
|
bc4e29521b | ||
|
|
4037e3bb31 | ||
|
|
267d2b54f2 | ||
|
|
d5e75fb39f | ||
|
|
26f46eb8ce | ||
|
|
1ec4c94680 | ||
|
|
53be600df4 | ||
|
|
870a8c409c | ||
|
|
cf078e515f | ||
|
|
b32cb60f8e | ||
|
|
8d81cc6789 | ||
|
|
cdf2ce6b11 | ||
|
|
b739deba99 | ||
|
|
763dfe4cbd | ||
|
|
798ae0a994 | ||
|
|
e426b8bda8 | ||
|
|
f289a74af8 | ||
|
|
b298dbacb0 | ||
|
|
32d25b32d1 | ||
|
|
e0fc5c2464 | ||
|
|
c177a42afe | ||
|
|
f5bbc55eb7 | ||
|
|
eff2e26fe4 | ||
|
|
baceeb37cf | ||
|
|
c9d602f044 | ||
|
|
642653f281 | ||
|
|
eb511f7edd | ||
|
|
e17bc250ec | ||
|
|
21f2c9384d | ||
|
|
8adf1866e7 | ||
|
|
ea27fb9bdd | ||
|
|
049079690a | ||
|
|
124362af1f | ||
|
|
5fb84ea00d | ||
|
|
b4b581b1f4 | ||
|
|
20506756d6 | ||
|
|
aba52447e2 | ||
|
|
822467ab16 | ||
|
|
bfb348141c | ||
|
|
0bcda11f85 | ||
|
|
290de3c419 | ||
|
|
76a9a62afb | ||
|
|
588a2d0061 | ||
|
|
79a51a5562 | ||
|
|
02e2aba320 | ||
|
|
911f34cba4 | ||
|
|
fe1a869a66 | ||
|
|
76dd708f1f | ||
|
|
bc71395f64 | ||
|
|
9accbd7067 | ||
|
|
2b05f72a80 | ||
|
|
ef48708a94 | ||
|
|
9a39de1fad | ||
|
|
229c552255 | ||
|
|
de0181681c | ||
|
|
91c34ec5ea | ||
|
|
b46f01d590 | ||
|
|
882b01a165 | ||
|
|
7e4cce86a6 | ||
|
|
d300e97a04 | ||
|
|
51b960420b | ||
|
|
06aa93a46d | ||
|
|
c45c872de6 | ||
|
|
2142409fb4 | ||
|
|
7c9cd39002 | ||
|
|
5b16390245 | ||
|
|
73a3b00b0f | ||
|
|
8e7abe933a | ||
|
|
aabaaec699 | ||
|
|
d02248e0b4 | ||
|
|
a54e2add53 | ||
|
|
fec7be3d6d | ||
|
|
1e880bbba9 | ||
|
|
19b480402c | ||
|
|
50c4d41fde | ||
|
|
9927fd1b3e | ||
|
|
5b66040031 | ||
|
|
ab7488092a | ||
|
|
14425bb18a | ||
|
|
90ccd44e22 | ||
|
|
eba754f40a | ||
|
|
5fc6ac79f7 | ||
|
|
462ff16ddb | ||
|
|
6878af33c1 | ||
|
|
44a415bb9f | ||
|
|
2d454348cc | ||
|
|
14bd6bb529 | ||
|
|
f7ad6a167a | ||
|
|
db287215a8 | ||
|
|
e1e7b416c3 | ||
|
|
9d37525350 | ||
|
|
a08d4beac0 | ||
|
|
4840828024 | ||
|
|
c4079e0099 | ||
|
|
ed412ab0c2 | ||
|
|
e6d10ef592 | ||
|
|
08e8b83262 | ||
|
|
9d0052b569 | ||
|
|
ca1932a45e | ||
|
|
816d0edf3e | ||
|
|
5fafd3b544 | ||
|
|
3c81846e6c | ||
|
|
a290cafa35 | ||
|
|
c892e7178c | ||
|
|
fdac509ec8 | ||
|
|
8d82df7545 | ||
|
|
0eca17ea45 | ||
|
|
503dc7d6ea | ||
|
|
0d3e261bc3 | ||
|
|
c573675446 | ||
|
|
0aacba53b2 | ||
|
|
7b11f31dfa | ||
|
|
7b411e7c34 | ||
|
|
ae74f50d4a | ||
|
|
6a0d8cdae2 | ||
|
|
a8f2c38a2f | ||
|
|
e712bbdaba | ||
|
|
f3b5d845ed | ||
|
|
fc2512e4f9 | ||
|
|
f798ab4876 | ||
|
|
c14aa17721 | ||
|
|
30c9507945 | ||
|
|
daea67602a | ||
|
|
3da9bd51a2 | ||
|
|
6c6dccf766 | ||
|
|
3db62c9e4d | ||
|
|
10eb82805b | ||
|
|
76a9d24845 | ||
|
|
91eff12b8f | ||
|
|
4038681fb5 | ||
|
|
d0c5e3ba68 | ||
|
|
bd111db80f | ||
|
|
774d1ee3b1 | ||
|
|
fecbde4786 | ||
|
|
79f5f423ab | ||
|
|
2379ab3640 | ||
|
|
58d1a790f2 | ||
|
|
89932bc18d | ||
|
|
469f4ca530 | ||
|
|
7882a91a3d | ||
|
|
0c72a6c36e | ||
|
|
e4183c2f21 | ||
|
|
bcb75c4a9b | ||
|
|
30761f17f4 | ||
|
|
4b0e48d9e8 | ||
|
|
0a721514fd | ||
|
|
61ae2ce5f3 | ||
|
|
302c4381b2 | ||
|
|
a47e057e48 | ||
|
|
75ce6942d8 | ||
|
|
8e020a90b7 | ||
|
|
3feaabcf0d | ||
|
|
2d98d34f41 | ||
|
|
3048800364 | ||
|
|
77764abdd5 | ||
|
|
12294196d9 | ||
|
|
cedffd7fb0 | ||
|
|
c8b47634ea | ||
|
|
9de76da66f | ||
|
|
2c5ae2d774 | ||
|
|
853a26b6f4 | ||
|
|
5379aec4b2 | ||
|
|
f417fd4fdc | ||
|
|
7f0d8bac58 | ||
|
|
0f99964bd6 | ||
|
|
7d91696c85 | ||
|
|
4303e09f92 | ||
|
|
0bc124bcd9 | ||
|
|
0e66361a0d | ||
|
|
02e7373bcd | ||
|
|
b1223a90e5 | ||
|
|
8c4ae121fe | ||
|
|
e4b475cd78 | ||
|
|
fda439f0e9 | ||
|
|
c8ba7578d2 | ||
|
|
f37289ea35 | ||
|
|
9910d2b268 | ||
|
|
85d9b6a2eb | ||
|
|
4dd7b99715 | ||
|
|
edb27dddac | ||
|
|
fb5db127d5 | ||
|
|
b449afab1d | ||
|
|
2a0af411dc | ||
|
|
0081a3bb57 | ||
|
|
7407ec5fa9 | ||
|
|
64e464582b | ||
|
|
d102a86fc0 | ||
|
|
96094e2ce0 | ||
|
|
8228d62ac8 | ||
|
|
216945a2e1 | ||
|
|
701c168704 | ||
|
|
00cd51b941 | ||
|
|
299b167808 | ||
|
|
3841e9b8f4 | ||
|
|
7363aaf3d5 | ||
|
|
289c2b6233 | ||
|
|
708416cd21 | ||
|
|
870463d61a | ||
|
|
62a610c1a6 | ||
|
|
dd2709dd3f | ||
|
|
ac9092092d | ||
|
|
44ab9aa9d9 | ||
|
|
10064da428 | ||
|
|
2a000eb30e | ||
|
|
c4e158bcdf | ||
|
|
aa155207ed | ||
|
|
2e8379ad7d | ||
|
|
56dfb5434a | ||
|
|
450cc14a7b | ||
|
|
e7353aff4c | ||
|
|
80e2b94615 | ||
|
|
f10662e46b | ||
|
|
cf0cc2c34f | ||
|
|
4a1fa3f482 | ||
|
|
8f77d90220 | ||
|
|
803b0a5ecd | ||
|
|
7384d68998 | ||
|
|
67b17ef075 | ||
|
|
ae4f103e80 | ||
|
|
e1b02ef810 | ||
|
|
bd53331db7 | ||
|
|
ac4e4bc92b | ||
|
|
da386ba143 | ||
|
|
4cf33125eb | ||
|
|
e00bd629f5 | ||
|
|
7cb5587097 | ||
|
|
2a1c56fdf3 | ||
|
|
8083120227 | ||
|
|
6b87218cd5 | ||
|
|
57ed6e2760 | ||
|
|
a102624596 | ||
|
|
708454f0a8 | ||
|
|
3eaeb7ff9e | ||
|
|
19be07817d | ||
|
|
2e8360a29b | ||
|
|
53f86bb319 | ||
|
|
90851f38f3 | ||
|
|
bb9362412e | ||
|
|
9b54116548 | ||
|
|
7ee47f46b2 | ||
|
|
abae4d3361 | ||
|
|
62f31a4964 | ||
|
|
6edf2869f8 | ||
|
|
a367be60dc | ||
|
|
3429c17074 | ||
|
|
8e97088f21 | ||
|
|
78e62f9de5 | ||
|
|
0b463a78e8 | ||
|
|
bb64dabc75 | ||
|
|
d1f480d9b9 | ||
|
|
4b86af3a70 | ||
|
|
a1c564534a | ||
|
|
9bbf8ea04b | ||
|
|
ffe8d4c2f6 | ||
|
|
c0a52283d4 | ||
|
|
90cee9a223 | ||
|
|
96417de7ed | ||
|
|
28a8f8493b | ||
|
|
971dd8d2bd | ||
|
|
ae7352b8f3 | ||
|
|
5d9a5bd05c | ||
|
|
b8c60093a6 | ||
|
|
00467decca | ||
|
|
6e1e334406 | ||
|
|
2867e25f2c | ||
|
|
e89b847ddb | ||
|
|
edace11348 | ||
|
|
96fb1b87e2 | ||
|
|
bff8915c6e | ||
|
|
de06961d85 | ||
|
|
5a38999ec2 | ||
|
|
7c20f9987a | ||
|
|
cccc4a7cd9 | ||
|
|
ad233daea2 | ||
|
|
64711eb6f9 | ||
|
|
a74c7fe19a | ||
|
|
c2137397b8 | ||
|
|
a43bbe9768 | ||
|
|
c2d635bf89 | ||
|
|
e36d352d13 | ||
|
|
f45b337f36 | ||
|
|
025334738a | ||
|
|
af28049b28 | ||
|
|
e7259abd0e | ||
|
|
df09e4e29e | ||
|
|
d38b1d52bf | ||
|
|
eda161232b | ||
|
|
888342ea37 | ||
|
|
d3d18847ee | ||
|
|
5f7e8a99b6 | ||
|
|
9230f79cb2 | ||
|
|
bd0bfa562d | ||
|
|
2569c3a965 | ||
|
|
fe6829311e | ||
|
|
e2e569617d | ||
|
|
599e4528ab | ||
|
|
d7d3a2a089 | ||
|
|
f2136d2207 | ||
|
|
500bd49a62 | ||
|
|
338e28df1b | ||
|
|
1860f32375 | ||
|
|
0cf801acfd | ||
|
|
847e9b9edb | ||
|
|
2cfd645256 | ||
|
|
8f36beb3bd | ||
|
|
6de872d1ea | ||
|
|
a7eab6f81f | ||
|
|
b7b96b7d7b | ||
|
|
30d3a86784 | ||
|
|
852dce9d6a | ||
|
|
4401a4c9aa | ||
|
|
8973031252 | ||
|
|
a4c221505c | ||
|
|
f3c4468a7b | ||
|
|
4d0bc30fc6 | ||
|
|
740bdf2aec | ||
|
|
6525b1bdee | ||
|
|
afc6f2d5ae | ||
|
|
871d43c295 | ||
|
|
bc32dc780b | ||
|
|
5685b30c42 | ||
|
|
7e3508cdf4 | ||
|
|
2ba3e64c1c | ||
|
|
ca30955e9f | ||
|
|
c2e1d8fd28 | ||
|
|
ab5cc9dd6d | ||
|
|
74267a6061 | ||
|
|
9c2c06affd | ||
|
|
0e0eea635b | ||
|
|
82400cd7a6 | ||
|
|
55fdc9f957 | ||
|
|
f8b9b58968 | ||
|
|
b79411c49e | ||
|
|
5ba951e555 | ||
|
|
464bcb6c66 | ||
|
|
b9aee719b2 | ||
|
|
5d9eecc2b9 | ||
|
|
80a0caba2f | ||
|
|
2937923fb1 | ||
|
|
a33018de1d | ||
|
|
c236e863a0 | ||
|
|
b7f94a7679 | ||
|
|
107fa4842c | ||
|
|
3e059cc3e9 | ||
|
|
ebd34612a2 | ||
|
|
ed54dd663a | ||
|
|
bb0df94afa | ||
|
|
be1b041acb | ||
|
|
5f53b3ef1e | ||
|
|
c83309b7db | ||
|
|
3a49ad556a | ||
|
|
4447f4841c | ||
|
|
6351969d3c | ||
|
|
599da5a153 | ||
|
|
0a2e098c44 | ||
|
|
514377da63 | ||
|
|
9dea34869a | ||
|
|
db7d02b3c2 | ||
|
|
cf09986ffc | ||
|
|
1ff5aa1e05 | ||
|
|
36021ce4a5 | ||
|
|
5409deeaa8 | ||
|
|
555cd15a8e | ||
|
|
d36af2d3fa | ||
|
|
05db236a3c | ||
|
|
cd4f099ca8 | ||
|
|
c5694be86b | ||
|
|
8a1960eae8 | ||
|
|
649384ac45 | ||
|
|
d3ccfb9ced | ||
|
|
eb5d2fbc3a | ||
|
|
a822f00a70 | ||
|
|
08d0301181 | ||
|
|
62adbe49be | ||
|
|
a0784e1695 | ||
|
|
556588c303 | ||
|
|
c7ec3f08ee | ||
|
|
ec0f129783 | ||
|
|
5f9dca9a1e | ||
|
|
256ad44e60 | ||
|
|
85b9eaa9f7 | ||
|
|
5831588cd8 | ||
|
|
cd33b7aa92 | ||
|
|
6193eaf176 | ||
|
|
f279aea1cb | ||
|
|
8b69b266d5 | ||
|
|
3f0db1526d | ||
|
|
69d9dd23b2 | ||
|
|
3e1bc34d4a | ||
|
|
dea689b068 | ||
|
|
de237ec6fc | ||
|
|
5ec61cc32f | ||
|
|
7bffc1004d | ||
|
|
c06218910d | ||
|
|
130e381054 | ||
|
|
d5d38ee919 | ||
|
|
6b7138b8d8 | ||
|
|
242e40ddd8 | ||
|
|
9ea70fcc97 | ||
|
|
823c31eac4 | ||
|
|
d4a1180c4d | ||
|
|
483c942338 | ||
|
|
f28b018e99 | ||
|
|
c683db2757 | ||
|
|
6dd8f29bff | ||
|
|
671b59c0ac | ||
|
|
1197a0fd6d | ||
|
|
9ebb288f9b | ||
|
|
ca38c0cede | ||
|
|
ff7c981f2f | ||
|
|
3455e6ef1c | ||
|
|
f7f409ca90 | ||
|
|
2538db4786 | ||
|
|
d5a8814add | ||
|
|
0cadde1092 | ||
|
|
3f4bbef211 | ||
|
|
715352eeab | ||
|
|
e5e43de98a | ||
|
|
f085a226ba | ||
|
|
2e90823af4 | ||
|
|
50df3eda0f | ||
|
|
69b0d7abb3 | ||
|
|
c4af3c57f0 | ||
|
|
2cee3a8859 | ||
|
|
7f28a755dc | ||
|
|
a2e83e909e | ||
|
|
e4f53ed90e | ||
|
|
5e836ab7a5 | ||
|
|
9851978dbd | ||
|
|
82c52aca7e | ||
|
|
0d62847053 | ||
|
|
7a00234f9a | ||
|
|
64a65fa2e9 | ||
|
|
09d8c709d4 | ||
|
|
6a14170e64 | ||
|
|
ac3ebb2162 | ||
|
|
56ea91b11c | ||
|
|
5a1f52892e | ||
|
|
74781d6e7b | ||
|
|
06bdfc42d2 | ||
|
|
0a42ea6f41 | ||
|
|
2dc4041228 | ||
|
|
4b7eab66da | ||
|
|
999f6b09a8 | ||
|
|
a9cd557dd3 | ||
|
|
3d3423f8e5 | ||
|
|
a5eb5231cb | ||
|
|
8662416c96 | ||
|
|
7564895d7a | ||
|
|
7b15ed39a3 | ||
|
|
e72622f2b2 | ||
|
|
deb9aaafc2 | ||
|
|
63b6d471a2 | ||
|
|
2485b716dd | ||
|
|
dc2142dde0 | ||
|
|
d8466634a1 | ||
|
|
7900130f1c | ||
|
|
13c4aee26a | ||
|
|
294e76b52d | ||
|
|
d6e9602c0b | ||
|
|
b84e75a0d4 | ||
|
|
81bb0bac83 | ||
|
|
d2d7e54c74 | ||
|
|
8a70a944e6 | ||
|
|
175ac4d097 | ||
|
|
b75d36a8c0 | ||
|
|
0d9374285b | ||
|
|
f798035f0f | ||
|
|
7a988cbbea | ||
|
|
b576ad5f86 | ||
|
|
2124ce96dc | ||
|
|
27cbdd18fd | ||
|
|
ef242e8747 | ||
|
|
614429283f | ||
|
|
b4e6336732 | ||
|
|
35aa2d07f0 | ||
|
|
d570618d32 | ||
|
|
1a5b6976c2 | ||
|
|
45059998c0 | ||
|
|
f3eed4d010 | ||
|
|
0f1e1962db | ||
|
|
84de2a7c9d | ||
|
|
dfd54b35b0 | ||
|
|
981af58fa9 | ||
|
|
e5802eaeaf | ||
|
|
64fd0e28aa | ||
|
|
0a442493f1 | ||
|
|
77b4e78348 | ||
|
|
56c9faabe8 | ||
|
|
a68ed2e0b8 | ||
|
|
7d7cec3f4a | ||
|
|
15ae58a109 | ||
|
|
c32cc7c11b | ||
|
|
5398e2a93c | ||
|
|
bb8083801d | ||
|
|
a2018556cd | ||
|
|
e0589284ef | ||
|
|
bd1a19da3d | ||
|
|
6c6c9ea85d | ||
|
|
8921081bf7 | ||
|
|
858f131222 | ||
|
|
85202507e6 | ||
|
|
80a4ebbb3d | ||
|
|
03caf1bf23 | ||
|
|
1a4f9f8f96 | ||
|
|
2778ed958d | ||
|
|
cda2be543d | ||
|
|
e362d4250e | ||
|
|
28493bc7f0 | ||
|
|
2931461e2e | ||
|
|
892ef44070 | ||
|
|
58c3195831 | ||
|
|
1813c7bba6 | ||
|
|
e92d8c442f | ||
|
|
dc08643daf | ||
|
|
7ccf731088 | ||
|
|
cf2d0b80af | ||
|
|
d518867e80 | ||
|
|
431790b690 | ||
|
|
f077f354d7 | ||
|
|
4268ce4346 | ||
|
|
180ca335b6 | ||
|
|
81ebc0197a | ||
|
|
ff7fdcd5bf | ||
|
|
55b6a81ccc | ||
|
|
0bc63fb9af | ||
|
|
a90495b0d6 | ||
|
|
fdf630d4e3 | ||
|
|
cfc84e246e | ||
|
|
2622141113 | ||
|
|
9b182f965f | ||
|
|
dca2fdf6d5 | ||
|
|
169bf45e9f | ||
|
|
7e39785289 | ||
|
|
bcb76b4ef3 | ||
|
|
3121827ee7 | ||
|
|
69b63e2a8d | ||
|
|
4b603ecd2e | ||
|
|
6b49a1123d | ||
|
|
33cdbddadb | ||
|
|
0e1845aade | ||
|
|
76cd909280 | ||
|
|
92527d9c4e | ||
|
|
eec79cc18a | ||
|
|
83d014c9b1 | ||
|
|
d5a9a9a490 | ||
|
|
18cff6476a | ||
|
|
d6b0357ee7 | ||
|
|
55efe7f954 | ||
|
|
016c6cf343 | ||
|
|
beeb6f9e93 | ||
|
|
a6519d7aba | ||
|
|
b70e73124f | ||
|
|
300759ca43 | ||
|
|
c20d16660a | ||
|
|
d388c2c563 | ||
|
|
f9c2c4153d | ||
|
|
ebc3b9021c | ||
|
|
9354bd3d4d | ||
|
|
b32adbe3c5 | ||
|
|
ff5609b722 | ||
|
|
f882ca1b9c | ||
|
|
20b040735a | ||
|
|
3881377490 | ||
|
|
f0d208f050 | ||
|
|
b81c74984e | ||
|
|
d399ba2c61 | ||
|
|
fe829442d1 | ||
|
|
fd7f95c1a5 | ||
|
|
3982a2eee8 | ||
|
|
a60bcb5a45 | ||
|
|
3cf2ad9b25 | ||
|
|
6449c24398 | ||
|
|
eaddc81383 | ||
|
|
b6e0d566a6 | ||
|
|
01f93d95fb | ||
|
|
fbd39e9079 | ||
|
|
3bc00b5b1a | ||
|
|
340ae002ca | ||
|
|
98d8510b60 | ||
|
|
a82a0e6efb | ||
|
|
b17ba1b009 | ||
|
|
a07a5af543 | ||
|
|
16db649baf | ||
|
|
017fe3e0a4 | ||
|
|
1f727d2e17 | ||
|
|
281f6f369c | ||
|
|
eb5e5fadcc | ||
|
|
4996d51340 | ||
|
|
ea944a001e | ||
|
|
6d28ab40a8 | ||
|
|
ebb88721b6 | ||
|
|
8878d04f98 | ||
|
|
1085c33dc4 | ||
|
|
6b9007c530 | ||
|
|
5ff89fa184 | ||
|
|
dfff959916 | ||
|
|
3ba9abe7e3 | ||
|
|
fbd149f955 | ||
|
|
d78fd6ccff | ||
|
|
2be8dbe0c2 | ||
|
|
79c6e2be53 | ||
|
|
cc5585171c | ||
|
|
38cd727e48 | ||
|
|
fda56a5d30 | ||
|
|
e27146d549 | ||
|
|
eb95da0bb0 | ||
|
|
554e61947b | ||
|
|
107ae1923b | ||
|
|
cb64894e49 | ||
|
|
faf43f7905 | ||
|
|
c9f450e166 | ||
|
|
3b6d620ed8 | ||
|
|
bd937f5dbe | ||
|
|
cf05610b86 | ||
|
|
8b61bbfcbb | ||
|
|
2c39611b47 | ||
|
|
475cb85600 | ||
|
|
37de8700d5 | ||
|
|
9db05bddbd | ||
|
|
4bda81bf52 | ||
|
|
00c5254ea9 | ||
|
|
bc97fc4c03 | ||
|
|
f953b96d52 | ||
|
|
40793efe4e | ||
|
|
22a29605d8 | ||
|
|
cbfd4f7fcb | ||
|
|
992cf82e5c | ||
|
|
ea89ac864c | ||
|
|
35a4a93ca7 | ||
|
|
2544d4b12d | ||
|
|
d6ee7ef76a | ||
|
|
daa2c03643 | ||
|
|
92a61e7c45 | ||
|
|
e6ad9b29d6 | ||
|
|
ea040b7912 | ||
|
|
28e874bdcd | ||
|
|
4125c618d7 | ||
|
|
088615d13f | ||
|
|
b02d07917d | ||
|
|
9f1d44e542 | ||
|
|
587e8a197f | ||
|
|
5023e962b3 | ||
|
|
28c41b02c0 | ||
|
|
7a80313f1d | ||
|
|
6bc1233253 | ||
|
|
f82ca986c5 | ||
|
|
d45b08c5d3 | ||
|
|
d0c6ae1835 | ||
|
|
be2d3a0d0e | ||
|
|
c81c799e44 | ||
|
|
0bcf1b09bd | ||
|
|
f7f0270f75 | ||
|
|
8033ccbe6d | ||
|
|
694c208ee3 | ||
|
|
41c7388f63 | ||
|
|
2f2a9b2d32 | ||
|
|
083ec6c0d7 | ||
|
|
32690e98da | ||
|
|
ed8c2f3168 | ||
|
|
1a9f53150b | ||
|
|
1779eef91b | ||
|
|
d7b3f82d18 | ||
|
|
fb34a7176c | ||
|
|
c5316929ba | ||
|
|
1ef1818327 | ||
|
|
472c7f415b | ||
|
|
c43d294ab4 | ||
|
|
06747df054 | ||
|
|
2aeb2ad65e | ||
|
|
3fd6e859df | ||
|
|
6d85bbe488 | ||
|
|
5bb1252795 | ||
|
|
dfaf120314 | ||
|
|
be5ccbbc0b | ||
|
|
12950051d6 | ||
|
|
03cd25b6c0 | ||
|
|
829615ffec | ||
|
|
6a24436418 | ||
|
|
c726a1a342 | ||
|
|
7d7835ee9c | ||
|
|
17d30c0e8d | ||
|
|
62bd5c339f | ||
|
|
111f702b9b | ||
|
|
3dd115dce1 | ||
|
|
75925cb53a | ||
|
|
de5bed02f8 | ||
|
|
72c670570b | ||
|
|
a450b4ed5a | ||
|
|
66be61efa3 | ||
|
|
caddd0f93d | ||
|
|
cc32cbe79c | ||
|
|
f9d39db24a | ||
|
|
203bbc6eae | ||
|
|
31a852113f | ||
|
|
66119e935b | ||
|
|
3374fafe5b | ||
|
|
8ed47a2e71 | ||
|
|
932b513d98 | ||
|
|
e0ae5dd309 | ||
|
|
70bc2a1038 | ||
|
|
86c1120559 | ||
|
|
c3135e1470 | ||
|
|
23346ec007 | ||
|
|
c92a183ef8 | ||
|
|
ca7888aa37 | ||
|
|
33b36a7017 | ||
|
|
bff98e6448 | ||
|
|
5dd2bc439f | ||
|
|
24d10d212f | ||
|
|
4127f77aac | ||
|
|
dbebf593fc | ||
|
|
0e0b550f98 | ||
|
|
80741df13b | ||
|
|
14b6aea3b1 | ||
|
|
e0da1e4f0e | ||
|
|
5cc4b834d1 | ||
|
|
314eb5d7d2 | ||
|
|
ad2597f610 | ||
|
|
8d25eabe3a | ||
|
|
6186e12b05 | ||
|
|
158857c928 | ||
|
|
8e6959cc60 | ||
|
|
e351f653a1 | ||
|
|
83e315aef7 | ||
|
|
b15bdd5f78 | ||
|
|
0783330a70 | ||
|
|
7ec56fd1ff | ||
|
|
201632941a | ||
|
|
126501b40a | ||
|
|
34ba9162b2 | ||
|
|
e093eddabc | ||
|
|
1e4a4c96b8 | ||
|
|
0c3ea981cb | ||
|
|
5de9539af5 | ||
|
|
3722e5f3bd | ||
|
|
7f90b8a0b0 | ||
|
|
2bafd61f71 | ||
|
|
adc66cf97c | ||
|
|
c754a971c3 | ||
|
|
dbda69fc23 | ||
|
|
6f1087981c | ||
|
|
ec8a0917c1 | ||
|
|
60e5e38a55 | ||
|
|
5d77d36236 | ||
|
|
37b3140516 | ||
|
|
34b68478cc | ||
|
|
9bb86408c5 | ||
|
|
d07fd3d183 | ||
|
|
9aa363a01e | ||
|
|
9f2a33f078 | ||
|
|
91cfa88b3d | ||
|
|
d87ea1c972 | ||
|
|
dbf2353a41 | ||
|
|
8d78c17c77 | ||
|
|
698dbbd7d8 | ||
|
|
25216d4052 | ||
|
|
2be0d61a1e | ||
|
|
f3ee75e92d | ||
|
|
db0b5e77ad | ||
|
|
c239886049 | ||
|
|
aab03074f8 | ||
|
|
433302b910 | ||
|
|
a583937f5c | ||
|
|
412e3b5935 | ||
|
|
1ffa292c98 | ||
|
|
0bef28fa20 | ||
|
|
1af013d5f8 | ||
|
|
28af19cd1c | ||
|
|
4696af9c6a | ||
|
|
e2dece0e6a | ||
|
|
a5f483c335 | ||
|
|
4552d3f9c8 | ||
|
|
f213bd9604 | ||
|
|
de65909357 | ||
|
|
9a77ca8a17 | ||
|
|
7ab3f758fd | ||
|
|
bcf4126b3a | ||
|
|
f9dbd16afe | ||
|
|
21ed4a647f | ||
|
|
68cf2c00c6 | ||
|
|
d3b0c32eb7 | ||
|
|
37ca08f956 | ||
|
|
b40ec83137 | ||
|
|
edc7de8226 | ||
|
|
5bffdebeb8 | ||
|
|
e5e902a268 | ||
|
|
5842b0a692 | ||
|
|
f1592571db | ||
|
|
4058dff406 | ||
|
|
5a813eea04 | ||
|
|
e577ba095f | ||
|
|
069cb6fc06 | ||
|
|
b0a3cdc8c4 | ||
|
|
536a79ef59 | ||
|
|
5a132b6f07 | ||
|
|
e3b56ab716 | ||
|
|
2d8030a175 | ||
|
|
dca2ba5fac | ||
|
|
16fc4b08ff | ||
|
|
7a7590d872 | ||
|
|
073708e7e9 | ||
|
|
66a8c2e73c | ||
|
|
34425019b7 | ||
|
|
699e05a3b4 | ||
|
|
3bd379692f | ||
|
|
22f29a12f9 | ||
|
|
2640c82167 | ||
|
|
9ff560b1fd | ||
|
|
e16866009a | ||
|
|
2085a31894 | ||
|
|
0534e99093 | ||
|
|
19a6cb20ec | ||
|
|
7b59b5862e | ||
|
|
3d2db1b46e | ||
|
|
8cf272431d | ||
|
|
b05f6148ac | ||
|
|
19dd7f7f4f | ||
|
|
a22867bd96 | ||
|
|
23eb9b6626 | ||
|
|
2d3c86ceff | ||
|
|
5e97ded10d | ||
|
|
cbd290baa2 | ||
|
|
da968b6d5b | ||
|
|
07ebf3585d | ||
|
|
26b5ccd10f | ||
|
|
3c03cb46f7 | ||
|
|
514edea44e | ||
|
|
f0b740bfb2 | ||
|
|
8e68f7230c | ||
|
|
090100d784 | ||
|
|
e9e100d46e | ||
|
|
c2a206ac37 | ||
|
|
05d36c898e | ||
|
|
d4c33930b5 | ||
|
|
7a931f2f3b | ||
|
|
565ec779dc | ||
|
|
e716765f01 | ||
|
|
3b274f3b0a | ||
|
|
1623d09de6 | ||
|
|
d2bf09b405 | ||
|
|
f3110e99f6 | ||
|
|
cdc6591765 | ||
|
|
96db3e3920 | ||
|
|
f7df0acc90 | ||
|
|
1480b20dcb | ||
|
|
e11ce51b09 | ||
|
|
3c7761cbe8 | ||
|
|
65996a6982 | ||
|
|
99b1859de2 | ||
|
|
7b2a047046 | ||
|
|
6bbf384b73 | ||
|
|
4bd1c4aebc | ||
|
|
14835464de | ||
|
|
020def730d | ||
|
|
ca1cad9bfc | ||
|
|
5ac086036e | ||
|
|
5fbec97c8d | ||
|
|
94bc36d67e | ||
|
|
98997800b9 | ||
|
|
9b32685e88 | ||
|
|
9d0c2667fc | ||
|
|
aa3c065b51 | ||
|
|
657ee41900 | ||
|
|
ad203cca4e | ||
|
|
b83eedbb68 | ||
|
|
0d8b039114 | ||
|
|
0a1705fdc1 | ||
|
|
a2063c2822 | ||
|
|
4c6f0a1234 | ||
|
|
b1d87ae639 | ||
|
|
609faeacef | ||
|
|
6469ef3078 | ||
|
|
721456a82e | ||
|
|
ef958779d6 | ||
|
|
77ca038e8c | ||
|
|
e52608a48a | ||
|
|
85cc58b85e | ||
|
|
d9ec7b71ec | ||
|
|
80d4d37e5c | ||
|
|
c584325a7d | ||
|
|
942050e56c | ||
|
|
7cfdfaab1f | ||
|
|
8148cb23ad | ||
|
|
9e15f59660 | ||
|
|
2b07b2d4cd | ||
|
|
00c288855e | ||
|
|
b7848fd73c | ||
|
|
de1f9fc2d2 | ||
|
|
8cf5765349 | ||
|
|
b4621733be | ||
|
|
b7eb3166ed | ||
|
|
534a27e7a7 | ||
|
|
0c355f3cef | ||
|
|
3a72911bc6 | ||
|
|
6c099db875 | ||
|
|
8b80f4b00b | ||
|
|
7abe4ab91d | ||
|
|
c5f1e383c7 | ||
|
|
2b5134e0a5 | ||
|
|
f3b325e72f | ||
|
|
78084be9a4 | ||
|
|
bfcb32bd57 | ||
|
|
2623d7abeb |
@@ -3,6 +3,6 @@
|
||||
"enabled": false
|
||||
},
|
||||
"_variables": {
|
||||
"lastUpdateCheck": 1732419746256
|
||||
"lastUpdateCheck": 1756224238932
|
||||
}
|
||||
}
|
||||
155
.cursor/rules/content-migration.mdc
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
description: When user requests migrating old roadmap content to new folder from content-old to content folder
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# Content Migration Rule
|
||||
|
||||
## Rule Name: content-migration
|
||||
|
||||
## Description
|
||||
This rule provides a complete process for migrating roadmap content from old structure to new structure using migration mapping files.
|
||||
|
||||
## When to Use
|
||||
Use this rule when you need to:
|
||||
- Migrate content from content-old directories to content directories
|
||||
- Use a migration-mapping.json file to map topic paths to content IDs
|
||||
- Populate empty content files with existing content from legacy structure
|
||||
|
||||
## Process
|
||||
|
||||
### 1. Prerequisites Check
|
||||
- Verify the roadmap directory has a `migration-mapping.json` file
|
||||
- Confirm `content-old/` directory exists with source content
|
||||
- Confirm `content/` directory exists with target files
|
||||
|
||||
### 2. Migration Script Creation
|
||||
Create a Node.js script with the following functionality:
|
||||
|
||||
```javascript
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Load the migration mapping
|
||||
const migrationMapping = JSON.parse(fs.readFileSync('migration-mapping.json', 'utf8'));
|
||||
|
||||
// Function to find old content file based on topic path
|
||||
function findOldContentFile(topicPath) {
|
||||
const parts = topicPath.split(':');
|
||||
|
||||
if (parts.length === 1) {
|
||||
// Top level file like "introduction"
|
||||
return path.join('content-old', parts[0], 'index.md');
|
||||
} else if (parts.length === 2) {
|
||||
// Like "introduction:what-is-rust"
|
||||
const [folder, filename] = parts;
|
||||
return path.join('content-old', folder, `${filename}.md`);
|
||||
} else if (parts.length === 3) {
|
||||
// Like "language-basics:syntax:variables"
|
||||
const [folder, subfolder, filename] = parts;
|
||||
return path.join('content-old', folder, subfolder, `${filename}.md`);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Function to find new content file based on content ID
|
||||
function findNewContentFile(contentId) {
|
||||
const contentDir = 'content';
|
||||
const files = fs.readdirSync(contentDir);
|
||||
|
||||
// Find file that ends with the content ID
|
||||
const matchingFile = files.find(file => file.includes(`@${contentId}.md`));
|
||||
|
||||
if (matchingFile) {
|
||||
return path.join(contentDir, matchingFile);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Process each mapping
|
||||
console.log('Starting content migration...\n');
|
||||
|
||||
let migratedCount = 0;
|
||||
let skippedCount = 0;
|
||||
|
||||
for (const [topicPath, contentId] of Object.entries(migrationMapping)) {
|
||||
const oldFilePath = findOldContentFile(topicPath);
|
||||
const newFilePath = findNewContentFile(contentId);
|
||||
|
||||
if (!oldFilePath) {
|
||||
console.log(`❌ Could not determine old file path for: ${topicPath}`);
|
||||
skippedCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!newFilePath) {
|
||||
console.log(`❌ Could not find new file for content ID: ${contentId} (topic: ${topicPath})`);
|
||||
skippedCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!fs.existsSync(oldFilePath)) {
|
||||
console.log(`❌ Old file does not exist: ${oldFilePath} (topic: ${topicPath})`);
|
||||
skippedCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
// Read old content
|
||||
const oldContent = fs.readFileSync(oldFilePath, 'utf8');
|
||||
|
||||
// Write to new file
|
||||
fs.writeFileSync(newFilePath, oldContent);
|
||||
|
||||
console.log(`✅ Migrated: ${topicPath} -> ${path.basename(newFilePath)}`);
|
||||
migratedCount++;
|
||||
} catch (error) {
|
||||
console.log(`❌ Error migrating ${topicPath}: ${error.message}`);
|
||||
skippedCount++;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`\n📊 Migration complete:`);
|
||||
console.log(` Migrated: ${migratedCount} files`);
|
||||
console.log(` Skipped: ${skippedCount} files`);
|
||||
console.log(` Total: ${Object.keys(migrationMapping).length} mappings`);
|
||||
```
|
||||
|
||||
### 3. Execution Steps
|
||||
1. Navigate to the roadmap directory (e.g., `src/data/roadmaps/[roadmap-name]`)
|
||||
2. Create the migration script as `migrate_content.cjs`
|
||||
3. Run: `node migrate_content.cjs`
|
||||
4. Review the migration results
|
||||
5. Clean up the temporary script file
|
||||
|
||||
### 4. Validation
|
||||
After migration:
|
||||
- Verify a few migrated files have proper content (not just titles)
|
||||
- Check that the content structure matches the old content
|
||||
- Ensure proper markdown formatting is preserved
|
||||
|
||||
## File Structure Expected
|
||||
```
|
||||
roadmap-directory/
|
||||
├── migration-mapping.json
|
||||
├── content/
|
||||
│ ├── file1@contentId1.md
|
||||
│ ├── file2@contentId2.md
|
||||
│ └── ...
|
||||
└── content-old/
|
||||
├── section1/
|
||||
│ ├── index.md
|
||||
│ ├── topic1.md
|
||||
│ └── subsection1/
|
||||
│ └── subtopic1.md
|
||||
└── section2/
|
||||
└── ...
|
||||
```
|
||||
|
||||
## Notes
|
||||
- The migration mapping uses colons (`:`) to separate nested paths
|
||||
- Content files in the new structure use the pattern `filename@contentId.md`
|
||||
- The script handles 1-3 levels of nesting in the old structure
|
||||
- Always create the script with `.cjs` extension to avoid ES module issues
|
||||
389
.cursor/rules/gh-cli.mdc
Normal file
@@ -0,0 +1,389 @@
|
||||
---
|
||||
description: GitHub pull requests
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# gh cli
|
||||
|
||||
Work seamlessly with GitHub from the command line.
|
||||
|
||||
USAGE
|
||||
gh <command> <subcommand> [flags]
|
||||
|
||||
CORE COMMANDS
|
||||
auth: Authenticate gh and git with GitHub
|
||||
browse: Open repositories, issues, pull requests, and more in the browser
|
||||
codespace: Connect to and manage codespaces
|
||||
gist: Manage gists
|
||||
issue: Manage issues
|
||||
org: Manage organizations
|
||||
pr: Manage pull requests
|
||||
project: Work with GitHub Projects.
|
||||
release: Manage releases
|
||||
repo: Manage repositories
|
||||
|
||||
GITHUB ACTIONS COMMANDS
|
||||
cache: Manage GitHub Actions caches
|
||||
run: View details about workflow runs
|
||||
workflow: View details about GitHub Actions workflows
|
||||
|
||||
ALIAS COMMANDS
|
||||
co: Alias for "pr checkout"
|
||||
|
||||
ADDITIONAL COMMANDS
|
||||
alias: Create command shortcuts
|
||||
api: Make an authenticated GitHub API request
|
||||
attestation: Work with artifact attestations
|
||||
completion: Generate shell completion scripts
|
||||
config: Manage configuration for gh
|
||||
extension: Manage gh extensions
|
||||
gpg-key: Manage GPG keys
|
||||
label: Manage labels
|
||||
preview: Execute previews for gh features
|
||||
ruleset: View info about repo rulesets
|
||||
search: Search for repositories, issues, and pull requests
|
||||
secret: Manage GitHub secrets
|
||||
ssh-key: Manage SSH keys
|
||||
status: Print information about relevant issues, pull requests, and notifications across repositories
|
||||
variable: Manage GitHub Actions variables
|
||||
|
||||
HELP TOPICS
|
||||
accessibility: Learn about GitHub CLI's accessibility experiences
|
||||
actions: Learn about working with GitHub Actions
|
||||
environment: Environment variables that can be used with gh
|
||||
exit-codes: Exit codes used by gh
|
||||
formatting: Formatting options for JSON data exported from gh
|
||||
mintty: Information about using gh with MinTTY
|
||||
reference: A comprehensive reference of all gh commands
|
||||
|
||||
FLAGS
|
||||
--help Show help for command
|
||||
--version Show gh version
|
||||
|
||||
EXAMPLES
|
||||
$ gh issue create
|
||||
$ gh repo clone cli/cli
|
||||
$ gh pr checkout 321
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr
|
||||
|
||||
Work with GitHub pull requests.
|
||||
|
||||
USAGE
|
||||
gh pr <command> [flags]
|
||||
|
||||
GENERAL COMMANDS
|
||||
create: Create a pull request
|
||||
list: List pull requests in a repository
|
||||
status: Show status of relevant pull requests
|
||||
|
||||
TARGETED COMMANDS
|
||||
checkout: Check out a pull request in git
|
||||
checks: Show CI status for a single pull request
|
||||
close: Close a pull request
|
||||
comment: Add a comment to a pull request
|
||||
diff: View changes in a pull request
|
||||
edit: Edit a pull request
|
||||
lock: Lock pull request conversation
|
||||
merge: Merge a pull request
|
||||
ready: Mark a pull request as ready for review
|
||||
reopen: Reopen a pull request
|
||||
review: Add a review to a pull request
|
||||
unlock: Unlock pull request conversation
|
||||
update-branch: Update a pull request branch
|
||||
view: View a pull request
|
||||
|
||||
FLAGS
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
|
||||
ARGUMENTS
|
||||
A pull request can be supplied as argument in any of the following formats:
|
||||
- by number, e.g. "123";
|
||||
- by URL, e.g. "https://github.com/OWNER/REPO/pull/123"; or
|
||||
- by the name of its head branch, e.g. "patch-1" or "OWNER:patch-1".
|
||||
|
||||
EXAMPLES
|
||||
$ gh pr checkout 353
|
||||
$ gh pr create --fill
|
||||
$ gh pr view --web
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr list
|
||||
|
||||
List pull requests in a GitHub repository. By default, this only lists open PRs.
|
||||
|
||||
The search query syntax is documented here:
|
||||
<https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests>
|
||||
|
||||
For more information about output formatting flags, see `gh help formatting`.
|
||||
|
||||
USAGE
|
||||
gh pr list [flags]
|
||||
|
||||
ALIASES
|
||||
gh pr ls
|
||||
|
||||
FLAGS
|
||||
--app string Filter by GitHub App author
|
||||
-a, --assignee string Filter by assignee
|
||||
-A, --author string Filter by author
|
||||
-B, --base string Filter by base branch
|
||||
-d, --draft Filter by draft state
|
||||
-H, --head string Filter by head branch ("<owner>:<branch>" syntax not supported)
|
||||
-q, --jq expression Filter JSON output using a jq expression
|
||||
--json fields Output JSON with the specified fields
|
||||
-l, --label strings Filter by label
|
||||
-L, --limit int Maximum number of items to fetch (default 30)
|
||||
-S, --search query Search pull requests with query
|
||||
-s, --state string Filter by state: {open|closed|merged|all} (default "open")
|
||||
-t, --template string Format JSON output using a Go template; see "gh help formatting"
|
||||
-w, --web List pull requests in the web browser
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
JSON FIELDS
|
||||
additions, assignees, author, autoMergeRequest, baseRefName, baseRefOid, body,
|
||||
changedFiles, closed, closedAt, closingIssuesReferences, comments, commits,
|
||||
createdAt, deletions, files, fullDatabaseId, headRefName, headRefOid,
|
||||
headRepository, headRepositoryOwner, id, isCrossRepository, isDraft, labels,
|
||||
latestReviews, maintainerCanModify, mergeCommit, mergeStateStatus, mergeable,
|
||||
mergedAt, mergedBy, milestone, number, potentialMergeCommit, projectCards,
|
||||
projectItems, reactionGroups, reviewDecision, reviewRequests, reviews, state,
|
||||
statusCheckRollup, title, updatedAt, url
|
||||
|
||||
EXAMPLES
|
||||
# List PRs authored by you
|
||||
$ gh pr list --author "@me"
|
||||
|
||||
# List PRs with a specific head branch name
|
||||
$ gh pr list --head "typo"
|
||||
|
||||
# List only PRs with all of the given labels
|
||||
$ gh pr list --label bug --label "priority 1"
|
||||
|
||||
# Filter PRs using search syntax
|
||||
$ gh pr list --search "status:success review:required"
|
||||
|
||||
# Find a PR that introduced a given commit
|
||||
$ gh pr list --search "<SHA>" --state merged
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr diff
|
||||
|
||||
View changes in a pull request.
|
||||
|
||||
Without an argument, the pull request that belongs to the current branch
|
||||
is selected.
|
||||
|
||||
With `--web` flag, open the pull request diff in a web browser instead.
|
||||
|
||||
|
||||
USAGE
|
||||
gh pr diff [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
--color string Use color in diff output: {always|never|auto} (default "auto")
|
||||
--name-only Display only names of changed files
|
||||
--patch Display diff in patch format
|
||||
-w, --web Open the pull request diff in the browser
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr merge
|
||||
|
||||
Merge a pull request on GitHub.
|
||||
|
||||
Without an argument, the pull request that belongs to the current branch
|
||||
is selected.
|
||||
|
||||
When targeting a branch that requires a merge queue, no merge strategy is required.
|
||||
If required checks have not yet passed, auto-merge will be enabled.
|
||||
If required checks have passed, the pull request will be added to the merge queue.
|
||||
To bypass a merge queue and merge directly, pass the `--admin` flag.
|
||||
|
||||
|
||||
USAGE
|
||||
gh pr merge [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
--admin Use administrator privileges to merge a pull request that does not meet requirements
|
||||
-A, --author-email text Email text for merge commit author
|
||||
--auto Automatically merge only after necessary requirements are met
|
||||
-b, --body text Body text for the merge commit
|
||||
-F, --body-file file Read body text from file (use "-" to read from standard input)
|
||||
-d, --delete-branch Delete the local and remote branch after merge
|
||||
--disable-auto Disable auto-merge for this pull request
|
||||
--match-head-commit SHA Commit SHA that the pull request head must match to allow merge
|
||||
-m, --merge Merge the commits with the base branch
|
||||
-r, --rebase Rebase the commits onto the base branch
|
||||
-s, --squash Squash the commits into one commit and merge it into the base branch
|
||||
-t, --subject text Subject text for the merge commit
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr review
|
||||
|
||||
Add a review to a pull request.
|
||||
|
||||
Without an argument, the pull request that belongs to the current branch is reviewed.
|
||||
|
||||
|
||||
USAGE
|
||||
gh pr review [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
-a, --approve Approve pull request
|
||||
-b, --body string Specify the body of a review
|
||||
-F, --body-file file Read body text from file (use "-" to read from standard input)
|
||||
-c, --comment Comment on a pull request
|
||||
-r, --request-changes Request changes on a pull request
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
EXAMPLES
|
||||
# Approve the pull request of the current branch
|
||||
$ gh pr review --approve
|
||||
|
||||
# Leave a review comment for the current branch
|
||||
$ gh pr review --comment -b "interesting"
|
||||
|
||||
# Add a review for a specific pull request
|
||||
$ gh pr review 123
|
||||
|
||||
# Request changes on a specific pull request
|
||||
$ gh pr review 123 -r -b "needs more ASCII art"
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr checkout
|
||||
|
||||
Check out a pull request in git
|
||||
|
||||
USAGE
|
||||
gh pr checkout [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
-b, --branch string Local branch name to use (default [the name of the head branch])
|
||||
--detach Checkout PR with a detached HEAD
|
||||
-f, --force Reset the existing local branch to the latest state of the pull request
|
||||
--recurse-submodules Update all submodules after checkout
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
EXAMPLES
|
||||
# Interactively select a PR from the 10 most recent to check out
|
||||
$ gh pr checkout
|
||||
|
||||
# Checkout a specific PR
|
||||
$ gh pr checkout 32
|
||||
$ gh pr checkout https://github.com/OWNER/REPO/pull/32
|
||||
$ gh pr checkout feature
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr close
|
||||
|
||||
Close a pull request
|
||||
|
||||
USAGE
|
||||
gh pr close {<number> | <url> | <branch>} [flags]
|
||||
|
||||
FLAGS
|
||||
-c, --comment string Leave a closing comment
|
||||
-d, --delete-branch Delete the local and remote branch after close
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr comment
|
||||
|
||||
Add a comment to a GitHub pull request.
|
||||
|
||||
Without the body text supplied through flags, the command will interactively
|
||||
prompt for the comment text.
|
||||
|
||||
|
||||
USAGE
|
||||
gh pr comment [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
-b, --body text The comment body text
|
||||
-F, --body-file file Read body text from file (use "-" to read from standard input)
|
||||
--create-if-none Create a new comment if no comments are found. Can be used only with --edit-last
|
||||
--delete-last Delete the last comment of the current user
|
||||
--edit-last Edit the last comment of the current user
|
||||
-e, --editor Skip prompts and open the text editor to write the body in
|
||||
-w, --web Open the web browser to write the comment
|
||||
--yes Skip the delete confirmation prompt when --delete-last is provided
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
EXAMPLES
|
||||
$ gh pr comment 13 --body "Hi from GitHub CLI"
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
PUBLIC_API_URL=https://api.roadmap.sh
|
||||
PUBLIC_AVATAR_BASE_URL=https://dodrc8eu8m09s.cloudfront.net/avatars
|
||||
PUBLIC_EDITOR_APP_URL=https://draw.roadmap.sh
|
||||
PUBLIC_EDITOR_APP_URL=https://draw.roadmap.sh
|
||||
PUBLIC_COURSE_APP_URL=http://localhost:5173
|
||||
|
||||
PUBLIC_STRIPE_INDIVIDUAL_MONTHLY_PRICE_ID=
|
||||
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_ID=
|
||||
|
||||
PUBLIC_STRIPE_INDIVIDUAL_MONTHLY_PRICE_AMOUNT=10
|
||||
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_AMOUNT=100
|
||||
2
.github/workflows/cloudfront-api-cache.yml
vendored
@@ -2,7 +2,7 @@ name: Clears API Cloudfront Cache
|
||||
on:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
aws_costs:
|
||||
cloudfront_api_cache:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clear Cloudfront Caching
|
||||
|
||||
4
.github/workflows/cloudfront-fe-cache.yml
vendored
@@ -2,7 +2,7 @@ name: Clears Frontend Cloudfront Cache
|
||||
on:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
aws_costs:
|
||||
cloudfront_fe_cache:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clear Cloudfront Caching
|
||||
@@ -13,4 +13,4 @@ jobs:
|
||||
-H "Authorization: Bearer ${{ secrets.GH_PAT }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
https://api.github.com/repos/roadmapsh/infra-ansible/actions/workflows/playbook.yml/dispatches \
|
||||
-d '{ "ref":"master", "inputs": { "playbook": "roadmap_web.yml", "tags": "cloudfront", "is_verbose": false } }'
|
||||
-d '{ "ref":"master", "inputs": { "playbook": "roadmap_web.yml", "tags": "cloudfront,cloudfront-course", "is_verbose": false } }'
|
||||
|
||||
66
.github/workflows/sync-content-to-repo.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
name: Sync Content to Repo
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
roadmap_slug:
|
||||
description: "The ID of the roadmap to sync"
|
||||
required: true
|
||||
default: "__default__"
|
||||
|
||||
jobs:
|
||||
sync-content:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup pnpm@v9
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
run_install: false
|
||||
|
||||
- name: Setup Node.js Version 20 (LTS)
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Install Dependencies and Sync Content
|
||||
run: |
|
||||
echo "Installing Dependencies"
|
||||
pnpm install
|
||||
echo "Syncing Content to Repo"
|
||||
npm run sync:content-to-repo -- --roadmap-slug=${{ inputs.roadmap_slug }} --secret=${{ secrets.GH_SYNC_SECRET }}
|
||||
|
||||
- name: Check for changes
|
||||
id: verify-changed-files
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "changed=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "changed=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Create PR
|
||||
if: steps.verify-changed-files.outputs.changed == 'true'
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
delete-branch: false
|
||||
branch: "chore/sync-content-to-repo-${{ inputs.roadmap_slug }}"
|
||||
base: "master"
|
||||
labels: |
|
||||
automated pr
|
||||
reviewers: jcanalesluna,kamranahmedse
|
||||
commit-message: "chore: sync content to repo"
|
||||
title: "chore: sync content to repository - ${{ inputs.roadmap_slug }}"
|
||||
body: |
|
||||
## Sync Content to Repo
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This PR Syncs the Content to the Repo for the Roadmap: ${{ inputs.roadmap_slug }}
|
||||
>
|
||||
> Commit: ${{ github.sha }}
|
||||
> Workflow Path: ${{ github.workflow_ref }}
|
||||
|
||||
**Please Review the Changes and Merge the PR if everything is fine.**
|
||||
67
.github/workflows/sync-repo-to-database.yml
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
name: Sync on Roadmap Changes
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'src/data/roadmaps/**'
|
||||
|
||||
jobs:
|
||||
sync-on-changes:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.actor != 'github-actions[bot]' && github.actor != 'dependabot[bot]'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2 # Fetch previous commit to compare changes
|
||||
|
||||
- name: Setup pnpm@v9
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
run_install: false
|
||||
|
||||
- name: Setup Node.js Version 20 (LTS)
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
run: |
|
||||
echo "Getting changed files in /src/data/roadmaps/"
|
||||
|
||||
# Get changed files between HEAD and previous commit
|
||||
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD -- src/data/roadmaps/)
|
||||
|
||||
if [ -z "$CHANGED_FILES" ]; then
|
||||
echo "No changes found in roadmaps directory"
|
||||
echo "has_changes=false" >> $GITHUB_OUTPUT
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Changed files:"
|
||||
echo "$CHANGED_FILES"
|
||||
|
||||
# Convert to space-separated list for the script
|
||||
CHANGED_FILES_LIST=$(echo "$CHANGED_FILES" | tr '\n' ',')
|
||||
|
||||
echo "has_changes=true" >> $GITHUB_OUTPUT
|
||||
echo "changed_files=$CHANGED_FILES_LIST" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install Dependencies
|
||||
if: steps.changed-files.outputs.has_changes == 'true'
|
||||
run: |
|
||||
echo "Installing Dependencies"
|
||||
pnpm install
|
||||
|
||||
- name: Run sync script with changed files
|
||||
if: steps.changed-files.outputs.has_changes == 'true'
|
||||
run: |
|
||||
echo "Running sync script for changed roadmap files"
|
||||
echo "Changed files: ${{ steps.changed-files.outputs.changed_files }}"
|
||||
|
||||
# Run your script with the changed file paths
|
||||
npm run sync:repo-to-database -- --files="${{ steps.changed-files.outputs.changed_files }}" --secret=${{ secrets.GH_SYNC_SECRET }}
|
||||
2
.github/workflows/upgrade-dependencies.yml
vendored
@@ -43,7 +43,7 @@ jobs:
|
||||
## Updated all Dependencies to Latest Versions.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This PR Upgrades the Dependencies to the Latest Their Versions.
|
||||
> This PR Upgrades the Dependencies to the their latest versions.
|
||||
>
|
||||
> Commit: ${{ github.sha }}
|
||||
> Workflow Path: ${{ github.workflow_ref }}
|
||||
|
||||
7
.gitignore
vendored
@@ -28,9 +28,6 @@ pnpm-debug.log*
|
||||
/playwright-report/
|
||||
/playwright/.cache/
|
||||
tests-examples
|
||||
*.csv
|
||||
*.csveditor/
|
||||
|
||||
/editor/*
|
||||
!/editor/readonly-editor.tsx
|
||||
!/editor/renderer/renderer.ts
|
||||
!/editor/renderer/index.tsx
|
||||
packages/editor
|
||||
10
.vscode/settings.json
vendored
@@ -2,5 +2,13 @@
|
||||
"prettier.documentSelectors": ["**/*.astro"],
|
||||
"[astro]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
}
|
||||
},
|
||||
"tailwindCSS.experimental.classRegex": [
|
||||
["\\b\\w+[cC]lassName\\s*=\\s*[\"']([^\"']*)[\"']"],
|
||||
["\\b\\w+[cC]lassName\\s*=\\s*`([^`]*)`"],
|
||||
["[\\w]+[cC]lassName[\"']?\\s*:\\s*[\"']([^\"']*)[\"']"],
|
||||
["[\\w]+[cC]lassName[\"']?\\s*:\\s*`([^`]*)`"],
|
||||
["cva\\(((?:[^()]|\\([^()]*\\))*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"],
|
||||
["cx\\(((?:[^()]|\\([^()]*\\))*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,16 +1,31 @@
|
||||
// https://astro.build/config
|
||||
import sitemap from '@astrojs/sitemap';
|
||||
import tailwind from '@astrojs/tailwind';
|
||||
import node from '@astrojs/node';
|
||||
import { defineConfig } from 'astro/config';
|
||||
import rehypeExternalLinks from 'rehype-external-links';
|
||||
import { serializeSitemap, shouldIndexPage } from './sitemap.mjs';
|
||||
import tailwindcss from '@tailwindcss/vite';
|
||||
|
||||
import react from '@astrojs/react';
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
site: 'https://roadmap.sh/',
|
||||
redirects: {
|
||||
'/devops/devops-engineer': {
|
||||
status: 301,
|
||||
destination: '/devops',
|
||||
},
|
||||
'/ai-tutor': {
|
||||
status: 301,
|
||||
destination: '/ai',
|
||||
},
|
||||
},
|
||||
vite: {
|
||||
server: {
|
||||
allowedHosts: ['roadmap.sh', 'port3k.kamranahmed.info'],
|
||||
},
|
||||
},
|
||||
markdown: {
|
||||
shikiConfig: {
|
||||
theme: 'dracula',
|
||||
@@ -40,21 +55,22 @@ export default defineConfig({
|
||||
],
|
||||
],
|
||||
},
|
||||
output: 'hybrid',
|
||||
output: 'server',
|
||||
adapter: node({
|
||||
mode: 'standalone',
|
||||
}),
|
||||
trailingSlash: 'never',
|
||||
integrations: [
|
||||
tailwind({
|
||||
config: {
|
||||
applyBaseStyles: false,
|
||||
},
|
||||
}),
|
||||
sitemap({
|
||||
filter: shouldIndexPage,
|
||||
serialize: serializeSitemap,
|
||||
}),
|
||||
react(),
|
||||
],
|
||||
vite: {
|
||||
plugins: [tailwindcss()],
|
||||
ssr: {
|
||||
noExternal: [/^@roadmapsh\/editor.*$/],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -55,6 +55,8 @@ Find [the content directory inside the relevant roadmap](https://github.com/kamr
|
||||
- Maximum of 8 links per topic.
|
||||
- Follow the below style guide for content.
|
||||
|
||||
Please note that we are intentionally keeping the content under the topic popup concise. You MUST always aim to explain the topic simply in a **single paragraph** or so and provide external resources where users can learn more about the topic.
|
||||
|
||||
### How To Structure Content
|
||||
|
||||
Please adhere to the following style when adding content to a topic:
|
||||
@@ -77,6 +79,7 @@ Visit the following resources to learn more:
|
||||
- `@course@`
|
||||
- `@podcast@`
|
||||
- `@video@`
|
||||
- `@book@`
|
||||
|
||||
It's important to add a valid type, this will help us categorize the content and display it properly on the roadmap. The order of the links based on type is same as above.
|
||||
|
||||
@@ -123,6 +126,22 @@ It's important to add a valid type, this will help us categorize the content and
|
||||
- PR's that don't follow our style guide, have no description, and a default title.
|
||||
- Links to your own blog articles.
|
||||
|
||||
## Local Development
|
||||
|
||||
For local development, you can use the following commands:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:kamranahmedse/developer-roadmap.git --depth 1
|
||||
cd developer-roadmap
|
||||
pnpm add @roadmapsh/editor@npm:@roadmapsh/dummy-editor -w
|
||||
pnpm install
|
||||
```
|
||||
Run the development server with:
|
||||
|
||||
```bash
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
Have a look at the [License](./license) file.
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
export function ReadonlyEditor(props: any) {
|
||||
return (
|
||||
<div className="fixed bottom-0 left-0 right-0 top-0 z-[9999] border bg-white p-5 text-black">
|
||||
<h2 className="mb-2 text-xl font-semibold">Private Component</h2>
|
||||
<p className="mb-4">
|
||||
Renderer is a private component. If you are a collaborator and have
|
||||
access to it. Run the following command:
|
||||
</p>
|
||||
<code className="mt-5 rounded-md bg-gray-800 p-2 text-white">
|
||||
npm run generate-renderer
|
||||
</code>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
export function Renderer(props: any) {
|
||||
return (
|
||||
<div className="fixed bottom-0 left-0 right-0 top-0 z-[9999] border bg-white p-5 text-black">
|
||||
<h2 className="mb-2 text-xl font-semibold">Private Component</h2>
|
||||
<p className="mb-4">
|
||||
Renderer is a private component. If you are a collaborator and have
|
||||
access to it. Run the following command:
|
||||
</p>
|
||||
<code className="mt-5 rounded-md bg-gray-800 p-2 text-white">
|
||||
npm run generate-renderer
|
||||
</code>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
export function renderFlowJSON(data: any, options?: any) {
|
||||
console.warn("renderFlowJSON is not implemented");
|
||||
console.warn("run the following command to generate the renderer:");
|
||||
console.warn("> npm run generate-renderer");
|
||||
}
|
||||
3
license
@@ -1,6 +1,7 @@
|
||||
Everything including text and images in this project are protected by the copyright laws.
|
||||
You are allowed to use this material for personal use but are not allowed to use it for
|
||||
any other purpose including publishing the images, the project files or the content in the images in any form either digital, non-digital, textual, graphical or written formats.
|
||||
any other purpose including publishing the images, the project files or the content in
|
||||
the images in any form either digital, non-digital, textual, graphical or written formats.
|
||||
You are allowed to share the links to the repository or the website roadmap.sh but not
|
||||
the content for any sort of usage that involves the content of this repository taken out
|
||||
of the repository and be shared from any other medium including but not limited to blog
|
||||
|
||||
125
package.json
@@ -16,85 +16,124 @@
|
||||
"roadmap-links": "node scripts/roadmap-links.cjs",
|
||||
"roadmap-dirs": "node scripts/roadmap-dirs.cjs",
|
||||
"roadmap-assets": "tsx scripts/editor-roadmap-assets.ts",
|
||||
"refresh-assets": "tsx scripts/refresh-assets.ts",
|
||||
"editor-roadmap-dirs": "tsx scripts/editor-roadmap-dirs.ts",
|
||||
"editor-roadmap-content": "tsx scripts/editor-roadmap-content.ts",
|
||||
"roadmap-content": "node scripts/roadmap-content.cjs",
|
||||
"generate-renderer": "sh scripts/generate-renderer.sh",
|
||||
"generate-renderer-dummy": "sh scripts/generate-renderer-dummy.sh",
|
||||
"best-practice-dirs": "node scripts/best-practice-dirs.cjs",
|
||||
"best-practice-content": "node scripts/best-practice-content.cjs",
|
||||
"generate:og": "node ./scripts/generate-og-images.mjs",
|
||||
"warm:urls": "sh ./scripts/warm-urls.sh https://roadmap.sh/sitemap-0.xml",
|
||||
"compress:images": "tsx ./scripts/compress-images.ts",
|
||||
"generate:roadmap-content-json": "tsx ./scripts/editor-roadmap-content-json.ts",
|
||||
"migrate:editor-roadmaps": "tsx ./scripts/migrate-editor-roadmap.ts",
|
||||
"sync:content-to-repo": "tsx ./scripts/sync-content-to-repo.ts",
|
||||
"sync:repo-to-database": "tsx ./scripts/sync-repo-to-database.ts",
|
||||
"migrate:content-repo-to-database": "tsx ./scripts/migrate-content-repo-to-database.ts",
|
||||
"test:e2e": "playwright test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/node": "^8.3.4",
|
||||
"@astrojs/react": "^3.6.2",
|
||||
"@astrojs/sitemap": "^3.2.0",
|
||||
"@astrojs/tailwind": "^5.1.2",
|
||||
"@fingerprintjs/fingerprintjs": "^4.5.0",
|
||||
"@nanostores/react": "^0.8.0",
|
||||
"@ai-sdk/react": "2.0.0-beta.34",
|
||||
"@astrojs/node": "^9.2.1",
|
||||
"@astrojs/react": "^4.2.7",
|
||||
"@astrojs/sitemap": "^3.4.0",
|
||||
"@fingerprintjs/fingerprintjs": "^4.6.2",
|
||||
"@microsoft/clarity": "^1.0.0",
|
||||
"@nanostores/react": "^1.0.0",
|
||||
"@napi-rs/image": "^1.9.2",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.15",
|
||||
"@radix-ui/react-popover": "^1.1.14",
|
||||
"@resvg/resvg-js": "^2.6.2",
|
||||
"@tanstack/react-query": "^5.59.16",
|
||||
"@types/react": "^18.3.11",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"astro": "^4.16.1",
|
||||
"@roadmapsh/editor": "workspace:*",
|
||||
"@shikijs/transformers": "^3.9.2",
|
||||
"@tailwindcss/vite": "^4.1.7",
|
||||
"@tanstack/react-query": "^5.76.1",
|
||||
"@tiptap/core": "^2.12.0",
|
||||
"@tiptap/extension-document": "^2.12.0",
|
||||
"@tiptap/extension-paragraph": "^2.12.0",
|
||||
"@tiptap/extension-placeholder": "^2.12.0",
|
||||
"@tiptap/extension-text": "^2.12.0",
|
||||
"@tiptap/pm": "^2.12.0",
|
||||
"@tiptap/react": "^2.12.0",
|
||||
"@tiptap/suggestion": "^2.12.0",
|
||||
"@types/react": "^19.1.4",
|
||||
"@types/react-dom": "^19.1.5",
|
||||
"astro": "^5.7.13",
|
||||
"clsx": "^2.1.1",
|
||||
"dayjs": "^1.11.13",
|
||||
"dom-to-image": "^2.6.0",
|
||||
"dracula-prism": "^2.1.16",
|
||||
"gray-matter": "^4.0.3",
|
||||
"htm": "^3.1.1",
|
||||
"image-size": "^1.1.1",
|
||||
"jose": "^5.9.4",
|
||||
"image-size": "^2.0.2",
|
||||
"jose": "^6.0.11",
|
||||
"js-cookie": "^3.0.5",
|
||||
"lucide-react": "^0.452.0",
|
||||
"luxon": "^3.5.0",
|
||||
"nanoid": "^5.0.7",
|
||||
"nanostores": "^0.11.3",
|
||||
"node-html-parser": "^6.1.13",
|
||||
"npm-check-updates": "^17.1.3",
|
||||
"playwright": "^1.48.0",
|
||||
"prismjs": "^1.29.0",
|
||||
"react": "^18.3.1",
|
||||
"react-calendar-heatmap": "^1.9.0",
|
||||
"react-confetti": "^6.1.0",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-tooltip": "^5.28.0",
|
||||
"reactflow": "^11.11.4",
|
||||
"katex": "^0.16.22",
|
||||
"lucide-react": "^0.511.0",
|
||||
"luxon": "^3.6.1",
|
||||
"markdown-it-async": "^2.2.0",
|
||||
"nanoid": "^5.1.5",
|
||||
"nanostores": "^1.0.1",
|
||||
"node-html-parser": "^7.0.1",
|
||||
"npm-check-updates": "^18.0.1",
|
||||
"playwright": "^1.52.0",
|
||||
"prismjs": "^1.30.0",
|
||||
"radix-ui": "^1.4.2",
|
||||
"react": "^19.1.0",
|
||||
"react-calendar-heatmap": "^1.10.0",
|
||||
"react-confetti": "^6.4.0",
|
||||
"react-dom": "^19.1.0",
|
||||
"react-dropzone": "^14.3.8",
|
||||
"react-markdown": "^10.1.0",
|
||||
"react-resizable-panels": "^3.0.2",
|
||||
"react-textarea-autosize": "^8.5.9",
|
||||
"react-tooltip": "^5.28.1",
|
||||
"rehype-external-links": "^3.0.0",
|
||||
"rehype-katex": "^7.0.1",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"remark-math": "^6.0.0",
|
||||
"remark-parse": "^11.0.0",
|
||||
"roadmap-renderer": "^1.0.6",
|
||||
"satori": "^0.11.2",
|
||||
"roadmap-renderer": "^1.0.7",
|
||||
"sanitize-html": "^2.17.0",
|
||||
"satori": "^0.13.1",
|
||||
"satori-html": "^0.3.2",
|
||||
"sharp": "^0.33.5",
|
||||
"sharp": "^0.34.1",
|
||||
"shiki": "^3.4.2",
|
||||
"slugify": "^1.6.6",
|
||||
"tailwind-merge": "^2.5.3",
|
||||
"tailwindcss": "^3.4.13",
|
||||
"tailwind-merge": "^3.3.0",
|
||||
"tailwindcss": "^4.1.7",
|
||||
"tippy.js": "^6.3.7",
|
||||
"tiptap-markdown": "^0.8.10",
|
||||
"turndown": "^7.2.0",
|
||||
"unified": "^11.0.5",
|
||||
"zustand": "^4.5.5"
|
||||
"zod": "^4.0.17",
|
||||
"zustand": "^5.0.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.48.0",
|
||||
"@tailwindcss/typography": "^0.5.15",
|
||||
"@ai-sdk/google": "^1.2.18",
|
||||
"@playwright/test": "^1.52.0",
|
||||
"@tailwindcss/typography": "^0.5.16",
|
||||
"@types/dom-to-image": "^2.6.7",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/luxon": "^3.4.2",
|
||||
"@types/prismjs": "^1.26.4",
|
||||
"@types/react-calendar-heatmap": "^1.6.7",
|
||||
"@types/luxon": "^3.6.2",
|
||||
"@types/markdown-it": "^14.1.2",
|
||||
"@types/prismjs": "^1.26.5",
|
||||
"@types/react-calendar-heatmap": "^1.9.0",
|
||||
"@types/react-slick": "^0.23.13",
|
||||
"@types/sanitize-html": "^2.16.0",
|
||||
"@types/turndown": "^5.0.5",
|
||||
"csv-parser": "^3.0.0",
|
||||
"gh-pages": "^6.2.0",
|
||||
"ai": "5.0.0-beta.34",
|
||||
"csv-parser": "^3.2.0",
|
||||
"gh-pages": "^6.3.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"markdown-it": "^14.1.0",
|
||||
"openai": "^4.67.3",
|
||||
"prettier": "^3.3.3",
|
||||
"openai": "^4.100.0",
|
||||
"prettier": "^3.5.3",
|
||||
"prettier-plugin-astro": "^0.14.1",
|
||||
"prettier-plugin-tailwindcss": "^0.6.8",
|
||||
"tsx": "^4.19.1"
|
||||
"prettier-plugin-tailwindcss": "^0.6.11",
|
||||
"tailwind-scrollbar": "^4.0.2",
|
||||
"tsx": "^4.19.4"
|
||||
}
|
||||
}
|
||||
|
||||
0
packages/.gitkeep
Normal file
8142
pnpm-lock.yaml
generated
2
pnpm-workspace.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
packages:
|
||||
- packages/*
|
||||
|
Before Width: | Height: | Size: 351 KiB |
|
Before Width: | Height: | Size: 420 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 431 KiB |
|
Before Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 205 KiB |
|
Before Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 572 KiB |
|
Before Width: | Height: | Size: 283 KiB |
|
Before Width: | Height: | Size: 437 KiB |
|
Before Width: | Height: | Size: 799 KiB |
|
Before Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 756 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 685 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 835 KiB |
|
Before Width: | Height: | Size: 602 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 345 KiB |
|
Before Width: | Height: | Size: 516 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
BIN
public/img/gifs/bot.gif
Normal file
|
After Width: | Height: | Size: 821 KiB |
|
Before Width: | Height: | Size: 386 KiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 256 KiB |
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1013 KiB After Width: | Height: | Size: 1013 KiB |
BIN
public/img/gifs/wave.gif
Normal file
|
After Width: | Height: | Size: 370 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 1021 B After Width: | Height: | Size: 1021 B |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 405 KiB After Width: | Height: | Size: 405 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
BIN
public/img/party.gif
Normal file
|
After Width: | Height: | Size: 936 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 398 KiB After Width: | Height: | Size: 398 KiB |
|
Before Width: | Height: | Size: 286 KiB After Width: | Height: | Size: 286 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |