Help:Dışa aktar

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Help:Export and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎polski • ‎português • ‎русский • ‎中文 • ‎日本語
PD Not: Bu sayfayı düzenlerken katkınızı CC0 altında yayınlamayı kabul edersiniz. Daha fazla bilgi için Kamu Malı Yardım Sayfalarına bakın.
Bu sayfa için yapılan bazı eski değişiklikler CC BY-SA lisansı altına kaydırılmıştır. Yalnızca yeni katkılar KM'dir.
PD

Viki sayfaları özel bir XML biçiminde içe aktarma yüklemesi başka bir MediaWiki kurulumuna aktarılabilir (bu işlev hedef vikide etkinleştirildiyse ve kullanıcı orada bir hizmetli ise) veya içeriği içeriği analiz etmek için başka şekilde kullanın. Ayrıca sayfalar dışında başka bilgileri dışa aktarma ve içe aktarmalarda Help:Import aktarma için m:Sendikasyon beslemelerine bakın.

Nasıl dışa aktarılır

Sayfaları dışa aktarmanın en az dört yolu vardır:

  • Special:Export sayfasındaki kutuya maddelerin adını yapıştırın veya //www.mediawiki.org/wiki/Special:Export/FULLPAGENAME kullanın.
  • Yedek betiği dumpBackup.php tüm viki sayfalarını bir XML dosyasına döker. dumpBackup.php yalnızca MediaWiki 1.5 veya daha yeni sürümlerinde çalışır. Bu betiğini çalıştırmak için sunucuya doğrudan erişiminizin olması gerekir. Wikimedia projelerinin dökümü düzenli olarak https://dumps.wikimedia.org/ sağlanıyor.
    • Not: dumpBackup.php dosyasını başarıyla çalıştırmak için AdminSettings.php dosyasını yapılandırmanız gerekebilir. Daha fazla bilgi için m:MediaWiki sayfasına bakın.
  • OAI-PMH - belirli bir zamandan beri değiştirilen sayfaları düzenli olarak getirmek için bir arayüz vardır. Wikimedia projeleri için bu arayüz herkese açık değildir; Wikimedia update feed service sayfasına bakın. OAI-PMH, dışa aktarılan makalelerin çevresinde bir sarmalayıcı biçimi içerir.
  • Python çerçevesini kullanın. Bu burada açıklanmayacak.

Varsayılan olarak bir sayfanın yalnızca geçerli sürümü eklenir. İsteğe bağlı olarak tarih, saat, kullanıcı adı ve düzenleme özeti içeren tüm sürümleri alabilirsiniz. İsteğe bağlı olarak, doğrudan veya dolaylı olarak adlandırılan tüm şablonların en son sürümü de dışa aktarılır.

Ayrıca SQL veritabanını kopyalayabilirsiniz. Veritabanının dökümleri MediaWiki 1.5'ten önce bu şekilde kullanıma sunuldu ve burada daha fazla açıklanmayacak.

'Special:Export' kullanımı

Örneğin, bir ad alanının tüm sayfalarını dışa aktarmak için.

1. Dışa aktarılacak sayfaların adlarını alın

Bir örnek daha iyi hissediyorum, çünkü aşağıdaki açıklama oldukça net değil.

  1. Special:Allpages sayfasına gidin ve istediğiniz maddeyi/dosyayı seçin.
  2. Sayfa adları listesini bir metin düzenleyicisine kopyalayın
  3. Tüm sayfa adlarını ayrı satırlara yerleştirin
    1. Oluşturulan sayfanın bir kısmını istenen adlarla kopyalayıp bunu MS Word'e yapıştırırsanız bunu nispeten hızlı bir şekilde elde edebilirsiniz - biçimlendirilmemiş metin olarak özel macunu kullan - sonra değiştirme işlevini (CTRL+h) açın, ^t bul, Değiştir ile ^p girip Tümünü Değiştir düğmesine basın. (Bu, sayfa adları arasındaki sekmelere dayanır; bunlar genellikle sayfa adlarının html kaynağındaki td etiketlerinin içinde olmasının sonucudur.)
    2. Metin düzenleyicisi Vim ayrıca satır sonlarını düzeltmenin hızlı bir yolunu da sağlar: tüm listeyi yapıştırdıktan sonra, tüm sekmeleri satır başlarıyla değiştirmek için :1,$s/\t/\r/g komutunu ve ardından :1,$s/^\n//g komutunu çalıştırın. Yalnızca bir satırsonu karakteri içeren her satırı kaldırın.
    3. Diğer bir yaklaşım, biçimlendirilmiş metni HTML'yi açığa çıkaran herhangi bir düzenleyiciye kopyalamaktır. Tüm <tr> ve </tr> etiketlerini kaldırın ve tüm <td> etiketlerini <tr><td> ve </td> etiketlerini </td></tr> ile değiştirin, HTML daha sonra gerekli biçime ayrıştırılacaktır.
    4. Sunucunuza kabuk ve MySQL erişiminiz varsa, bu betiğini kullanabilirsiniz:
