}
$token = Str::random(10);
- $files = $this->getFilesById($id);
+ $fluidbook=FluidbookPublication::find($id);
+ $contents=$fluidbook->getAccessibleContents();
- return view('fluidbook_publication.markdown_editor', ['files' => $files, 'version' => 'stable', 'id' => $id, 'fluidbook' => FluidbookPublication::find($id), 'access' => "", 'token' => $token]);
- }
-
- public function getFilesById($id)
- {
- //$p = $request->page;;
- $files = Files::getRecursiveDirectoryIterator(public_path("/markdown_files/$id"), true);
-
- return $files;
-
- //if(!file_exists($path)) return false;
-
- //return file_get_contents(public_path("/markdown_files/$id/p$p.md"));
+ return view('fluidbook_publication.markdown_editor', ['contents' => $contents, 'version' => 'stable', 'id' => $id, 'fluidbook' => $fluidbook, 'access' => "", 'token' => $token]);
}
}
return self::_getDocument($compo[0])->getHightlightFile($compo[1], $this->search_mode ?: 'standard', $this->ignoreSearchSeparators);
}
- public function getAccessibleFile($page,$format='md'){
+ public function getAccessibleFile($page, $format = 'md')
+ {
$compo = $this->getComposition()[$page];
return self::_getDocument($compo[0])->getMarkdown($compo[1]);
}
+ public function getAccessibleContents($revision = 'latest')
+ {
+ $file = Files::mkdir($this->protected_path('fluidbookpublication/accessible/' . $this->id . '/')) . $revision . '.accessible.gz';
+ if (!file_exists($file)) {
+ if ($revision === 'latest') {
+ $json = ['pages' => []];
+ foreach ($this->getComposition() as $page => $d) {
+ $json['pages'][$page] = file_get_contents($this->getAccessibleFile($page));
+ }
+
+ file_put_contents($file, gzencode(json_encode($json)));
+ return $json;
+ }
+ } else {
+ return json_decode(gzdecode(file_get_contents($file)),true);
+ }
+ }
+
public function getPDFSplitSource($page)
{
if ($page > $this->getPagesNumber()) {
$fbdata['settings']['pages']=$fbdata['pages']=$fluidbook->getPagesNumber();
$fbdata['settings']['imageFormat']=$fluidbook->getImageFormat();
$fbdata['page_dimensions']=[];
-
- $collection = collect($files);
- $filesdata = $collection->flatMap(function($item) {
- $filename = $item->getFilename();
- return [$filename => file_get_contents($item)];
- } );
- $sorted = $filesdata->sortKeys();
@endphp
@extends('layouts.markdowneditor')
@push('markdown_scripts')
<script>
var FLUIDBOOK_DATA = @json($fbdata);
- var MARKDOWN_DATA = {}
- @foreach($filesdata as $key => $data)
- @if(strstr($key,".md"))
- MARKDOWN_DATA["{{explode('.',$key)[0]}}"] = `{!! $data !!}`;
- @endif
- @endforeach
+ var MARKDOWN_DATA = @json($contents['pages']);
</script>
<script
src="/packages/markdowneditor/js/markdowneditor.js?v={{filemtime(public_path('packages/markdowneditor/js/markdowneditor.js'))}}"></script>