Desktop markdown wiki app. Built with node, Electron Framework and AngularJS.

index.html 8.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. <!DOCTYPE html>
  2. <html class="no-js">
  3. <head>
  4. <title>Codex</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <!-- Stylesheets -->
  7. <link rel="stylesheet" href="../css/tomorrow-night-eighties.css">
  8. <link rel="stylesheet" href="../css/photon.min.css">
  9. <link rel="stylesheet" href="../css/codex.css">
  10. <!-- Javascript -->
  11. <script src="../bower_components/jquery/dist/jquery.js"></script>
  12. <script src="../bower_components/ace-builds/src-min-noconflict/ace.js"></script>
  13. <script src="../bower_components/angular/angular.js"></script>
  14. <script src="../bower_components/angular-ui-router/release/angular-ui-router.js"></script>
  15. <script src="../bower_components/angular-sanitize/angular-sanitize.js"></script>
  16. <script src="../bower_components/angular-ui-ace/ui-ace.js"></script>
  17. <script src="../bower_components/angular-highlightjs/src/angular-highlightjs.js"></script>
  18. <script src='../bower_components/ngInfiniteScroll/build/ng-infinite-scroll.min.js'></script>
  19. <script src="scripts/highlight.pack.js"></script>
  20. <script src="scripts/codex-app.js"></script>
  21. <script src="scripts/controllers/app-ctrl.js"></script>
  22. <script src="scripts/controllers/header-ctrl.js"></script>
  23. <script src="scripts/controllers/footer-ctrl.js"></script>
  24. <script src="scripts/controllers/sidebar-ctrl.js"></script>
  25. <script src="scripts/controllers/note-view-ctrl.js"></script>
  26. <script src="scripts/controllers/note-edit-ctrl.js"></script>
  27. <script src="scripts/controllers/image-view-ctrl.js"></script>
  28. <script src="scripts/services/file-service.js"></script>
  29. <script src="scripts/services/search-service.js"></script>
  30. <script src="scripts/services/thumbnail-service.js"></script>
  31. <script src="scripts/services/prefs-service.js"></script>
  32. <script src="scripts/services/date-formatter.js" charset="utf-8"></script>
  33. <script src="scripts/directives/right-click-directive.js"></script>
  34. <script src="scripts/directives/ng-enter.js"></script>
  35. <script>
  36. var remote = require('remote');
  37. var ipc = require('ipc');
  38. var dialog = remote.require('dialog');
  39. var Menu = remote.require('menu');
  40. var template = [
  41. {
  42. label: 'Codex',
  43. submenu: [
  44. {
  45. label: 'About Codex',
  46. selector: 'orderFrontStandardAboutPanel:'
  47. },
  48. {
  49. type: 'separator'
  50. },
  51. {
  52. label: 'Preferences',
  53. accelerator: 'CommandOrControl+,',
  54. click: function () {
  55. ipc.send('show-preferences-window')
  56. }
  57. },
  58. {
  59. type: 'separator'
  60. },
  61. {
  62. label: 'Services',
  63. submenu: []
  64. },
  65. {
  66. type: 'separator'
  67. },
  68. {
  69. label: 'Hide Codex',
  70. accelerator: 'Command+H',
  71. selector: 'hide:'
  72. },
  73. {
  74. label: 'Hide Others',
  75. accelerator: 'Command+Shift+H',
  76. selector: 'hideOtherApplications:'
  77. },
  78. {
  79. label: 'Show All',
  80. selector: 'unhideAllApplications:'
  81. },
  82. {
  83. type: 'separator'
  84. },
  85. {
  86. label: 'Quit',
  87. accelerator: 'Command+Q',
  88. selector: 'terminate:'
  89. },
  90. ]
  91. },
  92. {
  93. label: 'Edit',
  94. submenu: [
  95. {
  96. label: 'Undo',
  97. accelerator: 'Command+Z',
  98. selector: 'undo:'
  99. },
  100. {
  101. label: 'Redo',
  102. accelerator: 'Shift+Command+Z',
  103. selector: 'redo:'
  104. },
  105. {
  106. type: 'separator'
  107. },
  108. {
  109. label: 'Cut',
  110. accelerator: 'Command+X',
  111. selector: 'cut:'
  112. },
  113. {
  114. label: 'Copy',
  115. accelerator: 'Command+C',
  116. selector: 'copy:'
  117. },
  118. {
  119. label: 'Paste',
  120. accelerator: 'Command+V',
  121. selector: 'paste:'
  122. },
  123. {
  124. label: 'Select All',
  125. accelerator: 'Command+A',
  126. selector: 'selectAll:'
  127. }
  128. ]
  129. },
  130. {
  131. label: 'View',
  132. submenu: [
  133. {
  134. label: 'Reload',
  135. accelerator: 'Command+R',
  136. click: function() { remote.getCurrentWindow().reload(); }
  137. },
  138. {
  139. label: 'Toggle DevTools',
  140. accelerator: 'Alt+Command+I',
  141. click: function() { remote.getCurrentWindow().toggleDevTools(); }
  142. },
  143. ]
  144. },
  145. {
  146. label: 'Window',
  147. submenu: [
  148. {
  149. label: 'Minimize',
  150. accelerator: 'Command+M',
  151. selector: 'performMiniaturize:'
  152. },
  153. {
  154. label: 'Close',
  155. accelerator: 'Command+W',
  156. selector: 'performClose:'
  157. },
  158. {
  159. type: 'separator'
  160. },
  161. {
  162. label: 'Bring All to Front',
  163. selector: 'arrangeInFront:'
  164. }
  165. ]
  166. },
  167. {
  168. label: 'Help',
  169. submenu: []
  170. }
  171. ];
  172. menu = Menu.buildFromTemplate(template);
  173. Menu.setApplicationMenu(menu);
  174. </script>
  175. </head>
  176. <body ng-app="codexApp">
  177. <div class="window">
  178. <header class="toolbar toolbar-header" ng-controller="HeaderCtrl">
  179. <h1 class="title">Codex</h1>
  180. <div class="toolbar-actions">
  181. <button class="btn btn-default" ng-click="goToHome()">
  182. <span class="icon icon-home"></span>
  183. </button>
  184. <div class="btn-group">
  185. <button class="btn btn-default" ng-click="goBack()">
  186. <span class="icon icon-left"></span>
  187. </button>
  188. <button class="btn btn-default" ng-click="goForward()">
  189. <span class="icon icon-right"></span>
  190. </button>
  191. </div>
  192. <button class="btn btn-default" ng-click="createNewNote()">
  193. <span class="icon icon-plus"></span>
  194. </button>
  195. <button class="btn btn-default" ng-click="toogleSidebar()">
  196. <span class="icon icon-list"></span>
  197. </button>
  198. <div class="btn-group pull-right">
  199. <button class="btn btn-default" ng-class="noteEditBtnClass" ng-click="activateNoteEdit()">
  200. <span class="icon icon-pencil"></span>
  201. </button>
  202. <button class="btn btn-default" ng-class="noteViewBtnClass" ng-click="activateNoteView()">
  203. <span class="icon icon-eye"></span>
  204. </button>
  205. </div>
  206. <div class="btn-group pull-right">
  207. <form>
  208. <div class="form-group">
  209. <input type="text" ng-model="search_text" ng-enter="fileSearch()" class="form-control" placeholder="Search" style="height: 24px;">
  210. </div>
  211. </form>
  212. </div>
  213. </div>
  214. </header>
  215. <!-- Your app's content goes inside .window-content -->
  216. <div class="window-content" id="holder">
  217. <div class="pane-group">
  218. <div class="pane pane-sm sidebar" ng-controller="SidebarCtrl" ng-show="showSidebar">
  219. <nav class="nav-group">
  220. <h5 class="nav-group-title">My Notes</h5>
  221. <span class="nav-group-item" ng-class="sidebar[0].active" ng-click="goToAllNotes()">
  222. <span class="icon icon-folder"></span>
  223. All Notes
  224. </span>
  225. <span class="nav-group-item" ng-class="sidebar[1].active" ng-click="goToAllFiles()">
  226. <span class="icon icon-archive"></span>
  227. All Files
  228. </span>
  229. <span class="nav-group-item" ng-class="sidebar[2].active" ng-click="goToNotebooks()">
  230. <span class="icon icon-book"></span>
  231. Notebooks
  232. </span>
  233. <h5 class="nav-group-title">Favorites</h5>
  234. <span class="nav-group-item">
  235. <span class="icon icon-star"></span>
  236. Starred
  237. </span>
  238. </nav>
  239. </div>
  240. <div class="pane" ui-view ></div>
  241. </div>
  242. </div>
  243. <footer class="toolbar toolbar-footer" ng-controller="FooterCtrl">
  244. <h1 class="title">{{footer_info}}</h1>
  245. </footer>
  246. </div>
  247. </body>
  248. </html>