Sprid AEM Assets-metadata till utdata som genereras av DITA-OT-plugin

I den här artikeln förklarar vi hur du implementerar ändringar i DITA-OT-plugin-programmet för att läsa metadata.xml (tillgängligt i temporära filer) och använda egenskaperna, som skickas i AEM Guides publiceringsarbetsflöde, i DITA-OT-plugin-program och ställer in dem i genererade utdata.

Här nedan beskrivs de steg som du kommer att lära dig i den här artikeln:

  • Ställa in metadata för utdataförinställningen för en diamap i AEM Guides
  • Vid generering av utdata kommer du åt denna metadata.xml i den tillfälliga katalogen DITA-OT
  • Implementering i DITA-OT-plugin-programmet för att läsa denna metadata.xml och använda de tillgängliga egenskaperna i de genererade utdata
  • Kontrollera genererade utdata för att se de spridda metadata

Bakgrund

Med AEM Guides kan du använda DITA-OT-plugin-program för att publicera i valfritt utdataformat med de konfigurerade plugin-programmen, och
du kan också skicka metadata för resurser som hanteras i AEM DAM till DITA-OT-processen för att använda den i genererade utdata - se dokumentationen om hur du ställer in diemap/avsnitt för att skicka metadata via utdatapanelen

Antaganden

Du har en AEM med AEM Guides version 4.4.0/2024.6 eller senare
Du har tidigare kunskap om hur DITA-OT fungerar och dess katalogstruktur

Angivna steg

Ange metadata för resursen

Med AEM Assets Metadata Schema kan du skapa anpassade egenskapsfält för Assets i AEM, och användare kan tilldela metadata till resurserna. Ta ett exempel på en topic-resurs där en metadata med namnet customprop kan anges för ett exempel - se skärmbilden nedan:

Ange egenskaper i metadataredigeraren för en resurs

Konfigurera metadata för diamap-utdata som ska skickas till DITA-OT

Konfigurera den förinställning du vill använda på kartan för att exportera metadata och skicka till DITA-OT
Låt oss säga att vi genererar HTML5-utdata med ett DITA-OT-plugin-program som adobe.html.
På skärmbilden nedan ser du hur du konfigurerar förinställningen för utdata för en karta som skickar metadata till plugin-programmet DITA-OT.

  1. Öppna en karta och bläddra till fliken Utdata för den här kartan och öppna förinställningen HTML5. Klicka sedan på fliken Avancerat och ange Transformation-namnet som adobe.html (det här är det plugin-program som vi ska konfigurera och använda, till exempel, kan du även definiera ditt anpassade plugin-program).
  2. Ange Behåll temporära filer om du vill kunna hämta temporära filer och kontrollera hur metadata.xml har formaterats, så kan du använda den här för utveckling
  3. Välj de metadataegenskaper som du vill skicka till DITA-OT via metadata.xml. I det här exemplet kan vi säga att vi vill skicka dc:title och customprop
  4. Spara förinställningen och generera utdata
  5. Hämta den tillfälliga filen med den knapp som visas på förinställningen

Se skärmbilden nedan för att förstå stegen ovan:
Konfigurera förinställning för utdata för en karta som skickar metadata

Implementera plugin-programmet DITA-OT

Åtkomst till metadata.xml i en tillfällig katalog

I det hämtade paketet med temporära filer finns en metadata.xml-fil där du kan se egenskapernas och värdenas struktur (se skärmbilden nedan)
Struktur och konstruktioner för metadata.xml

Förstå metadata.xml
  • Den här filen innehåller en lista över alla publicerade resurser som var och en har:

    • sökväg för filen i DITA-katalogen [id-attributet för Path-elementet]
    • och lista med metadataegenskapens värdepar [under metadata-elementet]
        <Path id="topics\about-this-document.dita">
            <sourceProps>
                ...
            </sourceProps>
            <metadata>
                <meta isArray="false" key="dc:title">About This Document</meta>
                <meta isArray="false" key="customprop">customval</meta>
            </metadata>
        </Path>

Åtkomst till metadata för varje resurs i DITA-OT-plugin

För att DITA-OT-plugin-programmet ska kunna läsa metadata.xml och tillgängliga egenskaper måste vi göra följande:

  • Definiera anpassade plugin-inställningar i plugins.xml, där parametrarna och integratorn definieras för plugin-initiering, kommer exempelfilen att se ut så här:
