developer oriented presentation engine introduction
TRANSCRIPT
ContentsGettingstartedCreatingslidesSlidenotesEmbeddingmediaInlinesourcecodeOutputsPresentingThankyou
Gettingstarted(1/2)MavendrivesthepresentationbuildYoucancreateamavenprojectskeletonwiththedope-archetype:mvnarchetype:generate-DarchetypeArtifactId=dope-archetype\-DarchetypeGroupId=com.nitorcreations-DgroupId=foo.bar\-DdeveloperName="PasiNiemi"-DorganizationName="NitorCreations"\-DinceptionYear=2013-Dname="BazBarAwesomeness"\-Dtheme=light-DartifactId=baz-prez-DinteractiveMode=falseParametersexplainedhere:https://github.com/NitorCreations/dope-archetype
Gettingstarted(2/2)Addyourslidesinsrc/main/resources/markdownJavaFXneedstobeonyourJDKclasspath
Youmayneedtorunmvncom.zenjava:javafx-maven-plugin:2.0:fix-classpathOnetimeonlyoperationperJDKJava8hasthissorted
TheprojectcontainsalloftheruntimejavacodeYoucanchangeallruntimebehaviourlike:
controllershttpserveranimations
Creatingslides(1/2)SlidesshowninalphabeticalorderExceptthetitleslideisalwaysfirstNameyourslidefilestogetcorrectordere.g.:
01_agenda.md10_introduction.md12_introduction_cont.md
Creatingslides(2/2)SlidesaremarkdowninterpretedwithpegdownSomeextensionsareenabled:AUTOLINKS URLswillbeturnedintoalinktothatURLTABLES simplemultimarkdown-styletablesFENCEDCODEBLOCKS codeblockswillbesyntaxhighlightedwithpygments
SlidenotesSlidenotesaremarkdownfilesnamed{slidename}.md.notesTheyappearinthehttpinterfaceforrunningthepresentation
Needtohave{slidename}.mdforthenotestobeaddednexttotheslideSlidesareservedasiframes,butnotesarejustembeddedintheindexhtml
EmbeddingmediaYoucanembedimageswithasimplemarkdownelement
![Myface](pasi_niemi_2013.jpg)Orembedhtmlifyouneedmorecontrolwithe.g.classesandidsforcssForvideosyouneedtoembedhtml
<videowidth="auto"controls><sourcesrc="oracle_event_final.mp4"type="video/mp4"/><imgwidth="auto"src="oracle_event_final.jpeg"/></video>
VideohandlingThebuildsystemfindsvideoelementsatcompiletime
RecordsthelocationandsizeoftheplaceholderimageAtruntimeduringpresentationinitializationtheengineextractsthevideointoatemporaryfileAsyoutraversepasttheslidewiththevideo,thepresentationzoomsinontheplaceholderandstartsanexternalplayer
videoplayer{video}onmyRaspberryPithisis/usr/bin/videoplayer
#!/bin/bash
exec/usr/bin/omxplayer"$@"
Inlinesourcecodepygmentssupportslotsoflanguages-herearesomesamplesPythonprinthighlight(code,PythonLexer(),HtmlFormatter())Haskelllet(a:b:c:[])="xyz"inaDimportstd.stdio;
voidmain(){ulonglines=0;andlotsmoreathttp://pygments.org/languages/
OutputsMavenbuildoutputsthepresentationinseveralformats
HTMLisusedasthesourceforpngandpdfrenderingPNGimagesofeachslideinFullHDandsmallsizesPDFforeasysharing(naturallywithoutvideos)JavaFXjarthatcanberunonanycomputerwithJavaFXinstalled
HTML,PNGandPDFformatsaredownloadablefromthehttpinterfaceHTMLandPNGasZipfileswithrelevantfilesinside(includingvideos)PDFasasinglefile
PresentingYoucanrunthepresentationwithanyjavathathasJavaFXinstalled:java-Dhttpport=9999-Dhttprunpasswords=.passwords-Dnocache=true\-jarmy-presentation-1.0-SNAPSHOT-jfx.jarThepresentationcanthenbecontrolledwithakeyboard,awiimoteorabrowserAdvancedusageexplainedhere:https://github.com/NitorCreations/javaone-shanghai-2013-javafx-presentationVideodetailingpresentationusehere:http://www.youtube.com/watch?v=1sdZpecv9a8
ThankYou!Hopeyouhavefunwithit
Ifyoudocomeupwithextensionsyouarewillingtorelease,pleaseletmeknowThispresentationsourceavailablehere:https://github.com/NitorCreations/dope-intro