diff --git a/src/process.c b/src/process.c index 5443e56..88d83d5 100644 --- a/src/process.c +++ b/src/process.c @@ -99,7 +99,30 @@ static int parse_file(const char* top, const char* full) { fprintf(f, " document.images[i].style.height = oldh + \"px\";\n"); fprintf(f, " }\n"); fprintf(f, " }\n"); + fprintf(f, " function fixTags(tagName){\n"); /* FIXME: remove some unneeded space that appears for no reasons */ + fprintf(f, " var tags = document.getElementById(\"content\").getElementsByTagName(tagName);\n"); + fprintf(f, " for(var i = 0; i < tags.length; i++){\n"); + fprintf(f, " var w = document.documentElement.clientWidth;\n"); + fprintf(f, " var e = document.getElementById(\"content\");\n"); + fprintf(f, " while(e){\n"); + fprintf(f, " w -= e.offsetLeft;\n"); + fprintf(f, " e = e.parentElement\n"); + fprintf(f, " }\n"); + fprintf(f, " tags[i].style.width = w + \"px\";\n"); + fprintf(f, " }\n"); + fprintf(f, " }\n"); + fprintf(f, " fixTags(\"pre\");\n"); + fprintf(f, " fixTags(\"table\");\n"); + fprintf(f, " fixTags(\"div\");\n"); + fprintf(f, " fixTags(\"p\");\n"); + fprintf(f, " document.documentElement.style.width = document.documentElement.clientWidth + \"px\";\n"); fprintf(f, " \n"); + fprintf(f, " \n"); + fprintf(f, " \n"); fprintf(f, " \n"); fprintf(f, " \n"); fprintf(f, "\n"); diff --git a/src/skin/classic.c b/src/skin/classic.c index 4ba3d0b..14574e2 100644 --- a/src/skin/classic.c +++ b/src/skin/classic.c @@ -124,6 +124,12 @@ void classic_stylesheet(FILE* out, const char* top) { fprintf(out, " border-left: 1px solid #cccccc;\n"); fprintf(out, "}\n"); fprintf(out, "\n"); + fprintf(out, "pre {\n"); + fprintf(out, " overflow-wrap: break-word;\n"); + fprintf(out, " word-wrap: break-word;\n"); + fprintf(out, " white-space: pre-wrap;\n"); + fprintf(out, "}\n"); + fprintf(out, "\n"); fprintf(out, ".message-icon {\n"); fprintf(out, " padding-right: 5px;\n"); fprintf(out, "}\n"); diff --git a/src/skin/simple.c b/src/skin/simple.c index 04b071c..ca57cdc 100644 --- a/src/skin/simple.c +++ b/src/skin/simple.c @@ -171,6 +171,12 @@ void simple_stylesheet(FILE* out, const char* top) { fprintf(out, " border-bottom: solid 1px #808080;\n"); fprintf(out, "}\n"); fprintf(out, "\n"); + fprintf(out, "pre {\n"); + fprintf(out, " overflow-wrap: break-word;\n"); + fprintf(out, " word-wrap: break-word;\n"); + fprintf(out, " white-space: pre-wrap;\n"); + fprintf(out, "}\n"); + fprintf(out, "\n"); fprintf(out, ".box-content ul {\n"); fprintf(out, " margin: 0;\n"); fprintf(out, " padding-top: 8px;\n");