#
mysql -umike -pmikespassword -hlocalhost wikidbname 
select page_title from wiki_page where page_namespace=0
EOF

Not, mikrofon ve mikrofon parolası kendinizinkiyle değiştirin. Ayrıca, bu örnek wiki_ önekine sahip tabloları gösterir.

  1. Seçili ad alanı ana ad alanı değilse ad alanını sayfa adlarının önüne ekleyin (ör. 'Help:İçindekiler').
  2. Diğer ad alanları için yukarıdaki adımları tekrarlayın (ör. Category:, Template:, vb.)

PostgreSQL veritabanları için benzer bir betik şuna benzer:

$ psql -At -U wikiuser -h localhost wikidb -c "select page_title from mediawiki.page"

Dikkat edin, viki kullanıcı iken kendinizinkiyle değiştirin, veritabanı sizden bir parola isteyecektir. Bu örnek, wiki_ öneki olmadan ve tablo adının bir parçası olarak belirtilen ad alanına sahip tabloları gösterir.

Alternatif olarak, Python yüklü bir makineye erişimi olanlar için hızlı bir yaklaşım:

  1. Special:Allpages sayfasına gidin ve istenen ad alanını seçin.
  2. Tüm web sayfasını index.php.htm olarak kaydedin. Bazı vikilerde AllPages'ın bir ekranına sığamayacak kadar çok sayfa olabilir; bu sayfaların her birini kaydetmeniz gerekecek.
  3. export_all_helper.py ile kaydedilen dosyayla aynı dizinde çalıştırın. Çıkışı bir dosyaya yönlendirmek isteyebilirsiniz; örn. python export_all_helper.py > main "main" adlı bir dosyaya göndermek için.
  4. Betik tarafından verilen sayfa adlarını kaydedin.

2. Dışa aktarımı gerçekleştirin

  • Special:Export sayfasına gidin ve tüm sayfa adlarınızı boş satır olmadığından emin olarak metin kutusuna yapıştırın.
  • "Sorguyu gönder" düğmesine tıklayın
  • Elde edilen XML'yi tarayıcınızın kaydetme özelliğini kullanarak bir dosyaya kaydedin.

ve son olarak...

  • XML dosyasını bir metin düzenleyicide açın. Hata mesajlarını kontrol etmek için en alta kaydırın.

Artık bu XML dosyasını bir içe aktarma gerçekleştirmek için kullanabilirsiniz.

Tam geçmişi dışa aktarma

Special:Export arayüzündeki bir onay kutusu, maddelerin tam geçmişinin mi (bir maddenin tüm sürümleri) yoksa en son sürümünün mi dışa aktarılacağını seçer. En fazla 100 revizyon iade edilir; Parameters to Special:Export içinde ayrıntılı verdiği gibi diğer revizyonlar talep edilebilir.

Dışa aktarma biçimi

Aldığınız XML dosyasının biçimi her yönden aynıdır. https://www.mediawiki.org/xml/export-0.10.xsd adresinde XML Şeması'nda kodlanmıştır. Bu biçim, bir web tarayıcısında görüntülemek için tasarlanmamıştır. Bazı tarayıcılar, seçili parçaları görüntülemek veya gizlemek için size "+" ve "-" bağlantılarıyla güzel yazdırılmış XML gösterir. Alternatif olarak, XML kaynağı, tarayıcının "kaynağı gör" özelliği kullanılarak veya XML dosyasını yerel olarak kaydettikten sonra, bir programla görüntülenebilir. Doğrudan XML kaynağını okursanız, gerçek vikimetin dosyasını bulmak zor olmayacaktır. Özel bir XML düzenleyici kullanmıyorsanız "<" ve ">" &lt; ve &gt;, XML etiketleriyle çakışmayı önlemek için; belirsizliği önlemek için "&", "&amp;" olarak kodlanır.

Mevcut sürümde dışa aktarma formatı, viki işaretlemesinin XML değişimini içermiyor (daha eski bir teklif için Vikipedi DTD sayfasına bakın). Maddeyi düzenlerken yalnızca vikimetin alırsınız.

Örnek

  <mediawiki xml:lang="en">
    <page>
      <title>Page title</title>
      <restrictions>edit=sysop:move=sysop</restrictions>
      <revision>
        <timestamp>2001-01-15T13:15:00Z</timestamp>
        <contributor><username>Foobar</username></contributor>
        <comment>I have just one thing to say!</comment>
        <text>A bunch of [[Special:MyLanguage/text|text]] here.</text>
        <minor />
      </revision>
      <revision>
        <timestamp>2001-01-15T13:10:27Z</timestamp>
        <contributor><ip>10.0.0.2</ip></contributor>
        <comment>new!</comment>
        <text>An earlier [[Special:MyLanguage/revision|revision]].</text>
      </revision>
    </page>
    
    <page>
      <title>Talk:Page title</title>
      <revision>
        <timestamp>2001-01-15T14:03:00Z</timestamp>
        <contributor><ip>10.0.0.2</ip></contributor>
        <comment>hey</comment>
        <text>WHYD YOU LOCK PAGE??!!! i was editing that jerk</text>
      </revision>
    </page>
  </mediawiki>