<?xml version="1.0" encoding="UTF-8"?>
<plugin id="com.adobe.html">
    <require plugin="org.dita.html5"/>
    <feature extension="dita.conductor.transtype.check" value="adobe.html"/>
    <feature extension="ant.import" file="integrator.xml"/>
    <feature extension="dita.conductor.html5.param" file="params.xml"/>
    <feature extension="package.version" value="2024.1"/>
</plugin>
  • Vid initiering av plugin-program:

    • ange en variabel som pekar på filen metadata.xml, d.v.s. i integrator.xml under plugin-programmet anger en egenskap som definierar sökvägen till metadatafilen, och
    • Definiera filen som kör anpassade xsl-omformningsregler, dvs. args.xsl som i vårt fall pekar på filen xsl/adobe-html5.xsl.
      Se koden nedan:
    <property name="adobe.html.xsl.dir" value="${dita.plugin.com.adobe.html.dir}${file.separator}xsl${file.separator}"/>
    <property name="args.xsl" location="${adobe.html.xsl.dir}adobe-html5.xsl" />
    <dirname property="input.dirname" file="${args.input}"/>
    <makeurl file="${input.dirname}/metadata.xml" property="metadata.url"/>
  • Skicka värdet för variabeln metadata.url till den anpassade XSL-filen för att använda den som du behöver, d.v.s. i den befintliga/skapade param.xml skickar parametern till plugin-programmet, se nedan en exempelparams.xml-fil:
    <?xml version="1.0" encoding="UTF-8"?>
    <params xmlns:if="ant:if">
        <param name="metadata.url" expression="${metadata.url}" if:set="metadata.url"/>
    </params>
  • I den anpassade XSL-omvandlingsfilen xsl/adobe-html5.xsl kan du läsa metadatavärdena från metadatafilen och ange dem i utdata som du vill. I det här exemplet lägger vi till metadatavärdena i html head > meta-taggar. Se koden nedan:
<xsl:import href="plugin:org.dita.html5:xsl/dita2html5.xsl"/>
    <xsl:param name="metadata.url"/>
    <xsl:template name="copyright">
        <xsl:if test="doc-available( $metadata.url )">
            <xsl:variable name="docName" select="tokenize( base-uri(), '/' )[ last() ]"/>
            <xsl:variable name="doc" select="doc( $metadata.url )"/>
            <xsl:for-each select="$doc//Path[ ends-with( @id, concat( '\', $docName ) ) ]/metadata/meta">
                <meta name="{ @key }" content="{ . }"/>
            </xsl:for-each>
        </xsl:if>
    </xsl:template>

Se skärmbilden nedan och markera stegen ovan
steg för att implementera ett plugin-program för dita-ot

Testa plugin-implementeringen

Du kan testa plugin-programmet genom att köra följande kommando för att testa det med de temporära filerna som hämtas från AEM (som har kartinnehåll och dess metadata.xml)

./dita --input=docsrc/samples/HTML5/aem_forms_documentation.ditamap --format=adobe.html

Anta att du har kopierat de hämtade temporära filerna under katalogen DITA-OT/docsrc/samples/HTML5.
Du kan även hämta det exempel som ges i resursavsnittet nedan.

När ovanstående kommando körs kan du kontrollera utdata i katalogen DITA-OT/bin/out, där du kan kontrollera HTML-filerna som genereras för ämnet about-this-document.dita, som har anpassade metadata i elementet head

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta charset="UTF-8">
    <meta name="copyright" content="(C) Copyright 2024">
    <meta name="DC.format" content="HTML5">
    <meta name="DC.identifier" content="GUID-f193ea85-989d-4d80-99e2-2f5dea3d5310">
    <meta name="DC.language" content="en-US">
    <meta name="dc:title" content="About This Document">
    <meta name="customprop" content="customval">
    <title>About This Document</title>
</head>

Distribution

När du har utvecklat plugin-programmet DITA-OT kan du integrera det i DITA-OT med kommandot dita —install under katalogen DITA-OT och distribuera det till AEM se den här artikeln för mer information

Resurser

  1. Exempel på tillfälliga filer som hämtats från exempelredigeringsprogram - hämtas med den här länken
  2. DITA-OT-plugin med den ovan beskrivna implementeringen hämtas med den här länken
recommendation-more-help
11125c99-e1a1-4369-b5d7-fb3098b9b178