@@ -11,11 +11,11 @@ export const skillDocMap = {
1111'Modern CSharp' :{ icon :'🦖' , description :'' } ,
1212Articles :{ icon :'📰' , description :'Regular articles' } ,
1313Avalonia :{ icon :'😱' , description :'AvaloniaUI' } ,
14- Docker :{ icon :'🐳' , description :'Ultimate Docker ' } ,
14+ Docker :{ icon :'🐳' , description :'' } ,
1515Git :{ icon :'😸' , description :'Git mastery' } ,
16- JavaScript :{ icon :'😅' , description :'' } ,
16+ JavaScript :{ icon :'😅' , description :'Not funny ' } ,
1717// SQL: { icon: '🦭', description: '' },
18- TypeScript :{ icon :'🤯' , description :'' } ,
18+ TypeScript :{ icon :'🤯' , description :'Type wizard I will become... ' } ,
1919// VBA: { icon: '💩', description: 'VBA for excel' },
2020// Vue3: { icon: '⚡', description: '' },
2121'Unsafe CSharp' :{ icon :'😎' , description :'Entering the danger zone...' } ,
@@ -24,15 +24,17 @@ export const skillDocMap = {
2424// description: 'Make your own nvim color scheme using lua.',
2525// },
2626Bash :{ icon :'🐢' , description :'Shebang!' } ,
27- 'Regular Expression' :{ icon :'🐫' , description :'Memory lossss forevery 6 months' } ,
27+ 'Regular Expression' :{ icon :'🐫' , description :"Can't remember it for2 days" } ,
2828Nix :{ icon :'❄' , description :'Reproduce freedom' } ,
2929'Entity Framework Core' :{ icon :'🗿' , description :'' } ,
3030'HTML & CSS' :{ icon :'😬' , description :'' } ,
31- PowerShell :{ icon :'🐚' , description :'' } ,
32- Lua :{ icon :'🌝' , description :'' } ,
31+ PowerShell :{ icon :'🐚' , description :'A pretty solid shell ' } ,
32+ Lua :{ icon :'🌝' , description :'I wish lua could have JavaScript syntax ' } ,
3333} as const satisfies DocumentInfo ;
3434
35- const readingDocMap = { } as const satisfies DocumentInfo ;
35+ const readingDocMap = {
36+ Test :{ icon :'🚗' , description :'this is a test' } ,
37+ } as const satisfies DocumentInfo ;
3638
3739export type DocumentName = keyof typeof skillDocMap | keyof typeof readingDocMap ;
3840
@@ -80,21 +82,32 @@ class DocumentService implements IDocumentService {
8082}
8183}
8284
85+ /**
86+ *@param name - nameof document
87+ *@returns the very parent folder of the document
88+ */
8389getDocumentEntryFolder ( name :DocumentName ) :FileSystem . DirectoryInfo {
8490if ( name === 'Articles' ) {
8591return this . articleDocParent ;
8692}
87- const ret = this . registeredDocumentFolders ( ) . find ( x => x . name === name ) ;
93+
94+ let src :FileSystem . DirectoryInfo ;
95+
96+ if ( Object . keys ( skillDocMap ) . includes ( name ) ) {
97+ src = this . skillDocParent ;
98+ } else if ( Object . keys ( readingDocMap ) . includes ( name ) ) {
99+ src = this . readingDocParent ;
100+ }
101+
102+ const ret = src . getDirectories ( ) . find ( x => x . name === name ) ;
88103if ( ! ret ) throw new Error ( `Document entry of "${ name } " not found.` ) ;
89104return ret ;
90105}
91106
92- registeredDocumentFolders ( ) :FileSystem . DirectoryInfo [ ] {
93- return this . skillDocParent
94- . getDirectories ( )
95- . filter ( x => Object . keys ( skillDocMap ) . includes ( x . name ) ) ;
96- }
97-
107+ /**
108+ *@param name - nameof the document
109+ *@returns docs folder of the document
110+ */
98111getMarkdownEntryFolder ( name :DocumentName ) :FileSystem . DirectoryInfo {
99112const ret = this . getDocumentEntryFolder ( name )
100113. getDirectories ( )
@@ -103,6 +116,11 @@ class DocumentService implements IDocumentService {
103116return ret ;
104117}
105118
119+ /**
120+ * find a entry file location for given document name
121+ *@param name - nameof document
122+ *@returns relative path to the document file
123+ */
106124tryGetIndexLinkOfDocument ( name :DocumentName ) :string {
107125if ( this . isEmptyDocument ( name ) ) return '/' ;
108126
@@ -112,8 +130,15 @@ class DocumentService implements IDocumentService {
112130} ;
113131
114132const shouldSolveSharpSign = ( name :DocumentName ) => name . includes ( '#' ) ;
133+
134+ let src :FileSystem . DirectoryInfo ;
135+ if ( Object . keys ( skillDocMap ) . includes ( name ) ) {
136+ src = this . skillDocParent ;
137+ } else if ( Object . keys ( readingDocMap ) . includes ( name ) ) {
138+ src = this . readingDocParent ;
139+ }
115140const markdownEntry = this . getMarkdownEntryFolder ( name ) ;
116- let linkContext = `${ this . skillDocParent . name } /${ name } /` ;
141+ let linkContext = `document/ ${ src . name } /${ name } /` ;
117142
118143if ( markdownEntry . getFiles ( ) . length ) {
119144const file = Enumerable . from ( markdownEntry . getFiles ( ) )