@@ -29,86 +29,83 @@ function backtickify(str) {
2929function execute ( ) {
3030 var MD_DIR = '../docs/' ;
3131
32- glob ( 'src/docs/*.*' , function ( er , files ) {
33- files . forEach ( function ( file ) {
34- try {
35- fs . unlinkSync ( file ) ;
36- } catch ( e ) {
37- /* seriously, unlink throws when the file doesn't exist :( */
38- }
39- } ) ;
32+ glob . sync ( 'src/docs/*.*' ) . forEach ( function ( file ) {
33+ try {
34+ fs . unlinkSync ( file ) ;
35+ } catch ( e ) {
36+ /* seriously, unlink throws when the file doesn't exist :( */
37+ }
4038 } ) ;
4139
4240 var metadatas = {
4341 files : [ ] ,
4442 } ;
4543
46- glob ( MD_DIR + '**/*.*' , function ( er , files ) {
47- files . forEach ( function ( file ) {
48- var extension = path . extname ( file ) ;
49- if ( extension === '.md' || extension === '.markdown' ) {
50- var content = fs . readFileSync ( file , { encoding : 'utf8' } ) ;
51- var metadata = { } ;
52-
53- // Extract markdown metadata header
54- var both = splitHeader ( content ) ;
55- var lines = both . header . split ( os . EOL ) ;
56- for ( var i = 0 ; i < lines . length - 1 ; ++ i ) {
57- var keyvalue = lines [ i ] . split ( ':' ) ;
58- var key = keyvalue [ 0 ] . trim ( ) ;
59- var value = keyvalue . slice ( 1 ) . join ( ':' ) . trim ( ) ;
60- // Handle the case where you have "Community #10"
61- try { value = JSON . parse ( value ) ; } catch ( e ) { }
62- metadata [ key ] = value ;
63- }
64- metadatas . files . push ( metadata ) ;
65-
66- if ( metadata . permalink . match ( / ^ h t t p s ? : / ) ) {
67- return ;
68- }
69-
70- // Create a dummy .js version that just calls the associated layout
71- var layout = metadata . layout [ 0 ] . toUpperCase ( ) + metadata . layout . substr ( 1 ) + 'Layout' ;
72-
73- var content = (
74- '/**\n' +
75- ' * @generated\n' +
76- ' */\n' +
77- 'var React = require("React");\n' +
78- 'var Layout = require("' + layout + '");\n' +
79- 'var content = ' + backtickify ( both . content ) + '\n' +
80- 'var Post = React.createClass({\n' +
81- ' statics: {\n' +
82- ' content: content\n' +
83- ' },\n' +
84- ' render: function() {\n' +
85- ' return <Layout metadata={' + JSON . stringify ( metadata ) + '}>{content}</Layout>;\n' +
86- ' }\n' +
87- '});\n' +
88- 'module.exports = Post;\n'
89- ) ;
90-
91- var targetFile = 'src/' + metadata . permalink . replace ( / \. h t m l $ / , '.js' ) ;
92- mkdirp . sync ( targetFile . replace ( new RegExp ( '/[^/]*$' ) , '' ) ) ;
93- fs . writeFileSync ( targetFile , content ) ;
44+ var files = glob . sync ( MD_DIR + '**/*.*' ) ;
45+ files . forEach ( function ( file ) {
46+ var extension = path . extname ( file ) ;
47+ if ( extension === '.md' || extension === '.markdown' ) {
48+ var content = fs . readFileSync ( file , { encoding : 'utf8' } ) ;
49+ var metadata = { } ;
50+
51+ // Extract markdown metadata header
52+ var both = splitHeader ( content ) ;
53+ var lines = both . header . split ( os . EOL ) ;
54+ for ( var i = 0 ; i < lines . length - 1 ; ++ i ) {
55+ var keyvalue = lines [ i ] . split ( ':' ) ;
56+ var key = keyvalue [ 0 ] . trim ( ) ;
57+ var value = keyvalue . slice ( 1 ) . join ( ':' ) . trim ( ) ;
58+ // Handle the case where you have "Community #10"
59+ try { value = JSON . parse ( value ) ; } catch ( e ) { }
60+ metadata [ key ] = value ;
9461 }
62+ metadatas . files . push ( metadata ) ;
9563
96- if ( extension === '.json' ) {
97- var content = fs . readFileSync ( file , { encoding : 'utf8' } ) ;
98- metadatas [ path . basename ( file , '.json' ) ] = JSON . parse ( content ) ;
64+ if ( metadata . permalink . match ( / ^ h t t p s ? : / ) ) {
65+ return ;
9966 }
100- } ) ;
101-
102- fs . writeFileSync (
103- 'core/metadata.js' ,
104- '/**\n' +
105- ' * @generated\n' +
106- ' * @providesModule Metadata\n' +
107- ' */\n' +
108- 'module.exports = ' + JSON . stringify ( metadatas , null , 2 ) + ';'
109- ) ;
67+
68+ // Create a dummy .js version that just calls the associated layout
69+ var layout = metadata . layout [ 0 ] . toUpperCase ( ) + metadata . layout . substr ( 1 ) + 'Layout' ;
70+
71+ var content = (
72+ '/**\n' +
73+ ' * @generated\n' +
74+ ' */\n' +
75+ 'var React = require("React");\n' +
76+ 'var Layout = require("' + layout + '");\n' +
77+ 'var content = ' + backtickify ( both . content ) + '\n' +
78+ 'var Post = React.createClass({\n' +
79+ ' statics: {\n' +
80+ ' content: content\n' +
81+ ' },\n' +
82+ ' render: function() {\n' +
83+ ' return <Layout metadata={' + JSON . stringify ( metadata ) + '}>{content}</Layout>;\n' +
84+ ' }\n' +
85+ '});\n' +
86+ 'module.exports = Post;\n'
87+ ) ;
88+
89+ var targetFile = 'src/' + metadata . permalink . replace ( / \. h t m l $ / , '.js' ) ;
90+ mkdirp . sync ( targetFile . replace ( new RegExp ( '/[^/]*$' ) , '' ) ) ;
91+ fs . writeFileSync ( targetFile , content ) ;
92+ }
93+
94+ if ( extension === '.json' ) {
95+ var content = fs . readFileSync ( file , { encoding : 'utf8' } ) ;
96+ metadatas [ path . basename ( file , '.json' ) ] = JSON . parse ( content ) ;
97+ }
11098 } ) ;
11199
100+ fs . writeFileSync (
101+ 'core/metadata.js' ,
102+ '/**\n' +
103+ ' * @generated\n' +
104+ ' * @providesModule Metadata\n' +
105+ ' */\n' +
106+ 'module.exports = ' + JSON . stringify ( metadatas , null , 2 ) + ';'
107+ ) ;
108+
112109 fs . writeFileSync ( 'src/lib/Draft.css' , fs . readFileSync ( '../dist/Draft.css' ) ) ;
113110 fs . writeFileSync ( 'src/lib/Draft.js' , fs . readFileSync ( '../dist/Draft.js' ) ) ;
114111 fs . writeFileSync ( 'src/lib/RichEditor.css' , fs . readFileSync ( '../examples/draft-0-9-1/rich/RichEditor.css' ) ) ;
0 commit comments