0.2 cleanup

This commit is contained in:
Peter Molnar 2016-07-09 20:25:43 +00:00
parent 456b48c112
commit 50e58d78aa
3 changed files with 49 additions and 45 deletions

View file

@ -2,7 +2,7 @@
"name": "petermolnar/wp-flatexport", "name": "petermolnar/wp-flatexport",
"description": "auto-export WordPress contents to folders and plain text + markdown files for longetivity and portability", "description": "auto-export WordPress contents to folders and plain text + markdown files for longetivity and portability",
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.4.0",
}, },
"license": "GPLv3", "license": "GPLv3",
"authors": [ "authors": [

View file

@ -1,17 +1,14 @@
=== wp-flatexport === === wp-flatexport ===
Contributors: cadeyrn Contributors: cadeyrn
Donate link: https://paypal.me/petermolnar/3 Tags: plain text, export, backup
Tags: plain text, export, longnow Requires at least: 4.2
Requires at least: 3.0 Tested up to: 4.5.3
Tested up to: 4.4.2
Stable tag: 0.2 Stable tag: 0.2
License: GPLv3 License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html License URI: http://www.gnu.org/licenses/gpl-3.0.html
Required minimum PHP version: 5.3
Auto-export all published content on visit to flat, folder + files based structure. Auto-export all published content on visit to flat, folder + files based structure.
== Description == == Description ==
*WARNING* *WARNING*
@ -25,7 +22,7 @@ Content will be exported to wp-content/flat/{post_slug}/ folder ( one folder per
The content will be placed into in item.md file. This is a markdown file, with some plain test headers. The content will be placed into in item.md file. This is a markdown file, with some plain test headers.
Comments are exported into the same folder, named comment-{comment_id}.md; the format is similar for those as well. Comments are exported into the same folder, named comment-{comment_id}.md; the format is similar for those as well.
This is not a backup! **This is not a backup!**
The goal of the plugin is to have a portable, plain text, easy to read, easy to copy version of you content on WordPress. Since not all data is exported, your site cannot be reconstructed from these exports. The goal of the plugin is to have a portable, plain text, easy to read, easy to copy version of you content on WordPress. Since not all data is exported, your site cannot be reconstructed from these exports.
== Requirements == == Requirements ==

View file

@ -28,7 +28,7 @@ Required minimum PHP version: 5.4
namespace WP_FLATEXPORTS; namespace WP_FLATEXPORTS;
define ( 'force', true ); define ( 'force', false );
define ( 'basedir', 'flat' ); define ( 'basedir', 'flat' );
define ( 'basefile', 'item.md' ); define ( 'basefile', 'item.md' );
define ( 'maxattachments', 100 ); define ( 'maxattachments', 100 );
@ -230,6 +230,13 @@ function plain_text_post ( $postid = false ) {
$out .= "{$postdata['author']}\n\n"; $out .= "{$postdata['author']}\n\n";
} }
if ( isset( $postdata['geo'] ) && ! empty( $postdata['geo'] ) ) {
$out .= "Location\n";
$out .= "--------\n";
$out .= "{$postdata['geo']}\n\n";
}
if ( ! empty( $postdata['tags'] ) ) { if ( ! empty( $postdata['tags'] ) ) {
$tags = array(); $tags = array();
foreach ( $postdata['tags'] as $k => $tag ) { foreach ( $postdata['tags'] as $k => $tag ) {
@ -356,6 +363,29 @@ function post_content ( &$post ) {
// find images and replace them with footnote versions ? // find images and replace them with footnote versions ?
// word-wrap magic
/*
$fenced_o = array();
preg_match_all( "/^```(.*?)[\n\r](.*?)```/mis", $content, $fenced_o );
file_put_contents('/tmp/fenced.out', var_export($fenced_o, true) );
$content = wordwrap( $content, 72 );
$fenced_n = array();
preg_match_all( "/^```(.*?)[\n\r](.*?)```/mis", $content, $fenced_n );
file_put_contents('/tmp/fenced_.out', var_export($fenced_n, true) );
//debug ( $fenced_n );
foreach ( array_keys( $fenced_o[0] ) as $k ) {
if ( $fenced_o[0][$k] != $fenced_n[0][$k] ) {
$content = str_replace ( $fenced_n[0][$k], $fenced_o[0][$k], $content );
}
}
*/
return $content; return $content;
} }
@ -420,6 +450,18 @@ function raw_post_data ( &$post = null ) {
// read tags // read tags
$tags = \wp_get_post_terms( $post->ID, 'post_tag' ); $tags = \wp_get_post_terms( $post->ID, 'post_tag' );
// geo
$geo = '';
$lat = \get_post_meta ( $post->ID, 'geo_latitude' , true );
$lon = \get_post_meta ( $post->ID, 'geo_longitude' , true );
$alt = \get_post_meta ( $post->ID, 'geo_altitude' , true );
if ( !empty( $lat ) && !empty( $lon ) )
$geo = "{$lat},{$lon}";
if ( !empty( $alt ) )
$geo .= "@{$alt}";
// assemble the data // assemble the data
$out = array ( $out = array (
'title' => trim( \get_the_title( $post->ID ) ), 'title' => trim( \get_the_title( $post->ID ) ),
@ -430,48 +472,13 @@ function raw_post_data ( &$post = null ) {
'author' => $author, 'author' => $author,
'content' => $content, 'content' => $content,
'excerpt' => trim( $excerpt ), 'excerpt' => trim( $excerpt ),
'geo' => $geo,
//'reactions' => meta_reaction( $post ), //'reactions' => meta_reaction( $post ),
); );
return $out; return $out;
} }
/**
*
*
function meta_reaction ( &$post ) {
$url = trim ( get_post_meta( $post->ID, 'webmention_url', true ) );
$type = trim ( get_post_meta( $post->ID, 'webmention_type', true ) );
$rsvp = trim ( get_post_meta( $post->ID, 'webmention_data', true ) );
if ( empty( $url ) )
return false;
switch ($type) {
case 'from':
case 'repost':
$prefix = '**FROM:** ';
break;
case 're':
case 'reply':
case 'rsvp':
$prefix = '**RE:** ';
break;
default:
$prefix = '**URL:** ';
break;
}
$r = "{$prefix}${url}";
if ( !empty ($rsvp) )
$r .= "\n{$rsvp}";
return $r;
}
*/
/** /**
* do everything to get the Post object * do everything to get the Post object
*/ */