Docx writer: added framework for custom properties.
So far, we don't actually write any custom properties, but we have the infrastructure to add this. See #3034.
This commit is contained in:
parent
4d9ccb163e
commit
30033f417f
31 changed files with 26 additions and 3 deletions
|
@ -1,2 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="xml" ContentType="application/xml" /><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" /><Override PartName="/word/webSettings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" /><Override PartName="/word/numbering.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" /><Override PartName="/word/settings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" /><Override PartName="/word/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml" /><Override PartName="/word/fontTable.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" /><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" /><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml" /><Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" /><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" /><Override PartName="/word/comments.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml" /><Override PartName="/word/footnotes.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml" /></Types>
|
||||
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="xml" ContentType="application/xml" /><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" /><Override PartName="/word/webSettings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" /><Override PartName="/word/numbering.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" /><Override PartName="/word/settings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" /><Override PartName="/word/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml" /><Override PartName="/word/fontTable.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" /><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" /><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml" /><Override PartName="/docProps/custom.xml" ContentType="application/vnd.openxmlformats-officedocument.custom-properties+xml"/><Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" /><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" /><Override PartName="/word/comments.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml" /><Override PartName="/word/footnotes.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml" /></Types>
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml" /><Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml" /><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml" /></Relationships>
|
||||
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml" /><Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml" /><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml" /><Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties" Target="docProps/custom.xml"/>
|
||||
</Relationships>
|
||||
|
|
2
data/docx/docProps/custom.xml
Normal file
2
data/docx/docProps/custom.xml
Normal file
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"></Properties>
|
|
@ -629,6 +629,7 @@ getDefaultReferenceDocx = do
|
|||
"_rels/.rels",
|
||||
"docProps/app.xml",
|
||||
"docProps/core.xml",
|
||||
"docProps/custom.xml",
|
||||
"word/document.xml",
|
||||
"word/fontTable.xml",
|
||||
"word/footnotes.xml",
|
||||
|
|
|
@ -349,6 +349,8 @@ writeDocx opts doc@(Pandoc meta _) = do
|
|||
"application/vnd.openxmlformats-officedocument.extended-properties+xml")
|
||||
,("/docProps/core.xml",
|
||||
"application/vnd.openxmlformats-package.core-properties+xml")
|
||||
,("/docProps/custom.xml",
|
||||
"application/vnd.openxmlformats-officedocument.custom-properties+xml")
|
||||
,("/word/styles.xml",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml")
|
||||
,("/word/document.xml",
|
||||
|
@ -507,6 +509,19 @@ writeDocx opts doc@(Pandoc meta _) = do
|
|||
]) (formatTime defaultTimeLocale "%FT%XZ" utctime)
|
||||
let docPropsEntry = toEntry docPropsPath epochtime $ renderXml docProps
|
||||
|
||||
let customProperties :: [(String, String)]
|
||||
customProperties = [] -- FIXME
|
||||
let mkCustomProp (k, v) pid = mknode "property"
|
||||
[("fmtid","{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
|
||||
,("pid", show pid)
|
||||
,("name", k)] $ mknode "vt:lpwstr" [] v
|
||||
let customPropsPath = "docProps/custom.xml"
|
||||
let customProps = mknode "Properties"
|
||||
[("xmlns","http://schemas.openxmlformats.org/officeDocument/2006/custom-properties")
|
||||
,("xmlns:vt","http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes")
|
||||
] $ zipWith mkCustomProp customProperties [(2 :: Int)..]
|
||||
let customPropsEntry = toEntry customPropsPath epochtime $ renderXml customProps
|
||||
|
||||
let relsPath = "_rels/.rels"
|
||||
let rels = mknode "Relationships" [("xmlns", "http://schemas.openxmlformats.org/package/2006/relationships")]
|
||||
$ map (\attrs -> mknode "Relationship" attrs ())
|
||||
|
@ -519,6 +534,9 @@ writeDocx opts doc@(Pandoc meta _) = do
|
|||
, [("Id","rId3")
|
||||
,("Type","http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties")
|
||||
,("Target","docProps/core.xml")]
|
||||
, [("Id","rId5")
|
||||
,("Type","http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties")
|
||||
,("Target","docProps/custom.xml")]
|
||||
]
|
||||
let relsEntry = toEntry relsPath epochtime $ renderXml rels
|
||||
|
||||
|
@ -558,7 +576,8 @@ writeDocx opts doc@(Pandoc meta _) = do
|
|||
contentTypesEntry : relsEntry : contentEntry : relEntry :
|
||||
footnoteRelEntry : numEntry : styleEntry : footnotesEntry :
|
||||
commentsEntry :
|
||||
docPropsEntry : docPropsAppEntry : themeEntry :
|
||||
docPropsEntry : docPropsAppEntry : customPropsEntry :
|
||||
themeEntry :
|
||||
fontTableEntry : settingsEntry : webSettingsEntry :
|
||||
imageEntries ++ headerFooterEntries ++
|
||||
miscRelEntries ++ otherMediaEntries
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue