diff options
| author | Shulhan <ms@kilabit.info> | 2022-12-16 00:54:47 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-12-16 00:54:47 +0700 |
| commit | ab6eaa00847d5b468acbc503b7b19b3cc99fb8b8 (patch) | |
| tree | cfe691a0315d91258d24b12bd831f8988e4f5911 | |
| parent | 4b1ade55e50aa2768deecf101cb8d7c24f3bb6b3 (diff) | |
| download | asciidoctor-go-ab6eaa00847d5b468acbc503b7b19b3cc99fb8b8.tar.xz | |
all: add support for document attribute "last-update-label"
By default the last-update-label value set to "Last updated" and the
value is the document modification time.
If the label is suppressed with "!", no "Last updated" will be print
on the footer.
| -rw-r--r-- | README | 1 | ||||
| -rw-r--r-- | attribute_entry.go | 12 | ||||
| -rw-r--r-- | document.go | 3 | ||||
| -rw-r--r-- | html_backend.go | 29 | ||||
| -rw-r--r-- | parser.go | 58 |
5 files changed, 56 insertions, 47 deletions
@@ -129,6 +129,7 @@ Supported metadata or attribute references, * `idprefix` * `idseparator` * `lastname(_x)` +* `last-update-label` * `middlename(_x)` * `nofooter` * `noheader` diff --git a/attribute_entry.go b/attribute_entry.go index a4dd722..c1d329f 100644 --- a/attribute_entry.go +++ b/attribute_entry.go @@ -11,11 +11,13 @@ type AttributeEntry map[string]string func newAttributeEntry() AttributeEntry { return AttributeEntry{ - MetaNameGenerator: `asciidoctor-go ` + Version, - metaNameSectIDs: ``, - metaNameShowTitle: ``, - metaNameTableCaption: ``, - metaNameVersionLabel: ``, + MetaNameGenerator: `asciidoctor-go ` + Version, + metaNameLastUpdateLabel: `Last updated`, + metaNameLastUpdateValue: ``, + metaNameSectIDs: ``, + metaNameShowTitle: ``, + metaNameTableCaption: ``, + metaNameVersionLabel: ``, } } diff --git a/document.go b/document.go index 2b34300..aa6672a 100644 --- a/document.go +++ b/document.go @@ -43,7 +43,6 @@ type Document struct { Revision Revision - LastUpdated string file string fpath string rawAuthors string @@ -128,7 +127,7 @@ func Open(file string) (doc *Document, err error) { doc = newDocument() doc.fpath = filepath.Join(wd, file) doc.file = file - doc.LastUpdated = fi.ModTime().Round(time.Second).Format(`2006-01-02 15:04:05 Z0700`) + doc.Attributes[metaNameLastUpdateValue] = fi.ModTime().Round(time.Second).Format(`2006-01-02 15:04:05 Z0700`) parse(doc, raw) diff --git a/html_backend.go b/html_backend.go index 1bbefcb..1635328 100644 --- a/html_backend.go +++ b/html_backend.go @@ -880,28 +880,33 @@ func htmlWriteBody(doc *Document, out *bytes.Buffer) { } func htmlWriteFooter(doc *Document, out io.Writer) { + var ( + label string + value string + ok bool + ) + fmt.Fprint(out, ` <div id="footer"> <div id="footer-text">`) if len(doc.Revision.Number) > 0 { - var ( - prefix string - ok bool - ) - - prefix, ok = doc.Attributes[metaNameVersionLabel] - if ok && len(prefix) == 0 { - prefix = `Version ` + label, ok = doc.Attributes[metaNameVersionLabel] + if ok && len(label) == 0 { + label = `Version ` } else { - prefix = ` ` + label = ` ` } - fmt.Fprintf(out, "\n%s%s<br>", prefix, doc.Revision.Number) + fmt.Fprintf(out, "\n%s%s<br>", label, doc.Revision.Number) } - if len(doc.LastUpdated) > 0 { - fmt.Fprintf(out, "\nLast updated %s", doc.LastUpdated) + label, ok = doc.Attributes[metaNameLastUpdateLabel] + if ok { + value = doc.Attributes[metaNameLastUpdateValue] + if len(value) != 0 { + fmt.Fprintf(out, "\n%s %s", label, value) + } } fmt.Fprint(out, "\n</div>\n</div>") @@ -178,34 +178,36 @@ const ( MetaNameGenerator = `generator` MetaNameKeywords = `keywords` - metaNameAuthorInitials = `authorinitials` - metaNameDocTitle = `doctitle` - metaNameEmail = attrValueEmail - metaNameFirstName = `firstname` - metaNameIDPrefix = `idprefix` - metaNameIDSeparator = `idseparator` - metaNameLastName = `lastname` - metaNameMiddleName = `middlename` - metaNameNoFooter = `nofooter` - metaNameNoHeader = `noheader` - metaNameNoHeaderFooter = `no-header-footer` - metaNameNoTitle = `notitle` - metaNameRevDate = `revdate` - metaNameRevNumber = `revnumber` - metaNameRevRemark = `revremark` - metaNameSectAnchors = `sectanchors` - metaNameSectIDs = `sectids` - metaNameSectLinks = `sectlinks` - metaNameSectNumLevel = `sectnumlevels` - metaNameSectNums = `sectnums` - metaNameShowTitle = `showtitle` - metaNameTOC = `toc` - metaNameTOCLevels = `toclevels` - metaNameTOCTitle = `toc-title` - metaNameTableCaption = `table-caption` - metaNameTitle = attrNameTitle - metaNameTitleSeparator = `title-separator` - metaNameVersionLabel = `version-label` + metaNameAuthorInitials = `authorinitials` + metaNameDocTitle = `doctitle` + metaNameEmail = attrValueEmail + metaNameFirstName = `firstname` + metaNameIDPrefix = `idprefix` + metaNameIDSeparator = `idseparator` + metaNameLastName = `lastname` + metaNameLastUpdateLabel = `last-update-label` + metaNameLastUpdateValue = `last-update-value` + metaNameMiddleName = `middlename` + metaNameNoFooter = `nofooter` + metaNameNoHeader = `noheader` + metaNameNoHeaderFooter = `no-header-footer` + metaNameNoTitle = `notitle` + metaNameRevDate = `revdate` + metaNameRevNumber = `revnumber` + metaNameRevRemark = `revremark` + metaNameSectAnchors = `sectanchors` + metaNameSectIDs = `sectids` + metaNameSectLinks = `sectlinks` + metaNameSectNumLevel = `sectnumlevels` + metaNameSectNums = `sectnums` + metaNameShowTitle = `showtitle` + metaNameTOC = `toc` + metaNameTOCLevels = `toclevels` + metaNameTOCTitle = `toc-title` + metaNameTableCaption = `table-caption` + metaNameTitle = attrNameTitle + metaNameTitleSeparator = `title-separator` + metaNameVersionLabel = `version-label` ) // List of possible metadata value. |
