Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exporting Thumbnails #50

Closed
rfos opened this issue Dec 17, 2020 · 13 comments
Closed

Exporting Thumbnails #50

rfos opened this issue Dec 17, 2020 · 13 comments

Comments

@rfos
Copy link

rfos commented Dec 17, 2020

Hi Will,
That plugin is amazing, thank you so much for sharing it.
I'm trying export custom type posts from WordPress but I'm unable to export thumbnails from custom posts types, also exporting normal "posts" doesn't export the image thumbnail.
I had a local environment from wordpress running and I'm exporting the xml directly from Wordpress to each custom post types, from each individual file I can generate the .md files but non of my custom posts is getting the thumbnail.
Please if you have any suggestions let me know
Thank you again.

@lonekorean
Copy link
Owner

Hello Reinaldo! I did find a bug related to this. Just pushed a fix. Please try again with v2.0.5.

@rfos
Copy link
Author

rfos commented Dec 25, 2020

It works Will. Thank you

@lonekorean
Copy link
Owner

Awesome.

I also meant to ask about the custom post types thing... Would you be comfortable sending me your export file (if it doesn't have private/sensitive data in it) and the name of the custom post type(s) you're trying to get? That would be helpful for me to test and add that feature.

@rfos
Copy link
Author

rfos commented Dec 26, 2020 via email

@lonekorean
Copy link
Owner

@rfos thank you! There's so much data there haha, excellent help for testing.

I created a branch that can parse out multiple post types: https://github.com/lonekorean/wordpress-export-to-markdown/tree/multiple-post-types

So basically...

  • Clone that branch
  • Edit src/settings.js to set post_types to all the post types you want
  • Run script as normal

The output should be all the posts of the post types you asked for, organized into folders.

I'll probably merge this to master soon, but if you had any feedback I'd love to hear it.

@lonekorean
Copy link
Owner

Alright, I pushed another commit to that branch that changes how it works.

It is now a question in the wizard ("Include custom post types and pages?") and will automatically find all custom post types. I try not to add more questions to the wizard to keep things simple, but this feature might be worth it.

It seems to work well, but I am not 100% sure that people would not prefer listing the post types they want manually.

Also, your export file is so huge, I had to increase the amount of memory node can use. 😄

node --max-old-space-size=8192 index.js

post-types

@rfos
Copy link
Author

rfos commented Dec 27, 2020

Thank you @lonekorean

I started testing that new version and I'm having some troubles while it's saving the images (around 7/8.000), I don't know what is happening but it just stops running. Probably because there are too many images to download.

I'm exporting the WordPress content to HUGO and saving images inside the same folder for each post can be a problem because Hugo considers images inside the static/ folder and not inside the post folder (especially when using a template).
I ready in somewhere a tutorial about how to pass the original path for images, example: wp-content/uploads/2019/07/20-years-of-file-20-years-of-art-and-technology-file-festival-new-media-caucus.jpg, it would be easy to preserve the original folder structure allowing a simple copy and paste from wp-content/uploads to static/uploads/.

To adapt your code I added the type to the markdown file:

parses.js
line 68

frontmatter: { title: getPostTitle(post), date: getPostDate(post), categories: getCategories(post), tags: getTags(post), type: postType },

Great job!

@lonekorean
Copy link
Owner

Hey @rfos, so I've been working on things.

I updated the markdown parser this script uses, so it's more efficient, now I'm able to parse your entire export file without bumping up node's memory.

I found some encoding issues with downloading your images, and was able to adjust the script to work better for them. So now I'm able to get all but 132 of the images. The remaining images may be unused/removed images, not sure.

I also updated the script so that it will not try to save/download things that have already been saved/downloaded. Basically this means you can rerun the script to pick up where you left off. Useful if your internet connection dropped, computer crashed, etc.

It sounds like maybe you've figured out how to get images in a way that works with HUGO. If not, let me know, maybe I can figure something out. I've been setting "Create a folder for each post?" to "no", which sounds closer to what you want.

Thanks again, your data has been very helpful, and also I understand if you've moved on, totally fine. :)

@rfos
Copy link
Author

rfos commented Dec 30, 2020

@lonekorean you're the best.
I'm going to try it now.

@rfos
Copy link
Author

rfos commented Dec 30, 2020

I think it works like a magic, there are so many images that were "unavailable" before your last commit, now it seems to be ok.
I'll test some way to upload images for new content using the same file/folder structure for the import (images inside each post) if not possible I can create conditions on my template to migrate the old content and be ready for the new content. (images download still in progress and it will take a long time due to my bad connection here in the mountains).
The change of markdown parser is cool, again, you are the best.
My big problem now is how I can separate the dual-language post strings created while we're using a plugin in WordPress. I'm thinking of a way to duplicate the content then clean up a language for English content, export only one language, and repeat the task with the second language. (really big time consuming).

@lonekorean
Copy link
Owner

I experimented with a way to split the languages apart in another branch: https://github.com/lonekorean/wordpress-export-to-markdown/compare/file-lang-split

It flows like this:

  • if there are no pt/en tokens, just write a post file as normal
  • if there are pt/en tokens, write 2 files, one with the pt content and the other with en content.
  • sometimes there is pt content but no en content, in which case only write a pt file

I'm not sure exactly how you wanted the output to be shaped, but maybe that's one approach you could work with.

Also this code is VERY hacky and makes some assumptions. 😁 Your problem seems to be very specific, so I was not intending to merge and publish this code.

@rfos
Copy link
Author

rfos commented Dec 31, 2020 via email

@lonekorean
Copy link
Owner

I'm going to go ahead and close this since the original issue is resolved.

Thank you for sharing your data with me and working with me!

I look forward to seeing the final result. 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants