class ReadmeType {
public static function manifest(){
return array(
'uid' => 'readme',
'label' => 'README',
'icon' => 'fas fa-book-reader',
'color' => '#ffffff',
'background' => '#000000',
'description' => 'Fichier texte de type "lisez moi", utilise du markdown pour la mise en forme',
'fromExtension' => array('md'),
'toExtension' => 'md',
'default' => '# Sommaire'.PHP_EOL.'Votre contenu ici...',
);
}
/* EDITION */
public static function toHtml($resource,$sketch=null){
$infos = self::manifest();
return array(
'html'=>''.$resource->content.'',
'javascript' => "
hackpoint_resource_mirrorify('.markdown-text',{
mode : 'markdown',
lineNumbers : false,
theme : 'monokai',
readOnly : false
});
"
);
}
/* IMPORT / EXPORT */
//Import depuis un glisser déposé du fichier
public static function fromFile($resource,$sketch=null){
$enc = mb_detect_encoding($resource->content,"UTF-8, ISO-8859-1, GBK");
if($enc!='UTF-8')
$resource->content = iconv($enc,"utf-8",$resource->content);
return $resource;
}
//Export vers un fichier brut
public static function toFile($resource){
$infos = self::manifest();
return array(
'name'=> slugify($resource->label).'.'.$infos['toExtension'],
'content' => html_entity_decode($resource->content)
);
}
//Import depuis un flux json compressé de la ressource
public static function fromJson($resource){
return $resource;
}
//export en fichier JSON compressé de la ressource
public static function toJson($resource){
$resource = $resource->toArray();
$resource['content'] = htmlspecialchars($resource['content']);
return $resource;
}
}
?>