From 52203a49aa544b2c11c96445d8732893160c436b Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Tue, 19 Apr 2022 17:50:19 +0300 Subject: WIP #16 Pretty much done. Needs more testing. And new documentation. --- src/clarktown/correctors/atx_heading_block.clj | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/clarktown/correctors/atx_heading_block.clj (limited to 'src/clarktown/correctors/atx_heading_block.clj') diff --git a/src/clarktown/correctors/atx_heading_block.clj b/src/clarktown/correctors/atx_heading_block.clj new file mode 100644 index 0000000..a792572 --- /dev/null +++ b/src/clarktown/correctors/atx_heading_block.clj @@ -0,0 +1,19 @@ +(ns clarktown.correctors.atx-heading-block + (:require + [clojure.string :as string])) + + +(defn empty-line-above? + [lines line index] + (and (string/starts-with? (string/trim line) "#") + (> index 0) + (not (= (-> (nth lines (- index 1)) + string/trim) "")))) + + +(defn empty-line-below? + [lines line index] + (and (string/starts-with? (string/trim line) "#") + (< index (- (count lines) 1)) + (not (= (-> (nth lines (+ index 1)) + string/trim) "")))) \ No newline at end of file -- cgit v1.2.3 From dc921cbe1c786995a8670efd9f5556ee9df064f9 Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Sat, 23 Apr 2022 02:42:52 +0300 Subject: Add docstrings --- src/clarktown/correctors/atx_heading_block.clj | 12 +++++++++++- src/clarktown/correctors/code_block.clj | 10 ++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src/clarktown/correctors/atx_heading_block.clj') diff --git a/src/clarktown/correctors/atx_heading_block.clj b/src/clarktown/correctors/atx_heading_block.clj index a792572..9ff789e 100644 --- a/src/clarktown/correctors/atx_heading_block.clj +++ b/src/clarktown/correctors/atx_heading_block.clj @@ -4,6 +4,11 @@ (defn empty-line-above? + "Determines whether there's a need for an empty new line + above the `line` at the current `index`. In the case of a + ATX heading block that starts with the `#` character, if + there's no empty newline above, we need to create one, and + so this function must then return `true`." [lines line index] (and (string/starts-with? (string/trim line) "#") (> index 0) @@ -12,8 +17,13 @@ (defn empty-line-below? + "Determines whether there's a need for an empty new line + below the `line` at the current `index`. In the case of a + ATX heading block that starts with the `#` character, if + there's no empty newline below, we need to create one, and + so this function must then return `true`." [lines line index] (and (string/starts-with? (string/trim line) "#") (< index (- (count lines) 1)) (not (= (-> (nth lines (+ index 1)) - string/trim) "")))) \ No newline at end of file + string/trim) "")))) diff --git a/src/clarktown/correctors/code_block.clj b/src/clarktown/correctors/code_block.clj index 9b2f0f3..73989fe 100644 --- a/src/clarktown/correctors/code_block.clj +++ b/src/clarktown/correctors/code_block.clj @@ -4,6 +4,11 @@ (defn empty-line-above? + "Determines whether there's a need for an empty new line + above the `line` at the current `index`. In the case of a + code block, which starts with three backticks (```), if there's + no empty newline above, we need to create one, and so this + function must then return `true`." [lines line index] (and (string/starts-with? (string/trim line) "```") (> index 0) @@ -16,6 +21,11 @@ (defn empty-line-below? + "Determines whether there's a need for an empty new line + below the `line` at the current `index`. In the case of a + code block, which ends with three backticks (```), if there's + no empty newline above, we need to create one, and so this + function must then return `true`." [lines line index] (and (string/starts-with? (string/trim line) "```") (< index (- (count lines) 1)) -- cgit v1.2.3