Nl:NeoLight

From NeoWiki

Revision as of 17:06, 11 January 2009 by Yakusha ( | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Contents

NeoLight

NeoLight

Edward Peterlin

Authored: 4/29/05

Revised: 6/22/07

Wat is NeoLight?

NeoLight is een afkorting die heb bedacht voor "NeoOffice Spotlight Importer". Deze invoegtoepassing laat Spotlight toe om de metadata en de inhoud van bestand die gemaakt zijn met NeoOffice te indexeren. Door Spotlight integratie kan het doorzoeken van meerdere NeoOffice documenten op een handige en vertrouwde Mac wijze gebeuren.

Licentie

NeoLight word vrijgegeven onder de GNU General Public License. Het is onze mening dat GPL zich niet uitbreidt tot het besturingssysteem daar GPL uitzonderingen bevat voor code gebruikt voor standaard besturingssysteem voorzieningen.

Ophalen

De NeoLight plugin is standaard voorzien in NeoOffice installatieprogrammma's . NeoLight updates zullen beschikbaar zijn met de NeoOffice patch volgend op het uitbrengen van een nieuwe versie van NeoLight.

De Neolight plugin kan niet meer afzonderlijk van de NeoOffice toepassing worden opgehaald. Het gebruik van het afzonderlijke installatieprogramma kan conflicten geven met de updates die worden verdeeld via het NeoOffice patching systeem. Deze versie van Spotlight is niet echt ontworpen om te werken met meerdere versies op verschillende plaatsen van dezelfde Spotlight indexering plugin of met meerdere plugins die beweren het zelfde bestands type te behandelen. Dit kan veranderen in de toekomst.

Als je de NeoOffice 2.x hebt afgehaald, heb je reeds de Spotlight indexering plugin.

  • Laatste Versie : 1.1.6
  • Laatste update 6/21/07
    • meest recente update voor Leopard ondersteuning

Installatie

Het systeem is doordrongen van het feit dat SpotLight bestanden herkent aan de hand van UTI types. Omdat Mac OS X geen ingebouwde types heeft voor OpenOffice.org bestanden, is het dan ook nodig dat deze worden bepaald door een geïnstalleerde toepassing om te vermijden dat SpotlLight hen dynamisch gegeneerde, UTI types toekent (welke niet betrouwbaar kunnen verbonden worden met een Spotlight invoegtoepassing )

NeoLight gaat er van uit dat de volgende UIT types overeenkomen met de volgende bestand types:

  • org.neooffice.writer - Writer "sxw" files en "stw" templates
  • org.neooffice.calc - Calc "sxc" files en "stc" templates
  • org.neooffice.impress - Impress "sxi" files en "sti" templates
  • org.neooffice.draw - Draw "sxd" files en "std" templates (hehe)
  • org.oasis.opendocument.text - OpenDocument Text files "odt" en templates "ott"
  • org.oasis.opendocument.graphics - OpenDocument Graphics files "odg" en templates "otg"
  • org.oasis.opendocument.presentation - OpenDocument Presentation files "odp" en templates "otp"
  • org.oasis.opendocument.spreadsheet - OpenDocument Spreadsheet files "ods" en templates "ots"
  • org.oasis.opendocument.database - OpenDocument Databaes files "odb"

De 1.1 plugin versie zal deze UTI overeenkomsten vastleggen in de Info.plist van de invoegtoepassing plugin.

NeoLight wordt automatisch geïnstalleerd samen met NeoOffice.

De installatie testen

Als je de Tiger Developer's Tools hebt geïnstalleerd, kan je na de installatie de goede werking van het laden van de plugin nakijken met behulp van Terminal door gebruik te maken van het volgende commando:

/usr/bin/mdimport -L

Als alles goed is geïnstalleerd zie je /Library/Spotlight/neolight.mdimporter in de lijst verschijnen.

Om na te kijken dat de installatie succesvol was:

  1. Start NeoOffice
  2. Maak een nieuw blanco Writer document
  3. Onder het Bestand menu kies Eigenschappen
  4. Geef een Titel aan het document en gebruik hierin een zelden gebruik onzinwoord (b.v. "interzone")
  5. Merk op dat de titel van de Eigenschappen dialoog verschijnt in de titelbar van het dialoogvenster.
  6. Bewaar het document op een gekende plaats met een bestandsnaam die niet je onzinwoord bevat.
  7. Doe een nieuwe Spotlight opzoeking
  8. Geef het onzinwoord op dat je hierboven gebruikte.

Als de NeoLight plugin goed is geinstalleerd, zal het document verschijnen tussen de zoekresultaten. Zoniet , open een Terminal venster en geef het volgende in :

/usr/bin/mdimport -d3 /path/to/test/doc.sxw

Verzeker je ervan dat het document van het "org.neooffice.writer" type is. Zoniet , zoek in de sleutels, de "Titel" sleutel en je gaat er je onzin terugvinden. Als dit het geval is is alles correct geïnstalleerd.

Als je het bovenstaande hebt ingetypt en het document is van het type "dyn.a3f42morehexgarbageinherefoo", dan heeft LauchServices de extensie niet verbonden met het juiste UTI type. Ofwel is er met het bijwerken van de Info.plist is verkeerd gelopen ofwel is het nodig om je LaunchServices database te heropbouwen.

Als je verschillende bestanden of folders wil indexeren kan je het "find"-commando gebruiken. Dit voorbeeld liet Spotlight alle *sxw-bestanden in je $HOME-folder ( thuismap) indexeren.

sudo find -s $HOME -name *sxw -exec /usr/bin/mdimport -d3 {} \;

als je zou willen dat Spotlight enkel een automatische herindexering uitvoert van al je NeoOffice documenten, gebruik dan het volgende commando:

mdimport -r /Library/Spotlight/neolight.mdimporter

Wat doet NeoLight Import?

NeoLight behandeld op dit moment alle vier hoofdtypes van OOo/NeoOffice documenten in een enkele plugin. En het haalt daaruit de volgende gegevens:

  • standaard OOo metadata (gewoonlijk beschikbaar en wijzigbaar door middel van Bestand > Eigenschappen)
    • titel
    • auteur/laatst gewijzigd
    • sleutelwoorden
    • beschrijving
    • opmerkingen
  • tekst inhoud van Writer documenten voor indexeren
  • tekstuele weergave van de inhoud van de cellen van een Calc document
  • inhoud van opsommingstekens, titels, en andere tekstvakken van Impress en Draw documenten voor indexeren
  • voor database bestanden, alle standaard OOo metadata ( optioneel voor database bestanden, kennelijk) samen met:
    • namen van aangemaakte formulieren
    • namen van aangemaakte tabellen
    • kolomnamen van alle tabellen

Eens de NeoLight plugin is geïnstalleerd, kan je OOo geformatteerde documenten doorzoeken aan de hand van deze criteria binnen in toepassingen die Spotlight ondersteunen.

OpenDocument Compatibiliteit

Vanaf versie 1.0.3 (5/7/05) is de neolight importer compatibel met documenten aangemaakt door zowel NeoOffice/J 0.8.4, NeoOffice/J 1.1, OpenOffice.org 1.x, en OpenOffice.org 2.0 (OpenDocument). Hoewel OpenDocument compatibiliteit niet uitgebreid is getest, zouden documenten die zich aan de goedgekeurde OpenDocument specificaties houden geen problemen mogen geven op het gebied van compatibiliteit.

Versie 1.1 (10/2/05) beschrijft de UTI types voor de OpenDocument o{d,g}* extensies nu dat de extenties en MIMI types hun definitieve vorm hebben, dus aanpassingen in de Info.plist zijn niet langer nodig om OpenDocument formaat bestanden te indexeren.

Versie 1.1.5 (9/27/06) voegt UTI types toe en inhoud extractie van OpenDocument database bestanden.

NeoLight gebruiken om OpenOffice.org documenten te indexeren

NeoLight werkt niet enkel voor NeoOffice en kan elk document in de OpenOffice.org 1.x formaat indexeren. Vanaf versie 1.0.3, zijn er geen bijzondere handelingen nodig om OpenOffice.org documenten te indexeren behalve het installeren van de NeoLight plugin. Om een herindexering van al bestaande OOo documenten op je computer te forceren, kan het nodig zijn dat je een find met mdimport uit te voeren zoals hierboven vermeldt.

Gekende problemen

  • Het is vereist dat de UTI types zijn beschreven voordat bestanden manueel worden geindexeerd gebruik maken van mdimport -d3. Bestanden die worden geïndexeerd voordat de initiële installatie van de neolight pliugin heeft plaats gevonden zullen een foutieve UTI type kriigen in de Spotlight metadata database. Hoewel de boomstructuur met de types wordt bijgewerkt om de juiste overeenkomsten met org.neooffice types te beschrijven, het onbewerkte type blijft verbonden met het dynamische genereerde dyn UTI type en het bestand kan niet worden geïndexeerd. Dit kan opgevangen worden door het bestand te kopiëren naar een nieuwe bestand en opnieuw te herindexeren.
  • Inhoud wordt uitgehaald in Unicode16 codering, waar mogelijk. Ik ben niet zeker of OOo 1.x bestanden andere coderingen kunnen gebruiken waardoor dit de parsers kan laten falen.
  • Hebben van twee NeoLight toepassingen op het zelfde systeem is Geen Goed Idee( zeker als een van beiden een oudere versie is, bv de NeoLight uit het NeoOffice 1.1 pakket). Dit is een beperking van het ontwerp van Apple's Spotlight.
  • Installeren van een andere SpotLight indexering plugin, die dezelfde UTI's wil behandelen als NeoLight kan leiden tot een willekeurig gebruik van de plugins.

De broncode verkrijgen

De broncode bevindt zich in de NeoOffice CVS opslag. Om de broncode te bekijken doe het volgende:

csh
setenv CVSROOT :pserver:anoncvs@anoncvs.neooffice.org:/cvs
cvs login

gebruik anoncvs als het cvs password

cvs co neolight

Dit zal de neolight module beschikbaar stellen die de broncode bevat voor de plugin. Open het neolight.xcodeproj project in Xcode 2.1 of latere versie en je bent vertrokken!

Structuur van de broncode

In het algemeen is de broncode opgesplitst in de volgende bestanden:

  • common - Deze bevat de voorzieningen code die wordt gebruik voor alle bestand types en algemene metadate extractie( alle OpenOffice.org bestand types hebben dezelfde meta.xml formaat)
  • writer - bevat functies voor SXW bestanden parsing.
  • calc - bevat functies voor SXC bestanden parsing.
  • impress - bevat functies voor SXI bestanden parsing (en SXD)
  • main - CFPlugin basiscode en de doorsturen van de metadata extractie naar de gepaste handler op basis van het UTI type
  • base - bevat functies voor ODB bestanden parsing.

Alle functie zijn becommentarieerd met Doc++/JavaDoc style comments, dus je kan een documentatie generator los laten op de code om deze te doorlopen.

Hoewel alle bestanden van uit een technisch standpunt Objective-C++ zijn, is er geen Cocoa gebruik in de plugin. Het is allemaal CoreFoundation bouw en gebruik ik in feite de taal als een "betere C". Aangezien plugins worden verondersteld lichtgewichten te zijn, leek het gewoon zinniger om de CoreFoundations voorzieningen te hergbebruiken dan om grootse plannen te maken.

Problemen en feedback

Gelieve problemen te melden in Bugzilla of op het NeoLight Development forum op http://trinity.neooffice.org.

Binary Changelog

29.04.2005 change install location to /Library/Spotlight

04.05.2005 change from UTF-8 to Unicode; change popen command to use double quotes instead of single

07.05.2005 modify meta.xml parsing for OpenDocument compatibility; add UTI types to plugin's own Info.plist file

15.05.2005 add Apple recommended lsregister command to postflight script of standalone installer

14.06.2005 Fix bug 845 to index header and footer content

02.10.2005 Universal Binary support; add UTI types for OpenDocument

27.09.2006 OpenDocument Database indexing

21.06.2007 Update for compatibility with Leopard Beta


Dit artikel in andere talen: English
Personal tools