Exportera Metrobloggen till Wordpress
Metrobloggen är ett riktigt sunkigt bloggverktyg. Alla som kör det borde genast byta till ett wordpress.com-konto eller ännu bättre, sätta upp sin egen blog på ett webbhotell. På metrobloggen finns inget verktyg för att exportera sina gamla inlägg så här kommer ett som jag skrivit.
Såhär gör man:
- Installera Greasemonkey (kräver Firefox och är en plugin som gör det möjligt att köra javascriptkod ovanpå webbsidor)
- Installera mitt script
- Gå till din sida på metrobloggen
- Det som nu ser i ett vitt fält ovanför din sida är din wordpress-xml, data som wordpress kan importera.
- Börja bakifrån (din sista sida med inlägg).
- Markera texten i den vita rutan ovan och spara ner i en textfil (det är viktigt att det är en textfil och inget worddokument, använd därför notepad på pc eller textredigeraren på mac. I textredigeraren på mac måste du först ställa om till ren textfil)
- Spara textfilen som metrobloggenexport1.xml
- Gå till din näst sista sida och gör samma sak, metrobloggenexport2.xml
- Tills du gjort alla sidor
- Sen är det bara att ladda upp dessa filer en efter en i wordpress under import (välj wordpress som importalternativ)
Nackdelar/buggar: Du kommer få med lite reklam och javascriptkod från metrobloggen men detta är bara att gå in och editera bort i efterhand. Du kommer även tyvärr inte få med datumen. Verkar även som att enstaka inlägg kan komma ett steg fel. MEN DET FÅR NI TÅLA!!!
Såhär se koden ut:
// ==UserScript== // @name Emelie // @namespace http://maxberggren.com // @description Omvandlar skit-metrobloggen till wordpress-xml som den lägger övest. Bara att klistra in i en xml-fil och ladda upp. // @include http://www.metrobloggen.se/* // ==/UserScript== var getElementsByClassName = function (className, tag, elm){ if (document.getElementsByClassName) { getElementsByClassName = function (className, tag, elm) { elm = elm || document; var elements = elm.getElementsByClassName(className), nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null, returnElements = [], current; for(var i=0, il=elements.length; i/g, ">"); } var inlaggInnehall = document.getElementsByClassName("inlagg"); var inlaggDatum = document.getElementsByClassName("signatur"); var inlaggPerma = document.getElementsByClassName("lankar"); var inlaggRubbe = document.getElementsByClassName("inlagg"); var inlaggBilder = document.getElementsByTagName("img"); XMLwrapPre = "<item><title>"; XMLwrapEfterTitel = "</title><link>http://cowboyvspirate.wordpress.com/2008/11/29/duoduo/</link><pubDate>Sat, 29 Nov 2008 17:43:49 +0000</pubDate><dc:creator><![CDATA[cowboyvspirate]]></dc:creator> <category><![CDATA[Uncategorized]]></category> <description></description><content:encoded><![CDATA["; XMLwrapEnd = "]]></content:encoded><excerpt:encoded><![CDATA[]]></excerpt:encoded><wp:post_id></wp:post_id><wp:post_date></wp:post_date><wp:post_date_gmt></wp:post_date_gmt><wp:comment_status>open</wp:comment_status><wp:ping_status>open</wp:ping_status><wp:post_name>duoduo</wp:post_name><wp:status>publish</wp:status><wp:post_parent>0</wp:post_parent><wp:menu_order>0</wp:menu_order><wp:post_type>post</wp:post_type><wp:post_password></wp:post_password><wp:postmeta><wp:meta_key>_edit_last</wp:meta_key><wp:meta_value>5688304</wp:meta_value></wp:postmeta><wp:postmeta><wp:meta_key>_edit_lock</wp:meta_key><wp:meta_value>1227980632</wp:meta_value></wp:postmeta> </item>"; XMLhuvud = "<?xml version="1.0" encoding="UTF-8"?><!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. --><!-- It contains information about your blog's posts, comments, and categories. --><!-- You may use this file to transfer that content from one site to another. --><!-- This file is not intended to serve as a complete backup of your blog. --> <!-- To import this information into a WordPress blog follow these steps. --><!-- 1. Log into that blog as an administrator. --><!-- 2. Go to Manage: Import in the blog's admin panels. --><!-- 3. Choose "WordPress" from the list. --><!-- 4. Upload this file using the form provided on that page. --><!-- 5. You will first be asked to map the authors in this export file to users --><!-- on the blog. For each author, you may choose to map to an --><!-- existing user on the blog or to create a new user --><!-- 6. WordPress will then import each of the posts, comments, and categories --><!-- contained in this file into your blog --> <!-- generator="WordPress/MU" created="2008-11-29 17:43"--><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wp="http://wordpress.org/export/1.0/"> <channel> <title>Cowboyvspirate's Blog</title> <link>http://cowboyvspirate.wordpress.com</link> <description>Just another WordPress.com weblog</description> <pubDate>Sat, 29 Nov 2008 17:43:49 +0000</pubDate> <generator>http://wordpress.org/?v=MU</generator> <language>en</language> <wp:wxr_version>1.0</wp:wxr_version> <wp:base_site_url>http://wordpress.com/</wp:base_site_url> <wp:base_blog_url>http://cowboyvspirate.wordpress.com</wp:base_blog_url> <wp:category><wp:category_nicename>uncategorized</wp:category_nicename><wp:category_parent></wp:category_parent><wp:cat_name><![CDATA[Uncategorized]]></wp:cat_name></wp:category> "; XMLslut = " </channel></rss>"; //DÖDA DATUM for(var i=0; i=0; i--) { //wordData = wordData.replace(/<(SPAN|P|H1|H 2){1}.*?>/i,''); //data.replace(/<[//]{0,1}(B|b)[^><]*>/g,""); inlaggInnehall[i].innerHTML = inlaggInnehall[i].innerHTML.replace(/<[//]{0,1}(B|b|div|h3|H3)[^><]*>/g,""); inlaggRubbe = inlaggInnehall[i]; inlaggRubbe = inlaggRubbe.getElementsByTagName("span"); inlaggRubbe = htmlEncode(inlaggRubbe[0].innerHTML); inlaggInnehall[i].innerHTML = htmlEncode(inlaggInnehall[i].innerHTML); inlaggInnehall[i].innerHTML = XMLwrapPre + inlaggRubbe + XMLwrapEfterTitel + inlaggInnehall[i].innerHTML + XMLwrapEnd; newElement.innerHTML = newElement.innerHTML + inlaggInnehall[i].innerHTML + " "; } newElement.innerHTML = XMLhuvud + newElement.innerHTML + XMLslut; } for(var i=0; i