Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue 16 - converting backtick text to <code> #17

Merged
merged 3 commits into from
Sep 29, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,159 changes: 0 additions & 1,159 deletions Sherlock-Holmes-Selected-Stories/Silver Blaze.txt

This file was deleted.

This file was deleted.

1,140 changes: 0 additions & 1,140 deletions Sherlock-Holmes-Selected-Stories/The Adventure of the Speckled Band.txt

This file was deleted.

1,628 changes: 0 additions & 1,628 deletions Sherlock-Holmes-Selected-Stories/The Naval Treaty.txt

This file was deleted.

1,041 changes: 0 additions & 1,041 deletions Sherlock-Holmes-Selected-Stories/The Red Headed League.txt

This file was deleted.

527 changes: 0 additions & 527 deletions dist/Silver Blaze.html

This file was deleted.

529 changes: 0 additions & 529 deletions dist/The Adventure of the Six Napoleans.html

This file was deleted.

484 changes: 0 additions & 484 deletions dist/The Adventure of the Speckled Band.html

This file was deleted.

636 changes: 0 additions & 636 deletions dist/The Naval Treaty.html

This file was deleted.

457 changes: 0 additions & 457 deletions dist/The Red Headed League.html

This file was deleted.

1 change: 0 additions & 1 deletion dist/index.html

This file was deleted.

73 changes: 43 additions & 30 deletions fs-Handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ var fse = require("fs-extra");
const path = require("path");

function isMarkDown(filename) {
return filename.split('.')[1] === 'md';
return filename.substr(filename.length - 3) === ".md";
}

function readFile(fileSrc) {
Expand All @@ -17,13 +17,13 @@ function readFile(fileSrc) {
.catch((err) => {
console.log(err);
});

if (fs.lstatSync(fileSrc).isDirectory()) {
fs.readdir(fileSrc, (err, files) => {
if (err) {
console.log(err);
process.exit(1);
}

fs.mkdir(process.cwd() + "/dist", { recursive: true }, (error) => {
if (error) {
console.log(`An error occurred: ${error}`);
Expand All @@ -44,7 +44,8 @@ function readFile(fileSrc) {
process.exit(1);
}
fileDir = path.basename(file, ".txt") + ".html";
htmlConverter(data, fileDir);
console.log("direct files");
htmlConverter(data, fileDir, isMarkDown(file));
}
);
}
Expand All @@ -65,7 +66,10 @@ function readFile(fileSrc) {
if (error) {
console.log(`An error occurred: ${error}`);
} else {
fileDir = isMarkDown(filename) ? path.basename(filename, ".md") + ".html" : path.basename(filename, ".txt") + ".html";
fileDir = isMarkDown(filename)
? path.basename(filename, ".md") + ".html"
: path.basename(filename, ".txt") + ".html";
console.log("single file");
htmlConverter(data, fileDir, isMarkDown(filename));
}
});
Expand All @@ -76,7 +80,7 @@ function readFile(fileSrc) {
function htmlConverter(src, fileDirName, isMarkDown = false) {
var fileName = "";
var text = "";

var title = src.match(/^.+(\r?\n\r?\n\r?\n)/) || "";

if (!title) {
Expand All @@ -87,55 +91,64 @@ function htmlConverter(src, fileDirName, isMarkDown = false) {
title = title[0].trim();
text = src.substring(fileName.length + 3);
}

let htmlElement = '';
if(!isMarkDown){
//aa
let htmlElement = "";
if (!isMarkDown) {
htmlElement = text
.split(/\r?\n\r?\n/)
.map((para) => `<p>${para.replace(/\r?\n/, " ")}</p>`)
.join(" ");
}else {
.split(/\r?\n\r?\n/)
.map((para) => `<p>${para.replace(/\r?\n/, " ")}</p>`)
.join(" ");
} else {
const htmlArr = [];
console.log(text.split(/\r?\n/));
//console.log(text.split(/\r?\n/));
let isOpen = false;
text
.split(/\r?\n/)
.forEach(e => {
const arrData = e.split(' ');
arrData[0] = arrData[0].startsWith('```') && arrData[0].length > 3 ? '````' : arrData[0];
if(arrData[0] !== '```' && isOpen) {
arrData[0] = 'e';
text.split(/\r?\n/).forEach((e) => {
const arrData = e.split(" ");
arrData[0] =
arrData[0].startsWith("```") && arrData[0].length > 3
? "````"
: arrData[0];
if (arrData[0] !== "```" && isOpen) {
arrData[0] = "e";
}
switch(arrData[0]) {
case '#':
switch (arrData[0]) {
case "#":
htmlArr.push(`<h1>${arrData.slice(1).join(" ")}</h1><hr />\n`);
break;
case '##':
case "##":
htmlArr.push(`<h2>${arrData.slice(1).join(" ")}</h2>\n`);
break;
case '###':
case "###":
htmlArr.push(`<h3>${arrData.slice(1).join(" ")}</h3>\n`);
break;
case '```':
case "`":
htmlArr.push(`<code>${e.substr(1)}\n`);
isOpen = false;
break;
case "`":
htmlArr.push(`${e.substr(e.length)}</code>\n`);
isOpen = true;
break;
case "```":
htmlArr.push(`${e}</xmp>\n`);
isOpen = false;
break;
case '````':
case "````":
htmlArr.push(`<xmp>${e}\n`);
isOpen = true;
break;
case '':
case "":
htmlArr.push(`<br />\n`);
break;
case 'e':

case "e":
htmlArr.push(`${e}\n`);
break;
default:
htmlArr.push(`<p>${e}</p>\n`);
}
htmlElement = htmlArr.join("")
htmlElement = htmlArr.join("");
});

}

var htmlBase =
Expand Down