Skip to content

Commit 71c4361

Browse files
committed
Add recipes to run Markdown JavaScript examples
1 parent 10ef79e commit 71c4361

File tree

2 files changed

+74
-1
lines changed

2 files changed

+74
-1
lines changed

tools/make/lib/examples/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# DEPENDENCIES #
33

44
include $(TOOLS_MAKE_LIB_DIR)/examples/examples.mk
5-
# include $(TOOLS_MAKE_LIB_DIR)/examples/markdown.mk
5+
include $(TOOLS_MAKE_LIB_DIR)/examples/markdown_javascript.mk
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
2+
# VARIABLES #
3+
4+
# Define the path to the [remark][1] executable.
5+
#
6+
# To install remark:
7+
# $ npm install remark-cli
8+
#
9+
# [1]: https://github.com/wooorm/remark/
10+
11+
REMARK ?= $(BIN_DIR)/remark
12+
13+
# Define the path to the local remark plugins directory:
14+
REMARK_LOCAL_PLUGINS_DIR ?= $(TOOLS_DIR)/remark/plugins
15+
16+
# Define the path to the remark configuration file:
17+
REMARK_RUN_JAVASCRIPT_EXAMPLES_CONF ?= $(CONFIG_DIR)/remark/.remarkrc.js
18+
19+
# Define the path to the remark ignore file:
20+
REMARK_RUN_JAVASCRIPT_EXAMPLES_IGNORE ?= $(CONFIG_DIR)/remark/.remarkignore
21+
22+
# Define the path to a plugin which processes JavaScript examples in Markdown files:
23+
REMARK_RUN_JAVASCRIPT_EXAMPLES_PLUGIN ?= $(REMARK_LOCAL_PLUGINS_DIR)/remark-run-javascript-examples
24+
REMARK_RUN_JAVASCRIPT_EXAMPLES_PLUGIN_SETTINGS ?=
25+
REMARK_RUN_JAVASCRIPT_EXAMPLES_PLUGIN_FLAGS ?= --use $(REMARK_RUN_JAVASCRIPT_EXAMPLES_PLUGIN)=$(REMARK_RUN_JAVASCRIPT_EXAMPLES_PLUGIN_SETTINGS)
26+
27+
# Define command-line options when invoking the remark executable:
28+
REMARK_RUN_JAVASCRIPT_EXAMPLES_FLAGS ?= \
29+
--ext $(MARKDOWN_FILENAME_EXT) \
30+
--rc-path $(REMARK_RUN_JAVASCRIPT_EXAMPLES_CONF) \
31+
--ignore-path $(REMARK_RUN_JAVASCRIPT_EXAMPLES_IGNORE) \
32+
--no-stdout \
33+
--no-ignore \
34+
--no-config \
35+
--quiet
36+
37+
38+
# TARGETS #
39+
40+
# Run examples.
41+
#
42+
# This target runs JavaScript examples in Markdown files in sequential order.
43+
44+
markdown-examples-javascript: $(NODE_MODULES)
45+
$(QUIET) $(FIND_MARKDOWN_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | grep 'README.md' | grep -v '_tools' | grep -v 'stdlib/tools' | while read -r file; do \
46+
echo ""; \
47+
echo "Running Markdown JavaScript examples: $$file"; \
48+
NODE_ENV=$(NODE_ENV_EXAMPLES) \
49+
NODE_PATH=$(NODE_PATH_EXAMPLES) \
50+
$(REMARK) $$file \
51+
$(REMARK_RUN_JAVASCRIPT_EXAMPLES_FLAGS) \
52+
$(REMARK_RUN_JAVASCRIPT_EXAMPLES_PLUGIN_FLAGS) || exit 1; \
53+
done
54+
55+
.PHONY: markdown-examples-javascript
56+
57+
58+
# Run examples.
59+
#
60+
# This target runs JavaScript examples from a specified list of Markdown files in sequential order.
61+
62+
markdown-examples-javascript-files: $(NODE_MODULES)
63+
$(QUIET) for file in $(FILES); do \
64+
echo ""; \
65+
echo "Running Markdown JavaScript examples: $$file"; \
66+
NODE_ENV=$(NODE_ENV_EXAMPLES) \
67+
NODE_PATH=$(NODE_PATH_EXAMPLES) \
68+
$(REMARK) $$file \
69+
$(REMARK_RUN_JAVASCRIPT_EXAMPLES_FLAGS) \
70+
$(REMARK_RUN_JAVASCRIPT_EXAMPLES_PLUGIN_FLAGS) || exit 1; \
71+
done
72+
73+
.PHONY: markdown-examples-javascript-files

0 commit comments

Comments
 (0)