cmark

My personal build of CMark ✏️

Commit
dc5345daad121be5ee38e673acd532e69d5f8e75
Parent
e466700c9744dd361b4fb17f93382449a8a6a166
Author
John MacFarlane <jgm@berkeley.edu>
Date

Keep cmark.1 in repository, so pandoc isn't required to build.

See #224.

Diffstat

3 files changed, 52 insertions, 7 deletions

Status File Name N° Changes Insertions Deletions
Modified Makefile 7 5 2
Modified man/CMakeLists.txt 18 13 5
Added man/man1/cmark.1 34 34 0
diff --git a/Makefile b/Makefile
@@ -21,13 +21,13 @@ JSMODULES=$(wildcard js/lib/*.js)
 
 .PHONY: all spec leakcheck clean fuzztest dingus upload jshint test testjs benchjs update-site upload-site check npm debug mingw archive tarball ziparchive testarchive testtarball testziparchive testlib bench apidoc
 
-all: $(BUILDDIR) $(SRCDIR)/html/html_unescape.h $(SRCDIR)/case_fold_switch.inc
+all: $(BUILDDIR)
 	@make -C $(BUILDDIR)
 
 check:
 	@cmake --version > /dev/null || (echo "You need cmake to build this program: http://www.cmake.org/download/" && exit 1)
 
-$(BUILDDIR): check
+$(BUILDDIR): check $(SRCDIR)/html/html_unescape.h $(SRCDIR)/case_fold_switch.inc man/man1/cmark.1
 	mkdir -p $(BUILDDIR); \
 	cd $(BUILDDIR); \
 	cmake .. -G "$(GENERATOR)" -DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
@@ -71,6 +71,9 @@ clean:
 
 $(PROG): all
 
+man/man1/cmark.1: man/cmark.1.md
+	mkdir -p man/man1 && pandoc -t man -s $< -o $@
+
 apidoc: src/cmark.h
 	doxygen Doxyfile
 
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt
@@ -5,12 +5,20 @@ add_custom_target(manpages ALL
   DEPENDS ${MANDEST}/man1/cmark.1
 )
 
+# This is a temporary fallback until we get a cmark-based
+# build procedure for the man pages:
 add_custom_command(OUTPUT ${MANDEST}/man1/cmark.1
-  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/cmark.1.md
-  COMMAND pandoc "-s" "-t" "man"
-  ${CMAKE_CURRENT_SOURCE_DIR}/cmark.1.md
-  -o ${MANDEST}/man1/cmark.1
-  VERBATIM)
+  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man1/cmark.1
+  COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/man1/cmark.1
+             ${MANDEST}/man1/cmark.1 VERBATIM
+)
+
+# add_custom_command(OUTPUT ${MANDEST}/man1/cmark.1
+#   DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/cmark.1.md
+#   COMMAND pandoc "-s" "-t" "man"
+#   ${CMAKE_CURRENT_SOURCE_DIR}/cmark.1.md
+#   "-o" ${MANDEST}/man1/cmark.1
+#   VERBATIM)
 
 INSTALL(FILES ${MANDEST}/man1/cmark.1 DESTINATION share/man/man1)
 
diff --git a/man/man1/cmark.1 b/man/man1/cmark.1
@@ -0,0 +1,34 @@
+.TH "cmark" "1" "October 22, 2014" "cmark manual" ""
+.SH NAME
+.PP
+cmark \- convert CommonMark formatted text to HTML
+.SH SYNOPSIS
+.PP
+cmark [\f[I]options\f[]] [file*]
+.SH DESCRIPTION
+.PP
+\f[C]cmark\f[] acts as a pipe, reading from stdin or from the specified
+files and writing to stdout.
+It converts Markdown formatted plain text to HTML, using the conventions
+described in the CommonMark spec.
+If multiple files are specified, the contents of the files are simply
+concatenated before parsing.
+.SH OPTIONS
+.TP
+.B \f[C]\-\-ast\f[]
+Print an abstract syntax tree instead of HTML.
+.RS
+.RE
+.TP
+.B \f[C]\-\-help\f[]
+Print usage information.
+.RS
+.RE
+.TP
+.B \f[C]\-\-version\f[]
+Print version.
+.RS
+.RE
+.SH AUTHORS
+.PP
+John MacFarlane