Configuration
Pandoc Extensions
Composer uses the markdown input format, with these extensions:
+ascii_identifiers
+auto_identifiers
+emoji
+fancy_lists
+fenced_divs
+footnotes
+gfm_auto_identifiers
+header_attributes
+implicit_figures
+implicit_header_references
+inline_notes
+intraword_underscores
+line_blocks
+link_attributes
+lists_without_preceding_blankline
+markdown_in_html_blocks
+pandoc_title_block
+pipe_tables
+raw_attribute
+raw_html
+raw_tex
+shortcut_reference_links
+smart
+strikeout
+superscript
+task_lists
+yaml_metadata_block
Complete list of all Pandoc input extensions (:: default – >> modified):
.../pandoc --list-extensions="markdown"
-abbreviations
+all_symbols_escapable
-angle_brackets_escapable
-ascii_identifiers >>
+auto_identifiers ::
-autolink_bare_uris
+backtick_code_blocks
+blank_before_blockquote
+blank_before_header
+bracketed_spans
+citations
+definition_lists
-east_asian_line_breaks
-emoji >>
+escaped_line_breaks
+example_lists
+fancy_lists ::
+fenced_code_attributes
+fenced_code_blocks
+fenced_divs ::
+footnotes ::
-four_space_rule
-gfm_auto_identifiers >>
+grid_tables
-gutenberg
-hard_line_breaks
+header_attributes ::
+table_attributes
-ignore_line_breaks
+implicit_figures ::
+implicit_header_references ::
+inline_code_attributes
+inline_notes ::
+intraword_underscores ::
+latex_macros
+line_blocks ::
+link_attributes ::
-lists_without_preceding_blankline >>
-literate_haskell
-mark
-markdown_attribute
+markdown_in_html_blocks ::
-mmd_header_identifiers
-mmd_link_attributes
-mmd_title_block
+multiline_tables
+native_divs
+native_spans
-old_dashes
+pandoc_title_block ::
+pipe_tables ::
+raw_attribute ::
+raw_html ::
+raw_tex ::
-rebase_relative_paths
-short_subsuperscripts
+shortcut_reference_links ::
+simple_tables
+smart ::
+space_in_atx_header
-spaced_reference_links
+startnum
+strikeout ::
+subscript
+superscript ::
+task_lists ::
+table_captions
+tex_math_dollars
-tex_math_double_backslash
-tex_math_single_backslash
-wikilinks_title_after_pipe
-wikilinks_title_before_pipe
+yaml_metadata_block ::
When reading html files with extract, these import extensions are used:
.../pandoc --list-extensions="html5"
-ascii_identifiers
+auto_identifiers
-east_asian_line_breaks
-empty_paragraphs ::
-epub_html_exts
-gfm_auto_identifiers
+line_blocks
-literate_haskell
+native_divs
+native_spans
-raw_html
-raw_tex
-smart
-task_lists
-tex_math_dollars
-tex_math_double_backslash
-tex_math_single_backslash
When reading docx files with extract, these import extensions are used:
.../pandoc --list-extensions="docx"
-ascii_identifiers
+auto_identifiers
-citations
-east_asian_line_breaks
-empty_paragraphs ::
-gfm_auto_identifiers
-native_numbering
-styles ::
Templates
The install target Makefile template (for reference only):
override COMPOSER_MY_PATH := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
override COMPOSER_TEACHER := $(abspath $(dir $(COMPOSER_MY_PATH)))/Makefile
include $(COMPOSER_TEACHER)
Use the template target to create .composer.mk files:
########################################
# >> Global
# override MAKEJOBS := 1
# override COMPOSER_DEBUGIT :=
# override COMPOSER_DOCOLOR :=
# override COMPOSER_INCLUDE := 1
# override COMPOSER_DEPENDS :=
# override COMPOSER_MAXLIST := 100
# override COMPOSER_KEEPING := 100
# override COMPOSER_LOGFILE := .composer.log
# override COMPOSER_FILEEXT := .md
# override c_site :=
# override c_lang := en-US
# override c_logo := $(COMPOSER_DIR)/_artifacts/images/logo.img
# override c_icon := $(COMPOSER_DIR)/_artifacts/images/icon.img
# override c_css := $(COMPOSER_DIR)/_artifacts/themes/theme.html-default.css
# override c_type := html
########################################
# >> Local
ifneq ($(COMPOSER_CURDIR),)
# override COMPOSER_TARGETS := README.html LICENSE.html :: README.site.html README.pdf README.epub README.revealjs.html README.docx
# override COMPOSER_SUBDIRS := [.null]
# override COMPOSER_EXPORTS := *.html *.pdf *.epub *.revealjs.html *.docx *.pptx *.txt *.md.txt
# override COMPOSER_IGNORES := +Composer .* +*
# override c_base :=
# override c_list :=
# override c_toc :=
# override c_level := 2
# override c_margin := 0.8in
# override c_margin_top :=
# override c_margin_bottom :=
# override c_margin_left :=
# override c_margin_right :=
# override c_options :=
endif
Use the template.yml target to create .composer.yml files:
variables:
title-prefix: null
# site-config:
# navbars:
# brand: null
# homepage: null
# search:
# name: null
# site: null
# call: null
# form: null
# copyright: null
# composer: 1
# pages:
# css_overlay: dark
# copy_protect: null
# header:
# - null
# footer:
# - null
# cols:
# break: lg
# scroll: 1
# order:
# - 1
# - 2
# - 3
# reorder:
# - 1
# - 3
# - 2
# size:
# - 3
# - 7
# - 2
# resize:
# - 6
# - 12
# - 6
# dates:
# parse:
# - "2006-01-02T15:04:05-07:00"
# - 2006-01-02 15:04 -07:00
# - "2006-01-02"
# - January 2, 2006
# - January 2, 2006 3:04 PM MST -07:00
# display: "2006-01-02"
# library: "2006"
# timezone: -08:00
# site-helpers:
# metainfo:
# display: '<date> :: <title><|> -- <author|; >'
# empty: '*(no metadata)*'
# metalist:
# title:
# title: 'Title: <name>'
# display: 'Title: <|>, <|>'
# empty: '*(no title)*'
# date:
# title: 'Year: <name>'
# display: 'Date: <|>, <|>'
# empty: '*(no date)*'
# author:
# title: 'Author: <name>'
# display: 'Authors: <|>, <|>'
# empty: '*(no author)*'
# readtime:
# display: '*Reading time: <word> words, <time> minutes*'
# wpm: 220
# redirect:
# title: 'Moved To: <link>'
# display: '**This link has been permanently moved to: <link>**'
# exclude:
# - "null"
# time: 5
# site-library:
# folder:
# name: "null"
# auto_update: null
# pages:
# anchor_links: 1
# append:
# - null
# digest:
# title: Latest Updates
# continue: '*[...]*'
# permalink: '*(link to full page)*'
# chars: 1024
# count: 10
# expanded: 0
# spacer: 1
# lists:
# expanded: 0
# spacer: 1
# sitemap:
# title: Site Map
# exclude:
# - "null"
# expanded: 0
# spacer: 1
# site-nav-top: null
# site-nav-bottom: null
# site-nav-left: null
# site-nav-right: null
# site-info-top: null
# site-info-bottom: null
Use the template.md target to create new markdown files:
---
title: "Composer CMS: Content Make System"
date: 2026-05-06 00:00 -07:00
author:
- Gary B. Genett
---
*Happy Making!*
Defaults
The default .composer.mk in the Composer directory:
################################################################################
# Composer CMS :: GNU Make Configuration
################################################################################
ifneq ($(COMPOSER_CURDIR),)
################################################################################
########################################
# Settings
override COMPOSER_TARGETS := \
README.site.html \
README.html \
README.pdf \
README.epub \
README.revealjs.html \
README.docx \
LICENSE.html
#>> README.pptx \
#>> README.txt \
#>> README.md.txt \
override COMPOSER_SUBDIRS := .null
########################################
# Defaults
$(foreach FILE,README.site README LICENSE,\
$(eval override $(FILE).*/c_logo := _artifacts/images/logo-v1.0.png) \
$(eval override $(FILE).*/c_icon := _artifacts/images/icon-v1.0.png) \
$(eval override $(FILE).*/c_toc := 0) \
)
########################################
# Files
override README.site.html := _artifacts/README.site.md
override README.site.html/c_site := 1
override README.site.html/c_toc :=
override README.pdf := README.md LICENSE.md
override README.revealjs.html := _artifacts/README.revealjs.md
#override README.revealjs.html/c_toc :=
override LICENSE.html/c_site := 1
override LICENSE.html/c_toc :=
################################################################################
endif
################################################################################
# End Of File
################################################################################
The template .composer.yml in the _artifacts directory:
################################################################################
# Composer CMS :: YAML Configuration
################################################################################
variables:
########################################
# site
title-prefix: "EXAMPLE SITE"
########################################
site-config:
navbars:
brand: "LOGO / BRAND"
homepage: http://www.garybgenett.net/projects/composer
search:
#>> name: "SEARCH"
name: |
<!-- composer >> icon search -->
site: https://duckduckgo.com
call: q
form: |
<!-- composer >> form sites garybgenett.net -->
<!-- composer >> form ia web -->
<!-- composer >> form kae d -->
<!-- composer >> form ko 1 -->
<!-- composer >> form kp -1 -->
<!-- composer >> form kv 1 -->
<!-- composer >> form kz -1 -->
#>> copyright: "COPYRIGHT"
copyright: |
<!-- composer >> icon gpl -->
<!-- composer >> icon cc-by-nc-nd -->
<!-- composer >> icon copyright -->
COPYRIGHT
#>> composer: 1
#>> pages:
#>> css_overlay: dark
#>> copy_protect: null
#>> header: [ "null" ]
#>> footer: [ "null" ]
#>> cols:
#>> break: lg
#>> scroll: 1
#>> order: [ 1, 2, 3 ]
#>> reorder: [ 1, 3, 2 ]
#>> size: [ 3, 7, 2 ]
#>> resize: [ 6, 12, 6 ]
#>> dates:
#>> parse: [ "2006-01-02T15:04:05-07:00", "2006-01-02 15:04 -07:00", "2006-01-02", "January 2, 2006", "January 2, 2006 3:04 PM MST -07:00" ]
#>> display: "2006-01-02"
#>> library: "2006"
#>> timezone: "-08:00"
########################################
site-helpers:
#>> metainfo:
#>> display: "<date> :: <title><|> -- <author|; >"
#>> empty: "*(no metadata)*"
metalist:
#>> title:
#>> title: "Title: <name>"
#>> display: "Title: <|>, <|>"
#>> empty: "*(no title)*"
#>> date:
#>> title: "Year: <name>"
#>> display: "Date: <|>, <|>"
#>> empty: "*(no date)*"
#>> author:
#>> title: "Author: <name>"
#>> display: "Authors: <|>, <|>"
#>> empty: "*(no author)*"
tags:
title: "Tag: <name>"
display: "Tags: <|>, <|>"
empty: "*(no tags)*"
#>> readtime:
#>> display: "*Reading time: <word> words, <time> minutes*"
#>> wpm: 220
#>> redirect:
#>> title: "Moved To: <link>"
#>> display: "**This link has been permanently moved to: <link>**"
#>> exclude: [ "null" ]
#>> time: 5
########################################
site-library:
folder:
name: "null"
#>> auto_update: null
#>> pages:
#>> anchor_links: 1
#>> append: [ "null" ]
#>> digest:
#>> title: "Latest Updates"
#>> continue: "*[...]*"
#>> permalink: "*(link to full page)*"
#>> chars: 1024
#>> count: 10
#>> expanded: 0
#>> spacer: 1
#>> lists:
#>> expanded: 0
#>> spacer: 1
#>> sitemap:
#>> title: "Site Map"
#>> exclude: [ "null" ]
#>> expanded: 0
#>> spacer: 1
########################################
site-nav-top:
MENU:
- MAIN: <composer_root>/index.html
- PAGES:
- Composer README: <composer_root>/../index.html
- spacer
- Introduction:
- _: <composer_root>/index.html
- Default Site: <composer_root>/null/index.html
- Configured Site: <composer_root>/config/index.html
- Pandoc Markdown: <composer_root>/pandoc/MANUAL.html
- Bootstrap Default: <composer_root>/bootstrap/getting-started/introduction.html
- Layout & Elements:
- _: <composer_root>/examples.html
- Metainfo Page: <composer_root>/config/pages.html
- Metainfo File: <composer_root>/config/pages/2024-01-01+template_0.html
- Themes & Overlays: <composer_root>/themes/index.html
- Default Library Page:
- _: <composer_root>/_library/index.html
- Configured Library Page: <composer_root>/config/_library-config/index.html
#>> - Default Digest Page: <composer_root>/index-digest.html
#>> - Configured Digest Page: <composer_root>/config/index-digest.html
CONTENTS:
- CONTENTS:
- contents
#>> - contents 6
#>> - contents 0
SPACE:
- spacer
LIBRARY:
- DATES:
- library date
- AUTHORS:
- library author
- TAGS:
- library tags
########################################
site-nav-bottom:
PATH:
- SITEMAP: <composer_root>/_library/sitemap.html
INFO:
- metalist title
- metalist date
- metalist author
- metalist tags
########################################
site-nav-left:
BEGIN:
MENU:
- fold-begin 0 . 0 LEFT FOLD
- _: |
* ITEM 1
* ITEM 2
* ITEM 3
- fold-end
MIDDLE:
- spacer
TEXT:
- box-begin 0 LEFT BOX
- _: |
LEFT TEXT
- box-end
SPACE:
- spacer
CONTENTS:
- box-begin 0 CONTENTS
- metainfo
- metalist title
- metalist date
- metalist author
- metalist tags
- contents
#>> - contents 6
#>> - contents 0
- readtime
- box-end
END:
########################################
site-nav-right:
BEGIN:
MENU:
- fold-begin 0 . 0 RIGHT FOLD
- _: |
* ITEM 1
* ITEM 2
* ITEM 3
- fold-end
MIDDLE:
- spacer
TEXT:
- box-begin 0 RIGHT BOX
- _: |
RIGHT TEXT
- box-end
SPACE:
- spacer
LIBRARY:
- fold-begin group library
- fold-begin 0 0 library DATES
- library date
- fold-end
- fold-begin 0 0 library AUTHORS
- library author
- fold-end
- fold-begin 0 . library TAGS
- library tags
- fold-end
- fold-end group
END:
########################################
site-info-top:
TEXT:
- _: |
TOP TEXT
INFO:
#>> - metainfo
#>> - metalist title
#>> - metalist date
#>> - metalist author
#>> - metalist tags
#>> - readtime
ICON:
- icon github https://github.com/garybgenett/composer Composer CMS
#>> - _: |
#>> <!-- composer >> icon gpl -->
#>> <!-- composer >> icon cc-by-nc-nd -->
#>> <!-- composer >> icon copyright -->
########################################
site-info-bottom:
TEXT:
- _: |
BOTTOM TEXT
INFO:
#>> - metainfo
#>> - metalist title
#>> - metalist date
#>> - metalist author
#>> - metalist tags
- readtime
ICON:
################################################################################
# End Of File
################################################################################