<commit_before># include Makefile.win
include Makefile.in

MDDIR:= doc
DATADIR:= doc/data
TARGETDIR:= doc/Out
IMAGEDIR:= doc/images
WAVEDIR:= doc/images/waves

INPUT:= TITLE.md
TARGET = TARGET

CSV:= $(shell cd $(DATADIR); ls *.csv)
TABLES:= $(CSV:%.csv=$(TARGETDIR)/%.tmd)

WAVEYAML:= $(shell cd $(DATADIR); ls *.yaml)
PYWAVEOPTS:= -c
PYWAVEOPTS += 'import sys, yaml, json; \
							json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)'
WAVEJSON:= $(WAVEYAML:%.yaml=$(TARGETDIR)/%.json)
WAVEPNG:= $(WAVEYAML:%.yaml=$(WAVEDIR)/%.png)

FILTERED= $(INPUT:%.md=$(TARGETDIR)/%.fmd)
HTML:=$(TARGETDIR)/$(TARGET).html
DOCX:=$(TARGETDIR)/$(TARGET).docx

PANFLAGS += --toc
PANFLAGS += --listings
PANFLAGS += --number-sections --highlight-style=pygments
PANFLAGS += -M localfontdir=$(FONTDIR)
PANFLAGS += -M css=$(MISC)/github_css/github.css
PANFLAGS += -M short-hash=`git rev-parse --short HEAD`
PANFLAGS += -M tables=true

