|
| 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