11var tree = require ( 'markdown-tree' )
22var cheerio = require ( 'cheerio' )
33var marked = require ( 'marked' )
4+ var unhtml = require ( 'unhtml' )
45var path = require ( 'path' )
56var fs = require ( 'fs' )
67
8+ console . error ( )
9+ console . error ( 'extracting examples' )
10+
711var examples = tree (
812 fs . readFileSync ( path . join ( __dirname , 'examples.md' ) , 'utf8' )
913) . children [ 0 ]
@@ -27,9 +31,12 @@ var examples = tree(
2731 var head = cheerio . load ( marked ( example . text ) )
2832 var link = head ( 'a' )
2933 var feat = ! ! head ( 'em' ) . length
34+ var name = link . text ( )
35+
36+ console . error ( '*' , name )
3037
3138 return {
32- name : link . text ( )
39+ name : name
3340 , link : link . attr ( 'href' )
3441 , desc : feat && html . trim ( ) || ''
3542 , thumb : thumb
@@ -46,3 +53,49 @@ var examples = tree(
4653fs . writeFileSync ( __dirname + '/../build/examples.json'
4754 , JSON . stringify ( examples , null , 2 )
4855)
56+
57+ console . error ( )
58+ console . error ( 'extracting packages' )
59+
60+ var packages = tree (
61+ fs . readFileSync ( path . join ( __dirname , 'packages.md' ) , 'utf8' )
62+ ) . children [ 0 ]
63+ . children
64+ . reduce ( function ( list , category ) {
65+ category . text = unhtml ( category . text )
66+
67+ list [ category . text ] = category . children . map ( function ( pkg , i ) {
68+ pkg . tokens . links = { }
69+
70+ var name = unhtml ( pkg . text )
71+ var html = marked . Parser . parse ( pkg . tokens )
72+ var thumb
73+
74+ var $ = cheerio . load ( html )
75+
76+ $ ( 'img' ) . each ( function ( i , img ) {
77+ var $img = $ ( img )
78+ thumb = $img . attr ( 'src' )
79+ $img . parent ( ) . remove ( )
80+ } )
81+
82+ var desc = $ . html ( )
83+
84+ console . error ( '*' , category . text , '/' , name )
85+
86+ return {
87+ name : name
88+ , desc : desc
89+ , link : 'http://ghub.io/' + name
90+ , thumb : thumb || ''
91+ , featured : false
92+ , i : i
93+ }
94+ } )
95+
96+ return list
97+ } , { } )
98+
99+ fs . writeFileSync ( __dirname + '/../build/packages.json'
100+ , JSON . stringify ( packages , null , 2 )
101+ )
0 commit comments