MARKDOWN = $(shell ls $(MDDIR)/*.md)

.PHONY: docx html filtered tables pdf tex merge clean linking

all: html

docx: $(DOCX)
$(DOCX): $(HTML)
	$(PANDOC) --reference-docx=$(REFERENCE) $(HTML) -o $(DOCX); \
	$(PYTHON) $(DOCXPWRTR) -I $(MDDIR)/$(INPUT) -O $(DOCX)

html: $(HTML)
$(HTML): $(TARGETDIR)/$(TARGET).md
	$(PANDOC) $(PANFLAGS) --self-contained -thtml5 --template=$(MISC)/github.html \
		$(FILTERED) -o $(HTML)

pdf: $(TARGETDIR)/$(IMAGEDIR) $(TARGETDIR)/$(TARGET).tex
	cd $(TARGETDIR);\
	xelatex --no-pdf $(TARGET).tex; \
	xelatex $(TARGET).tex

linking: $(TARGETDIR)/$(IMAGEDIR)
$(TARGETDIR)/$(IMAGEDIR):
	rm -f $(TARGETDIR)/$(IMAGEDIR); \
	cd $(TARGETDIR);\
	ln -s ../$(IMAGEDIR)

tex: $(TARGETDIR)/$(TARGET).tex
$(TARGETDIR)/$(TARGET).tex: $(TARGETDIR)/$(TARGET).md
	$(PANDOC) $(PANFLAGS) --template=$(MISC)/CJK_xelatex.tex --latex-engine=xelatex \
		$(TARGETDIR)/$(TARGET).md -o $(TARGETDIR)/$(TARGET).tex

merge: $(TARGETDIR)/$(TARGET).md
$(TARGETDIR)/$(TARGET).md: $(FILTERED)
	cat $(FILTERED) > $(TARGETDIR)/$(TARGET).md

filtered: $(FILTERED)
$(FILTERED): $(MDDIR)/$(INPUT) $(MARKDOWN) $(TABLES) $(WAVEPNG)
	cat $< | $(PYTHON) $(FILTER) --out $@

tables: $(TABLES)
$(TARGETDIR)/%.tmd: $(DATADIR)/%.csv
	$(PYTHON) $(CSV2TABLE) --file $< --out $@ --delimiter ','

wavedrom: $(WAVEPNG)
$(WAVEDIR)/%.png: $(TARGETDIR)/%.json
	phantomjs $(WAVEDROM) -i $< -p $@

yaml2json: $(WAVEJSON)
$(TARGETDIR)/%.json: $(DATADIR)/%.yaml
	$(PYTHON) $(PYWAVEOPTS) < $< > $@

$(TARGETDIR):
	mkdir -p $(TARGETDIR)
$(DATADIR):
	mkdir -p $(DATADIR)
$(MDDIR):
	mkdir -p $(MDDIR)
$(IMAGEDIR):
	mkdir -p $(IMAGEDIR)
$(WAVEDIR):
	mkdir -p $(WAVEDIR)

clean: $(TARGETDIR)
	rm -rf $(TARGETDIR)/* $(WAVEDIR)/<commit_msg>[ DOC ] fix Makefile to add prefix directory $(MDDIR)/<commit_after># include Makefile.win
include Makefile.in

MDDIR:= doc
DATADIR:= data
TARGETDIR:= Out
IMAGEDIR:= images
WAVEDIR:= images/waves

INPUT:= TITLE.md
TARGET = TARGET

CSV:= $(shell cd $(MDDIR)/$(DATADIR); ls *.csv)
TABLES:= $(CSV:%.csv=$(MDDIR)/$(TARGETDIR)/%.tmd)

WAVEYAML:= $(shell cd $(MDDIR)/$(DATADIR); ls *.yaml)
PYWAVEOPTS:= -c
PYWAVEOPTS += 'import sys, yaml, json; \
							json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)'
WAVEJSON:= $(WAVEYAML:%.yaml=$(MDDIR)/$(TARGETDIR)/%.json)
WAVEPNG:= $(WAVEYAML:%.yaml=$(MDDIR)/$(WAVEDIR)/%.png)

FILTERED= $(INPUT:%.md=$(MDDIR)/$(TARGETDIR)/%.fmd)
HTML:=$(MDDIR)/$(TARGETDIR)/$(TARGET).html
DOCX:=$(MDDIR)/$(TARGETDIR)/$(TARGET).docx

PANFLAGS += --toc
PANFLAGS += --listings
PANFLAGS += --number-sections --highlight-style=pygments
PANFLAGS += -M localfontdir=$(FONTDIR)
PANFLAGS += -M css=$(MISC)/github_css/github.css
PANFLAGS += -M short-hash=`git rev-parse --short HEAD`
PANFLAGS += -M tables=true

MARKDOWN = $(shell ls $(MDDIR)/*.md)

.PHONY: docx html filtered tables pdf tex merge clean linking

all: html

docx: $(DOCX)
$(DOCX): $(HTML)
	$(PANDOC) --reference-docx=$(REFERENCE) $(HTML) -o $(DOCX); \
	$(PYTHON) $(DOCXPWRTR) -I $(MDDIR)/$(INPUT) -O $(DOCX)

html: $(HTML)
$(HTML): $(MDDIR)/$(TARGETDIR)/$(TARGET).md
	$(PANDOC) $(PANFLAGS) --self-contained -thtml5 --template=$(MISC)/github.html \
		$(FILTERED) -o $(HTML)

pdf: $(MDDIR)/$(TARGETDIR)/$(IMAGEDIR) $(MDDIR)/$(TARGETDIR)/$(TARGET).tex
	cd $(MDDIR)/$(TARGETDIR);\
	xelatex --no-pdf $(TARGET).tex; \
	xelatex $(TARGET).tex

linking: $(MDDIR)/$(TARGETDIR)/$(IMAGEDIR)
$(MDDIR)/$(TARGETDIR)/$(IMAGEDIR):
	rm -f $(MDDIR)/$(TARGETDIR)/$(IMAGEDIR); \
	cd $(MDDIR)/$(TARGETDIR);\
	ln -s ../$(IMAGEDIR)

tex: $(MDDIR)/$(TARGETDIR)/$(TARGET).tex
$(MDDIR)/$(TARGETDIR)/$(TARGET).tex: $(MDDIR)/$(TARGETDIR)/$(TARGET).md
	$(PANDOC) $(PANFLAGS) --template=$(MISC)/CJK_xelatex.tex --latex-engine=xelatex \
		$(MDDIR)/$(TARGETDIR)/$(TARGET).md -o $(MDDIR)/$(TARGETDIR)/$(TARGET).tex

merge: $(MDDIR)/$(TARGETDIR)/$(TARGET).md
$(MDDIR)/$(TARGETDIR)/$(TARGET).md: $(FILTERED)
	cat $(FILTERED) > $(TARGETDIR)/$(TARGET).md

filtered: $(FILTERED)
$(FILTERED): $(MDDIR)/$(INPUT) $(MARKDOWN) $(TABLES) $(WAVEPNG)
	cat $< | $(PYTHON) $(FILTER) --out $@

tables: $(TABLES)
$(MDDIR)/$(TARGETDIR)/%.tmd: $(MDDIR)/$(DATADIR)/%.csv
	$(PYTHON) $(CSV2TABLE) --file $< --out $@ --delimiter ','

wavedrom: $(WAVEPNG)
$(MDDIR)/$(WAVEDIR)/%.png: $(MDDIR)/$(TARGETDIR)/%.json
	phantomjs $(WAVEDROM) -i $< -p $@

yaml2json: $(WAVEJSON)
$(MDDIR)/$(TARGETDIR)/%.json: $(MDDIR)/$(DATADIR)/%.yaml
	$(PYTHON) $(PYWAVEOPTS) < $< > $@

$(MDDIR)/$(TARGETDIR):
	mkdir -p $(MDDIR)/$(TARGETDIR)
$(MDDIR)/$(DATADIR):
	mkdir -p $(MDDIR)/$(DATADIR)
$(MDDIR):
	mkdir -p $(MDDIR)
$(MDDIR)/$(IMAGEDIR):
	mkdir -p $(MDDIR)/$(IMAGEDIR)
$(MDDIR)/$(WAVEDIR):
	mkdir -p $(MDDIR)/$(WAVEDIR)

clean: $(MDDIR)/$(TARGETDIR)
	rm -rf $(MDDIR)/$(TARGETDIR)/* $(MDDIR)/$(WAVEDIR)/
{'fraction_non_alphanumeric': 0.25901581097885945, 'fraction_numerical': 0.0014212115828744004, 'mean_word_length': 4.970307529162248, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1801852', 'n_tokens_mistral': 2433, 'n_tokens_neox': 2288, 'n_words': 437}