DTD

Biçimin resmi olmayan, kısa Document Type Definition sürümü. Bir DTD'nin ne olduğunu bilmiyorsanız, onu görmezden gelin.

<!ELEMENT mediawiki (siteinfo,page*)>
<!-- version contains the version number of the format (currently 0.3) -->
<!ATTLIST mediawiki
  version  CDATA  #REQUIRED 
  xmlns CDATA #FIXED "https://www.mediawiki.org/xml/export-0.3/"
  xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation CDATA #FIXED
    "https://www.mediawiki.org/xml/export-0.3/ https://www.mediawiki.org/xml/export-0.3.xsd"
  xml:lang  CDATA #IMPLIED
>
<!ELEMENT siteinfo (sitename,base,generator,case,namespaces)>
<!ELEMENT sitename (#PCDATA)>      <!-- name of the wiki -->
<!ELEMENT base (#PCDATA)>          <!-- url of the main page -->
<!ELEMENT generator (#PCDATA)>     <!-- MediaWiki version string -->
<!ELEMENT case (#PCDATA)>          <!-- how cases in page names are handled -->
   <!-- possible values: 'first-letter' | 'case-sensitive'
                         'case-insensitive' option is reserved for future -->
<!ELEMENT namespaces (namespace+)> <!-- list of namespaces and prefixes -->
  <!ELEMENT namespace (#PCDATA)>     <!-- contains namespace prefix -->
  <!ATTLIST namespace key CDATA #REQUIRED> <!-- internal namespace number -->
<!ELEMENT page (title,id?,restrictions?,(revision|upload)*)>
  <!ELEMENT title (#PCDATA)>         <!-- Title with namespace prefix -->
  <!ELEMENT id (#PCDATA)> 
  <!ELEMENT restrictions (#PCDATA)>  <!-- optional page restrictions -->
<!ELEMENT revision (id?,timestamp,contributor,minor?,comment?,text)>
  <!ELEMENT timestamp (#PCDATA)>     <!-- according to ISO8601 -->
  <!ELEMENT minor EMPTY>             <!-- minor flag -->
  <!ELEMENT comment (#PCDATA)> 
  <!ELEMENT text (#PCDATA)>          <!-- Wikisyntax -->
  <!ATTLIST text xml:space CDATA  #FIXED "preserve">
<!ELEMENT contributor ((username,id) | ip)>
  <!ELEMENT username (#PCDATA)>
  <!ELEMENT ip (#PCDATA)>
<!ELEMENT upload (timestamp,contributor,comment?,filename,src,size)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT src (#PCDATA)>
  <!ELEMENT size (#PCDATA)>

XML dışa aktarımı işleme

Birçok araç dışa aktarılan XML'i işleyebilir. Çok sayıda sayfayı işlerseniz (örneğin tam bir döküm) büyük olasılıkla belgeyi ana bellekte alamayacaksınız, bu nedenle SAX ile dayalı bir ayrıştırıcıya ihtiyacınız olacak veya diğer olay odaklı yöntemlenir.

XML kodunun bölümlerini doğrudan işlemek için normal ifadeleri de kullanabilirsiniz. Bu, diğer yöntemlerden daha hızlı olabilir, ancak bakımı zor olduğu için önerilmez.

Lütfen XML dışa aktarımını işlemek için yöntemleri ve araçları burada listeleyin:

m:IBM Geçmiş akış projesi, küçük bir Python programı, export-historyflow-expand.py uyguladıktan sonra onu okuyabilir.

Ayrıntılar ve pratik tavsiyeler

  • Bir sayfanın ad alanını belirlemek için başlığını şurada tanımlanan öneklerle eşleştirmeniz gerekir:

/mediawiki/siteinfo/namespaces/namespace

  • Olası kısıtlamalar:
    • sysop - korunan sayfalar

Neden dışa aktarılmalı

Neden dinamik bir veritabanı indirmesi kullanmıyorsunuz?

Vikipedi'den gelen bilgileri belirli noktalarda görüntüleyen bir yazılım oluşturduğunuzu varsayalım. Programınızın bilgileri canlı sürümde görünenden farklı bir şekilde görüntülemesini istiyorsanız, muhtemelen bitmiş html yerine onu girmek için kullanılan vikikoda ihtiyacınız olacaktır.

Ayrıca, tüm verileri almak istiyorsanız, muhtemelen mümkün olan en verimli şekilde aktarmak isteyeceksiniz. Wikimedia sunucularının, vikikodu HTML'ye dönüştürmek için epeyce çalışması gerekir. Bu hem sizin için hem de Wikimedia sunucuları için zaman alıcıdır, bu nedenle tüm sayfalarda gezinmek, yapılacak yol değildir.

XML'deki herhangi bir maddeye teker teker erişmek için şunlara bağlantı verin:

Special:Export/Title_of_the_article

Ayrıca bakınız