@@ -21,7 +21,7 @@ var models = require("./models");
2121var md = require ( 'reveal.js/plugin/markdown/markdown' ) ;
2222
2323//reveal.js
24- var opts = {
24+ var slideOptions = {
2525 template : fs . readFileSync ( config . slidepath ) . toString ( ) ,
2626 theme : 'css/theme/black.css' ,
2727 highlightTheme : 'zenburn' ,
@@ -107,7 +107,7 @@ function responseHackMD(res, note) {
107107 var body = LZString . decompressFromBase64 ( note . content ) ;
108108 var meta = null ;
109109 try {
110- meta = metaMarked ( body ) . meta ;
110+ meta = models . Note . parseMeta ( metaMarked ( body ) . meta ) ;
111111 } catch ( err ) {
112112 //na
113113 }
@@ -121,7 +121,7 @@ function responseHackMD(res, note) {
121121 var compiled = ejs . compile ( fs . readFileSync ( template , 'utf8' ) , options ) ;
122122 var html = compiled ( {
123123 url : config . serverurl ,
124- title : title ,
124+ title : meta . title || title ,
125125 useCDN : config . usecdn ,
126126 facebook : config . facebook ,
127127 twitter : config . twitter ,
@@ -212,7 +212,7 @@ function showPublishNote(req, res, next) {
212212 var body = LZString . decompressFromBase64 ( note . content ) ;
213213 var meta = null ;
214214 try {
215- meta = metaMarked ( body ) . meta ;
215+ meta = models . Note . parseMeta ( metaMarked ( body ) . meta ) ;
216216 } catch ( err ) {
217217 //na
218218 }
@@ -223,15 +223,17 @@ function showPublishNote(req, res, next) {
223223 title = models . Note . generateWebTitle ( title ) ;
224224 var origin = config . serverurl ;
225225 var data = {
226- title : title ,
226+ title : meta . title || title ,
227+ description : meta . description ,
227228 viewcount : note . viewcount ,
228229 createtime : createtime ,
229230 updatetime : updatetime ,
230231 url : origin ,
231232 body : text ,
232233 useCDN : config . usecdn ,
233234 lastchangeuserprofile : note . lastchangeuser ? models . User . parseProfile ( note . lastchangeuser . profile ) : null ,
234- robots : ( meta && meta . robots ) || false //default allow robots
235+ robots : meta . robots || false , //default allow robots
236+ GA : meta . GA
235237 } ;
236238 return renderPublish ( data , res ) ;
237239 } ) . catch ( function ( err ) {
@@ -527,46 +529,50 @@ function showPublishSlide(req, res, next) {
527529 }
528530 var body = LZString . decompressFromBase64 ( note . content ) ;
529531 try {
530- body = metaMarked ( body ) . markdown ;
532+ var obj = metaMarked ( body ) ;
533+ body = obj . markdown ;
534+ meta = models . Note . parseMeta ( obj . meta ) ;
531535 } catch ( err ) {
532536 //na
533537 }
538+ var text = S ( body ) . escapeHTML ( ) . s ;
534539 var title = models . Note . decodeTitle ( note . title ) ;
535540 title = models . Note . generateWebTitle ( title ) ;
536- var text = S ( body ) . escapeHTML ( ) . s ;
537- render ( res , title , text ) ;
541+ var slides = md . slidify ( text , slideOptions ) ;
542+ var origin = config . serverurl ;
543+ var data = {
544+ url : origin ,
545+ title : meta . title || title ,
546+ description : meta . description ,
547+ theme : slideOptions . theme ,
548+ highlightTheme : slideOptions . highlightTheme ,
549+ slides : slides ,
550+ options : JSON . stringify ( slideOptions . revealOptions , null , 2 ) ,
551+ GA : meta . GA
552+ } ;
553+ return renderPublishSlide ( data , res ) ;
538554 } ) . catch ( function ( err ) {
539555 logger . error ( err ) ;
540556 return response . errorInternalError ( res ) ;
541557 } ) ;
542558 } ) ;
543559}
544560
545- //reveal.js render
546- var render = function ( res , title , markdown ) {
547- var slides = md . slidify ( markdown , opts ) ;
548-
561+ function renderPublishSlide ( data , res ) {
549562 var template = config . slidepath ;
550563 var options = {
551564 cache : ! config . debug ,
552565 filename : template
553566 } ;
554567 var compiled = ejs . compile ( fs . readFileSync ( template , 'utf8' ) , options ) ;
555- var html = compiled ( {
556- url : config . serverurl ,
557- title : title ,
558- theme : opts . theme ,
559- highlightTheme : opts . highlightTheme ,
560- slides : slides ,
561- options : JSON . stringify ( opts . revealOptions , null , 2 )
562- } ) ;
568+ var html = compiled ( data ) ;
563569 var buf = html ;
564570 res . writeHead ( 200 , {
565571 'Content-Type' : 'text/html; charset=UTF-8' ,
566572 'Cache-Control' : 'private' ,
567573 'Content-Length' : buf . length
568574 } ) ;
569575 res . end ( buf ) ;
570- } ;
576+ }
571577
572578module . exports = response ;
0 commit comments