@@ -42,25 +42,31 @@ function isAlreadyCheckKeyword(list, keyword) {
42
42
return list . indexOf ( keyword ) !== - 1 ;
43
43
}
44
44
45
- function checkKeyword ( text ) {
45
+ // P ASTからキーワードを抽出する
46
+ function getKeywordsOfParagraphsAsync ( paragraphs ) {
47
+ let _keywords = [ ] ;
48
+ let promiseList = paragraphs . map ( p => {
49
+ let text = nlcstToString ( p ) ;
50
+ return getKeywords ( text ) . then ( keywords => {
51
+ _keywords = _keywords . concat ( keywords ) ;
52
+ } ) ;
53
+ } ) ;
54
+ return Promise . all ( promiseList ) . then ( ( ) => {
55
+ return _keywords ;
56
+ } ) ;
57
+ }
58
+ function checkKeyword ( text ) {
46
59
let ast = mdast . parse ( text ) ;
47
60
let headerLinks = select ( parents ( ast ) , "heading link[href]" ) ;
48
61
let paragraphList = headerLinks . map ( link => {
49
62
let filePath = path . resolve ( rootDir , link . href ) ;
50
63
let paragraphs = findAllAfter ( ast , link . parent . node , "paragraph" ) ;
51
- let results = {
52
- filePath : filePath ,
53
- content : fs . readFileSync ( filePath , "utf-8" ) ,
54
- keywords : [ ]
55
- } ;
56
- let keywords = paragraphs . map ( p => {
57
- let text = nlcstToString ( p ) ;
58
- return getKeywords ( text ) . then ( a => {
59
- results . keywords = results . keywords . concat ( a ) ;
60
- } ) ;
61
- } ) ;
62
- return Promise . all ( keywords ) . then ( ( ) => {
63
- return results ;
64
+ return getKeywordsOfParagraphsAsync ( paragraphs ) . then ( keywords => {
65
+ return {
66
+ filePath : filePath ,
67
+ content : fs . readFileSync ( filePath , "utf-8" ) ,
68
+ keywords : keywords
69
+ } ;
64
70
} ) ;
65
71
} ) ;
66
72
return Promise . all ( paragraphList ) . then ( results => {
0 commit comments