diff --git a/public/parsing.wasm b/public/parsing.wasm index eaea301..5a848f4 100755 Binary files a/public/parsing.wasm and b/public/parsing.wasm differ diff --git a/public/style.css b/public/style.css index 956871a..0896a5d 100644 --- a/public/style.css +++ b/public/style.css @@ -853,7 +853,7 @@ img, video { -l = large */ -.ba { +.ba, .post-content th, .post-content td { border-style: solid; border-width: 1px; } @@ -869,7 +869,7 @@ img, video { border-bottom-style: solid; border-bottom-width: 1px; } -.bl { +.bl, blockquote { border-left-style: solid; border-left-width: 1px; } @@ -1173,7 +1173,7 @@ img, video { .br1 { border-radius: 0.125rem; } -.br2, .hmn-code { +.br2, .post-content code, .post-content pre > code, .post-content pre.hmn-code { border-radius: 0.25rem; } .br3 { @@ -4605,7 +4605,7 @@ code, .code { .pl1 { padding-left: 0.25rem; } -.pl2 { +.pl2, blockquote { padding-left: 0.5rem; } .pl3 { @@ -4703,7 +4703,7 @@ code, .code { .optionbar .options button, .optionbar .options .button, .optionbar .options input[type=button], -.optionbar .options input[type=submit] { +.optionbar .options input[type=submit], .post-content th, .post-content td { padding-top: 0.25rem; padding-bottom: 0.25rem; } @@ -4747,7 +4747,7 @@ input[type=submit], .notice { .optionbar .options button, .optionbar .options .button, .optionbar .options input[type=button], -.optionbar .options input[type=submit], .pagination .button { +.optionbar .options input[type=submit], .pagination .button, .post-content th, .post-content td { padding-left: 0.5rem; padding-right: 0.5rem; } @@ -4805,7 +4805,7 @@ input[type=submit], .notice { .ml1 { margin-left: 0.25rem; } -.ml2 { +.ml2, blockquote { margin-left: 0.5rem; } .ml3 { @@ -4823,7 +4823,7 @@ input[type=submit], .notice { .ml7 { margin-left: 16rem; } -.mr0 { +.mr0, blockquote { margin-right: 0; } .mr1 { @@ -4903,7 +4903,7 @@ input[type=submit], .notice { margin-top: 0.25rem; margin-bottom: 0.25rem; } -.mv2 { +.mv2, .post-content table { margin-top: 0.5rem; margin-bottom: 0.5rem; } @@ -4939,7 +4939,7 @@ input[type=submit], .notice { margin-left: 0.5rem; margin-right: 0.5rem; } -.mh3 { +.mh3, .post-content hr { margin-left: 1rem; margin-right: 1rem; } @@ -6973,7 +6973,7 @@ For convenience in common cases, if only a single argument is provided and it does not match an existing variable, this will throw an error. */ -.hmn-code, .codeblock { +pre, code, .codeblock { /* Comment */ /* Error */ /* Keyword */ @@ -7034,149 +7034,149 @@ will throw an error. /* Name.Variable.Global */ /* Name.Variable.Instance */ /* Literal.Number.Integer.Long */ } - .hmn-code .hll, .codeblock .hll { + pre .hll, code .hll, .codeblock .hll { background-color: #ffffcc; } - .hmn-code .c, .codeblock .c { + pre .c, code .c, .codeblock .c { color: #60a0b0; font-style: italic; } - .hmn-code .err, .codeblock .err { + pre .err, code .err, .codeblock .err { color: #FF0000; } - .hmn-code .k, .codeblock .k { + pre .k, code .k, .codeblock .k { color: #007020; font-weight: bold; } - .hmn-code .o, .codeblock .o { + pre .o, code .o, .codeblock .o { color: #666666; } - .hmn-code .cm, .codeblock .cm { + pre .cm, code .cm, .codeblock .cm { color: #60a0b0; font-style: italic; } - .hmn-code .cp, .codeblock .cp { + pre .cp, code .cp, .codeblock .cp { color: #007020; } - .hmn-code .c1, .codeblock .c1 { + pre .c1, code .c1, .codeblock .c1 { color: #60a0b0; font-style: italic; } - .hmn-code .cs, .codeblock .cs { + pre .cs, code .cs, .codeblock .cs { color: #60a0b0; background-color: #fff0f0; } - .hmn-code .gd, .codeblock .gd { + pre .gd, code .gd, .codeblock .gd { color: #A00000; } - .hmn-code .ge, .codeblock .ge { + pre .ge, code .ge, .codeblock .ge { font-style: italic; } - .hmn-code .gr, .codeblock .gr { + pre .gr, code .gr, .codeblock .gr { color: #FF0000; } - .hmn-code .gh, .codeblock .gh { + pre .gh, code .gh, .codeblock .gh { color: #000080; font-weight: bold; } - .hmn-code .gi, .codeblock .gi { + pre .gi, code .gi, .codeblock .gi { color: #00A000; } - .hmn-code .go, .codeblock .go { + pre .go, code .go, .codeblock .go { color: #808080; } - .hmn-code .gp, .codeblock .gp { + pre .gp, code .gp, .codeblock .gp { color: #c65d09; font-weight: bold; } - .hmn-code .gs, .codeblock .gs { + pre .gs, code .gs, .codeblock .gs { font-weight: bold; } - .hmn-code .gu, .codeblock .gu { + pre .gu, code .gu, .codeblock .gu { color: #800080; font-weight: bold; } - .hmn-code .gt, .codeblock .gt { + pre .gt, code .gt, .codeblock .gt { color: #0040D0; } - .hmn-code .kc, .codeblock .kc { + pre .kc, code .kc, .codeblock .kc { color: #007020; font-weight: bold; } - .hmn-code .kd, .codeblock .kd { + pre .kd, code .kd, .codeblock .kd { color: #007020; font-weight: bold; } - .hmn-code .kn, .codeblock .kn { + pre .kn, code .kn, .codeblock .kn { color: #007020; font-weight: bold; } - .hmn-code .kp, .codeblock .kp { + pre .kp, code .kp, .codeblock .kp { color: #007020; } - .hmn-code .kr, .codeblock .kr { + pre .kr, code .kr, .codeblock .kr { color: #007020; font-weight: bold; } - .hmn-code .kt, .codeblock .kt { + pre .kt, code .kt, .codeblock .kt { color: #902000; } - .hmn-code .m, .codeblock .m { + pre .m, code .m, .codeblock .m { color: #40a070; } - .hmn-code .s, .codeblock .s { + pre .s, code .s, .codeblock .s { color: #4070a0; } - .hmn-code .na, .codeblock .na { + pre .na, code .na, .codeblock .na { color: #4070a0; } - .hmn-code .nb, .codeblock .nb { + pre .nb, code .nb, .codeblock .nb { color: #007020; } - .hmn-code .nc, .codeblock .nc { + pre .nc, code .nc, .codeblock .nc { color: #0e84b5; font-weight: bold; } - .hmn-code .no, .codeblock .no { + pre .no, code .no, .codeblock .no { color: #60add5; } - .hmn-code .nd, .codeblock .nd { + pre .nd, code .nd, .codeblock .nd { color: #555555; font-weight: bold; } - .hmn-code .ni, .codeblock .ni { + pre .ni, code .ni, .codeblock .ni { color: #d55537; font-weight: bold; } - .hmn-code .ne, .codeblock .ne { + pre .ne, code .ne, .codeblock .ne { color: #007020; } - .hmn-code .nf, .codeblock .nf { + pre .nf, code .nf, .codeblock .nf { color: #06287e; } - .hmn-code .nl, .codeblock .nl { + pre .nl, code .nl, .codeblock .nl { color: #002070; font-weight: bold; } - .hmn-code .nn, .codeblock .nn { + pre .nn, code .nn, .codeblock .nn { color: #0e84b5; font-weight: bold; } - .hmn-code .nt, .codeblock .nt { + pre .nt, code .nt, .codeblock .nt { color: #062873; font-weight: bold; } - .hmn-code .nv, .codeblock .nv { + pre .nv, code .nv, .codeblock .nv { color: #bb60d5; } - .hmn-code .ow, .codeblock .ow { + pre .ow, code .ow, .codeblock .ow { color: #007020; font-weight: bold; } - .hmn-code .w, .codeblock .w { + pre .w, code .w, .codeblock .w { color: #bbbbbb; } - .hmn-code .mf, .codeblock .mf { + pre .mf, code .mf, .codeblock .mf { color: #40a070; } - .hmn-code .mh, .codeblock .mh { + pre .mh, code .mh, .codeblock .mh { color: #40a070; } - .hmn-code .mi, .codeblock .mi { + pre .mi, code .mi, .codeblock .mi { color: #40a070; } - .hmn-code .mo, .codeblock .mo { + pre .mo, code .mo, .codeblock .mo { color: #40a070; } - .hmn-code .sb, .codeblock .sb { + pre .sb, code .sb, .codeblock .sb { color: #4070a0; } - .hmn-code .sc, .codeblock .sc { + pre .sc, code .sc, .codeblock .sc { color: #4070a0; } - .hmn-code .sd, .codeblock .sd { + pre .sd, code .sd, .codeblock .sd { color: #4070a0; font-style: italic; } - .hmn-code .s2, .codeblock .s2 { + pre .s2, code .s2, .codeblock .s2 { color: #4070a0; } - .hmn-code .se, .codeblock .se { + pre .se, code .se, .codeblock .se { color: #4070a0; font-weight: bold; } - .hmn-code .sh, .codeblock .sh { + pre .sh, code .sh, .codeblock .sh { color: #4070a0; } - .hmn-code .si, .codeblock .si { + pre .si, code .si, .codeblock .si { color: #70a0d0; font-style: italic; } - .hmn-code .sx, .codeblock .sx { + pre .sx, code .sx, .codeblock .sx { color: #c65d09; } - .hmn-code .sr, .codeblock .sr { + pre .sr, code .sr, .codeblock .sr { color: #235388; } - .hmn-code .s1, .codeblock .s1 { + pre .s1, code .s1, .codeblock .s1 { color: #4070a0; } - .hmn-code .ss, .codeblock .ss { + pre .ss, code .ss, .codeblock .ss { color: #517918; } - .hmn-code .bp, .codeblock .bp { + pre .bp, code .bp, .codeblock .bp { color: #007020; } - .hmn-code .vc, .codeblock .vc { + pre .vc, code .vc, .codeblock .vc { color: #bb60d5; } - .hmn-code .vg, .codeblock .vg { + pre .vg, code .vg, .codeblock .vg { color: #bb60d5; } - .hmn-code .vi, .codeblock .vi { + pre .vi, code .vi, .codeblock .vi { color: #bb60d5; } - .hmn-code .il, .codeblock .il { + pre .il, code .il, .codeblock .il { color: #40a070; } .dark { @@ -7235,24 +7235,22 @@ ol { ul { list-style-type: circle; - padding: 0px; - margin: 0px; } + padding: 0; + margin: 0; } .list-none { list-style-type: none; } li { - padding: 0px; - margin: 0px; + padding: 0; + margin: 0; padding-left: 5px; margin-left: 15px; } -h1, h2 { - font-weight: 500; } - -h1, h2, h3, h4 { - margin: 0px; - margin-bottom: 5px; +h1, h2, h3, h4, h5 { + font-weight: 500; + margin: 0; + margin-bottom: 0.5rem; font-size: 1.5rem; line-height: 1.25em; } @@ -7264,8 +7262,8 @@ em { p { box-sizing: border-box; - margin: 0px; - padding: 0px; } + margin: 0; + padding: 0; } .p-spaced p:not(:first-child) { margin-top: 0.6em; } @@ -7284,19 +7282,11 @@ th, td { td { vertical-align: baseline; } -tr.line-above th, tr.line-above td { - border-top-color: #444; - border-top-color: var(--table-border-color); - border-top-width: 1px; - border-top-style: solid; - padding-top: 20px; } - hr { border-top-color: #444; border-top-color: var(--hr-color); border-width: 1px 0 0; - border-top-style: solid; - max-width: 300px; } + border-top-style: solid; } .mono { font-family: "Fira Mono", monospace; } @@ -7375,7 +7365,7 @@ article code { color: #bbb; color: var(--theme-color-dimmer); } -.b--dimmer, .contents div.code { +.b--dimmer, .post-content div.code { border-color: #999; border-color: var(--dimmer-color); } @@ -7391,7 +7381,7 @@ article code { color: #ccc; color: var(--theme-color-dimmest); } -.b--dimmest, header #login-popup, .optionbar, .post .contents blockquote { +.b--dimmest, header #login-popup, .optionbar, blockquote, .post-content th, .post-content td { border-color: #bbb; border-color: var(--dimmest-color); } @@ -7399,7 +7389,7 @@ article code { border-color: #ccc; border-color: var(--theme-color-dimmest); } -.bg--dim { +.bg--dim, .post-content code, .post-content pre > code, .post-content pre.hmn-code { background-color: #f0f0f0; background-color: var(--dim-background); } @@ -7422,6 +7412,9 @@ article code { .mh-5 { max-height: 16rem; } +.mh-6 { + max-height: 32rem; } + .mh-100 { max-height: 100%; } @@ -7595,22 +7588,11 @@ article code { margin-right: auto; margin-left: auto; } -header .underscore { - width: 100%; - height: 100%; - animation: logo-blink 1s infinite alternate; - -webkit-animation: logo-blink 1s infinite alternate ease-in-out; } - -header .logo, header .underscore { - background-size: 8.75rem; - background-repeat: no-repeat; - background-position: center center; } - header .hmn-logo { height: 3.75rem; width: 100%; text-transform: uppercase; - font-family: 'MohaveHMN'; + font-family: 'MohaveHMN', sans-serif; font-size: 2rem; display: flex; align-items: center; @@ -7918,6 +7900,9 @@ header #login-popup { .userlist .user .bio { padding: 5px; } +strong { + font-weight: 500; } + .text { background-color: #f9f9f9; background-color: var(--text-background); } @@ -7960,13 +7945,69 @@ header #login-popup { color: white; background-color: black; } +blockquote .quotewho { + line-height: 2em; } + blockquote .quotewho::after { + content: " said:"; } + pre { font-family: "Fira Mono", monospace; } -.hmn-code { - background-color: #f0f0f0; - background-color: var(--dim-background); - padding: 0.7em; } +.post-content *:first-child { + margin-top: 0; } + +.post-content *:last-child { + margin-bottom: 0; } + +.post-content h1 { + font-size: 2rem; } + +.post-content h2 { + font-size: 1.5rem; } + +.post-content h3 { + font-size: 1.25rem; } + +.post-content h4 { + font-size: 1rem; } + +.post-content h5 { + font-size: 0.8rem; } + +.post-content h1, .post-content h2, .post-content h3, .post-content h4, .post-content h5 { + margin-top: 0.5em; + margin-bottom: 0.5em; } + +.post-content img { + max-width: 100%; } + +.post-content div.code { + max-width: 100%; + max-height: 20em; + max-height: 80vh; + overflow: auto; + -moz-tab-size: 4; + tab-size: 4; + border-width: 1px; + border-style: solid; } + +.post-content div + br, +.post-content blockquote + br, +.post-content ul + br, +.post-content ol + br { + display: none; } + +.post-content code { + padding: .2em 0; + white-space: nowrap; } + .post-content code::before, .post-content code::after { + content: "\00a0"; + letter-spacing: -0.2em; + display: inline-block; } + +.post-content pre > code, .post-content pre.hmn-code { + padding: 0.7em; + overflow-x: auto; } .toolbar { background-color: #fff; @@ -8002,6 +8043,12 @@ pre { border: 0px solid transparent; /* Not themed */ } +#preview:empty::after { + content: 'A preview of your post will appear here.'; + color: #999; + color: var(--dimmer-color); + font-style: italic; } + @media screen and (min-width: 30em) { #preview-container { max-height: calc(100vh - 20rem); @@ -8530,24 +8577,8 @@ input[type=submit] { content: 'Staff'; } .postid a { - margin-top: -5rem; - padding-top: 5rem; } - -.contents div.code { - max-width: 100%; - max-height: 20em; - max-height: 80vh; - overflow: auto; - -moz-tab-size: 4; - tab-size: 4; - border-width: 1px; - border-style: solid; } - -.contents div + br, -.contents blockquote + br, -.contents ul + br, -.contents ol + br { - display: none; } + margin-top: -4rem; + padding-top: 4rem; } .codeblocktable { font-family: "Fira Mono", monospace; @@ -8568,46 +8599,6 @@ input[type=submit] { padding-left: 10px; max-width: 80em; } -.post .contents h1, .post .contents h2 { - margin: 20px 0px; } - -.post .contents h2 { - font-size: 20px; } - -.post .contents h5, .post .contents h6 { - margin: 10px 0px; } - -.post .contents strong { - font-weight: 500; } - -.post .contents blockquote { - display: block; - margin-top: 0; - margin-bottom: 0; - padding: 10px 18px; - padding-top: 0; - padding-bottom: 0; - margin-left: 20px; - margin-right: 20px; - border-left-width: 1px; - border-left-style: solid; } - .post .contents blockquote .quotewho { - line-height: 2em; } - .post .contents blockquote .quotewho::after { - content: " said:"; } - -.post .contents img { - max-width: 100%; } - -.post.bbcode .contents h1, .post.bbcode .contents h2, .post.bbcode .contents h3 { - display: inline; } - -.project .post .contents h3, -.post .contents h4 { - display: block; - font-size: 18px; - margin: 10px 0px; } - .post .action.button { padding: 0px 10px; margin-top: 0px; @@ -8621,27 +8612,6 @@ input[type=submit] { .post .action.button:hover { border-bottom-width: 4px; } -.post hr { - max-width: 90%; } - -.post .signature hr { - width: 80%; } - -.post .body .size1, .post-preview .size1 { - font-size: 12px; } - -.post .body .size2, .post-preview .size2 { - font-size: 13px; } - -.post .body .size3, .post-preview .size3 { - font-size: 14px; } - -.post .body .size4, .post-preview .size4 { - font-size: 15px; } - -.post .body .size5, .post-preview .size5 { - font-size: 16px; } - .blog .post .meta { position: relative; } @@ -8653,15 +8623,6 @@ input[type=submit] { font-size: 0.7em; text-align: center; } -.blog .post.op .body { - padding-top: 6px; } - .blog .post.op .body .contents { - text-align: left; } - .blog .post.op .body p { - margin-top: 8px; - margin-bottom: 8px; - text-align: left; } - .blog .sidebar .post > .author { padding: 15px; text-align: center; } @@ -8683,10 +8644,6 @@ input[type=submit] { left: -60px; bottom: -5px; } -.blog .body blockquote { - padding-top: 1px; - padding-bottom: 1px; } - .content-block.blog p.title { font-weight: bold; } .content-block.blog p.title a { diff --git a/public/themes/dark/theme.css b/public/themes/dark/theme.css index f0c0a78..7a9a401 100644 --- a/public/themes/dark/theme.css +++ b/public/themes/dark/theme.css @@ -18,7 +18,7 @@ For convenience in common cases, if only a single argument is provided and it does not match an existing variable, this will throw an error. */ -.hmn-code, .codeblock { +pre, code, .codeblock { /* Comment */ /* Error */ /* Keyword */ @@ -81,129 +81,129 @@ will throw an error. /* Generic.Subheading & Diff Unified/Comment? */ /* Generic.Deleted & Diff Deleted */ /* Generic.Inserted & Diff Inserted */ } - .hmn-code .hll, .codeblock .hll { + pre .hll, code .hll, .codeblock .hll { background-color: #49483e; } - .hmn-code .c, .codeblock .c { + pre .c, code .c, .codeblock .c { color: #75715e; } - .hmn-code .err, .codeblock .err { + pre .err, code .err, .codeblock .err { color: #ff0000; } - .hmn-code .k, .codeblock .k { + pre .k, code .k, .codeblock .k { color: #66d9ef; } - .hmn-code .l, .codeblock .l { + pre .l, code .l, .codeblock .l { color: #ae81ff; } - .hmn-code .n, .codeblock .n { + pre .n, code .n, .codeblock .n { color: #f8f8f2; } - .hmn-code .o, .codeblock .o { + pre .o, code .o, .codeblock .o { color: #f92672; } - .hmn-code .p, .codeblock .p { + pre .p, code .p, .codeblock .p { color: #f8f8f2; } - .hmn-code .cm, .codeblock .cm { + pre .cm, code .cm, .codeblock .cm { color: #75715e; } - .hmn-code .cp, .codeblock .cp { + pre .cp, code .cp, .codeblock .cp { color: #75715e; } - .hmn-code .c1, .codeblock .c1 { + pre .c1, code .c1, .codeblock .c1 { color: #75715e; } - .hmn-code .cs, .codeblock .cs { + pre .cs, code .cs, .codeblock .cs { color: #75715e; } - .hmn-code .ge, .codeblock .ge { + pre .ge, code .ge, .codeblock .ge { font-style: italic; } - .hmn-code .gs, .codeblock .gs { + pre .gs, code .gs, .codeblock .gs { font-weight: bold; } - .hmn-code .kc, .codeblock .kc { + pre .kc, code .kc, .codeblock .kc { color: #66d9ef; } - .hmn-code .kd, .codeblock .kd { + pre .kd, code .kd, .codeblock .kd { color: #66d9ef; } - .hmn-code .kn, .codeblock .kn { + pre .kn, code .kn, .codeblock .kn { color: #f92672; } - .hmn-code .kp, .codeblock .kp { + pre .kp, code .kp, .codeblock .kp { color: #66d9ef; } - .hmn-code .kr, .codeblock .kr { + pre .kr, code .kr, .codeblock .kr { color: #66d9ef; } - .hmn-code .kt, .codeblock .kt { + pre .kt, code .kt, .codeblock .kt { color: #66d9ef; } - .hmn-code .ld, .codeblock .ld { + pre .ld, code .ld, .codeblock .ld { color: #e6db74; } - .hmn-code .m, .codeblock .m { + pre .m, code .m, .codeblock .m { color: #ae81ff; } - .hmn-code .s, .codeblock .s { + pre .s, code .s, .codeblock .s { color: #e6db74; } - .hmn-code .na, .codeblock .na { + pre .na, code .na, .codeblock .na { color: #a6e22e; } - .hmn-code .nb, .codeblock .nb { + pre .nb, code .nb, .codeblock .nb { color: #f8f8f2; } - .hmn-code .nc, .codeblock .nc { + pre .nc, code .nc, .codeblock .nc { color: #a6e22e; } - .hmn-code .no, .codeblock .no { + pre .no, code .no, .codeblock .no { color: #66d9ef; } - .hmn-code .nd, .codeblock .nd { + pre .nd, code .nd, .codeblock .nd { color: #a6e22e; } - .hmn-code .ni, .codeblock .ni { + pre .ni, code .ni, .codeblock .ni { color: #f8f8f2; } - .hmn-code .ne, .codeblock .ne { + pre .ne, code .ne, .codeblock .ne { color: #a6e22e; } - .hmn-code .nf, .codeblock .nf { + pre .nf, code .nf, .codeblock .nf { color: #a6e22e; } - .hmn-code .nl, .codeblock .nl { + pre .nl, code .nl, .codeblock .nl { color: #f8f8f2; } - .hmn-code .nn, .codeblock .nn { + pre .nn, code .nn, .codeblock .nn { color: #f8f8f2; } - .hmn-code .nx, .codeblock .nx { + pre .nx, code .nx, .codeblock .nx { color: #a6e22e; } - .hmn-code .py, .codeblock .py { + pre .py, code .py, .codeblock .py { color: #f8f8f2; } - .hmn-code .nt, .codeblock .nt { + pre .nt, code .nt, .codeblock .nt { color: #f92672; } - .hmn-code .nv, .codeblock .nv { + pre .nv, code .nv, .codeblock .nv { color: #f8f8f2; } - .hmn-code .ow, .codeblock .ow { + pre .ow, code .ow, .codeblock .ow { color: #f92672; } - .hmn-code .w, .codeblock .w { + pre .w, code .w, .codeblock .w { color: #f8f8f2; } - .hmn-code .mf, .codeblock .mf { + pre .mf, code .mf, .codeblock .mf { color: #ae81ff; } - .hmn-code .mh, .codeblock .mh { + pre .mh, code .mh, .codeblock .mh { color: #ae81ff; } - .hmn-code .mi, .codeblock .mi { + pre .mi, code .mi, .codeblock .mi { color: #ae81ff; } - .hmn-code .mo, .codeblock .mo { + pre .mo, code .mo, .codeblock .mo { color: #ae81ff; } - .hmn-code .sb, .codeblock .sb { + pre .sb, code .sb, .codeblock .sb { color: #e6db74; } - .hmn-code .sc, .codeblock .sc { + pre .sc, code .sc, .codeblock .sc { color: #e6db74; } - .hmn-code .sd, .codeblock .sd { + pre .sd, code .sd, .codeblock .sd { color: #e6db74; } - .hmn-code .s2, .codeblock .s2 { + pre .s2, code .s2, .codeblock .s2 { color: #e6db74; } - .hmn-code .se, .codeblock .se { + pre .se, code .se, .codeblock .se { color: #ae81ff; } - .hmn-code .sh, .codeblock .sh { + pre .sh, code .sh, .codeblock .sh { color: #e6db74; } - .hmn-code .si, .codeblock .si { + pre .si, code .si, .codeblock .si { color: #e6db74; } - .hmn-code .sx, .codeblock .sx { + pre .sx, code .sx, .codeblock .sx { color: #e6db74; } - .hmn-code .sr, .codeblock .sr { + pre .sr, code .sr, .codeblock .sr { color: #e6db74; } - .hmn-code .s1, .codeblock .s1 { + pre .s1, code .s1, .codeblock .s1 { color: #e6db74; } - .hmn-code .ss, .codeblock .ss { + pre .ss, code .ss, .codeblock .ss { color: #e6db74; } - .hmn-code .bp, .codeblock .bp { + pre .bp, code .bp, .codeblock .bp { color: #f8f8f2; } - .hmn-code .vc, .codeblock .vc { + pre .vc, code .vc, .codeblock .vc { color: #f8f8f2; } - .hmn-code .vg, .codeblock .vg { + pre .vg, code .vg, .codeblock .vg { color: #f8f8f2; } - .hmn-code .vi, .codeblock .vi { + pre .vi, code .vi, .codeblock .vi { color: #f8f8f2; } - .hmn-code .il, .codeblock .il { + pre .il, code .il, .codeblock .il { color: #ae81ff; } - .hmn-code .gu, .codeblock .gu { + pre .gu, code .gu, .codeblock .gu { color: #75715e; } - .hmn-code .gd, .codeblock .gd { + pre .gd, code .gd, .codeblock .gd { color: #f92672; } - .hmn-code .gi, .codeblock .gi { + pre .gi, code .gi, .codeblock .gi { color: #a6e22e; } .light { @@ -218,7 +218,6 @@ will throw an error. --theme-color-dimmest: #333; --link-color: #aaa; --link-border-color: #aaa; - --table-border-color: #aaa; --hr-color: #aaa; --main-background-color: #202020; --main-color: #eee; diff --git a/public/themes/light/theme.css b/public/themes/light/theme.css index 0f76c4a..50355b2 100644 --- a/public/themes/light/theme.css +++ b/public/themes/light/theme.css @@ -18,7 +18,7 @@ For convenience in common cases, if only a single argument is provided and it does not match an existing variable, this will throw an error. */ -.hmn-code, .codeblock { +pre, code, .codeblock { /* Comment */ /* Error */ /* Keyword */ @@ -79,149 +79,149 @@ will throw an error. /* Name.Variable.Global */ /* Name.Variable.Instance */ /* Literal.Number.Integer.Long */ } - .hmn-code .hll, .codeblock .hll { + pre .hll, code .hll, .codeblock .hll { background-color: #ffffcc; } - .hmn-code .c, .codeblock .c { + pre .c, code .c, .codeblock .c { color: #60a0b0; font-style: italic; } - .hmn-code .err, .codeblock .err { + pre .err, code .err, .codeblock .err { color: #FF0000; } - .hmn-code .k, .codeblock .k { + pre .k, code .k, .codeblock .k { color: #007020; font-weight: bold; } - .hmn-code .o, .codeblock .o { + pre .o, code .o, .codeblock .o { color: #666666; } - .hmn-code .cm, .codeblock .cm { + pre .cm, code .cm, .codeblock .cm { color: #60a0b0; font-style: italic; } - .hmn-code .cp, .codeblock .cp { + pre .cp, code .cp, .codeblock .cp { color: #007020; } - .hmn-code .c1, .codeblock .c1 { + pre .c1, code .c1, .codeblock .c1 { color: #60a0b0; font-style: italic; } - .hmn-code .cs, .codeblock .cs { + pre .cs, code .cs, .codeblock .cs { color: #60a0b0; background-color: #fff0f0; } - .hmn-code .gd, .codeblock .gd { + pre .gd, code .gd, .codeblock .gd { color: #A00000; } - .hmn-code .ge, .codeblock .ge { + pre .ge, code .ge, .codeblock .ge { font-style: italic; } - .hmn-code .gr, .codeblock .gr { + pre .gr, code .gr, .codeblock .gr { color: #FF0000; } - .hmn-code .gh, .codeblock .gh { + pre .gh, code .gh, .codeblock .gh { color: #000080; font-weight: bold; } - .hmn-code .gi, .codeblock .gi { + pre .gi, code .gi, .codeblock .gi { color: #00A000; } - .hmn-code .go, .codeblock .go { + pre .go, code .go, .codeblock .go { color: #808080; } - .hmn-code .gp, .codeblock .gp { + pre .gp, code .gp, .codeblock .gp { color: #c65d09; font-weight: bold; } - .hmn-code .gs, .codeblock .gs { + pre .gs, code .gs, .codeblock .gs { font-weight: bold; } - .hmn-code .gu, .codeblock .gu { + pre .gu, code .gu, .codeblock .gu { color: #800080; font-weight: bold; } - .hmn-code .gt, .codeblock .gt { + pre .gt, code .gt, .codeblock .gt { color: #0040D0; } - .hmn-code .kc, .codeblock .kc { + pre .kc, code .kc, .codeblock .kc { color: #007020; font-weight: bold; } - .hmn-code .kd, .codeblock .kd { + pre .kd, code .kd, .codeblock .kd { color: #007020; font-weight: bold; } - .hmn-code .kn, .codeblock .kn { + pre .kn, code .kn, .codeblock .kn { color: #007020; font-weight: bold; } - .hmn-code .kp, .codeblock .kp { + pre .kp, code .kp, .codeblock .kp { color: #007020; } - .hmn-code .kr, .codeblock .kr { + pre .kr, code .kr, .codeblock .kr { color: #007020; font-weight: bold; } - .hmn-code .kt, .codeblock .kt { + pre .kt, code .kt, .codeblock .kt { color: #902000; } - .hmn-code .m, .codeblock .m { + pre .m, code .m, .codeblock .m { color: #40a070; } - .hmn-code .s, .codeblock .s { + pre .s, code .s, .codeblock .s { color: #4070a0; } - .hmn-code .na, .codeblock .na { + pre .na, code .na, .codeblock .na { color: #4070a0; } - .hmn-code .nb, .codeblock .nb { + pre .nb, code .nb, .codeblock .nb { color: #007020; } - .hmn-code .nc, .codeblock .nc { + pre .nc, code .nc, .codeblock .nc { color: #0e84b5; font-weight: bold; } - .hmn-code .no, .codeblock .no { + pre .no, code .no, .codeblock .no { color: #60add5; } - .hmn-code .nd, .codeblock .nd { + pre .nd, code .nd, .codeblock .nd { color: #555555; font-weight: bold; } - .hmn-code .ni, .codeblock .ni { + pre .ni, code .ni, .codeblock .ni { color: #d55537; font-weight: bold; } - .hmn-code .ne, .codeblock .ne { + pre .ne, code .ne, .codeblock .ne { color: #007020; } - .hmn-code .nf, .codeblock .nf { + pre .nf, code .nf, .codeblock .nf { color: #06287e; } - .hmn-code .nl, .codeblock .nl { + pre .nl, code .nl, .codeblock .nl { color: #002070; font-weight: bold; } - .hmn-code .nn, .codeblock .nn { + pre .nn, code .nn, .codeblock .nn { color: #0e84b5; font-weight: bold; } - .hmn-code .nt, .codeblock .nt { + pre .nt, code .nt, .codeblock .nt { color: #062873; font-weight: bold; } - .hmn-code .nv, .codeblock .nv { + pre .nv, code .nv, .codeblock .nv { color: #bb60d5; } - .hmn-code .ow, .codeblock .ow { + pre .ow, code .ow, .codeblock .ow { color: #007020; font-weight: bold; } - .hmn-code .w, .codeblock .w { + pre .w, code .w, .codeblock .w { color: #bbbbbb; } - .hmn-code .mf, .codeblock .mf { + pre .mf, code .mf, .codeblock .mf { color: #40a070; } - .hmn-code .mh, .codeblock .mh { + pre .mh, code .mh, .codeblock .mh { color: #40a070; } - .hmn-code .mi, .codeblock .mi { + pre .mi, code .mi, .codeblock .mi { color: #40a070; } - .hmn-code .mo, .codeblock .mo { + pre .mo, code .mo, .codeblock .mo { color: #40a070; } - .hmn-code .sb, .codeblock .sb { + pre .sb, code .sb, .codeblock .sb { color: #4070a0; } - .hmn-code .sc, .codeblock .sc { + pre .sc, code .sc, .codeblock .sc { color: #4070a0; } - .hmn-code .sd, .codeblock .sd { + pre .sd, code .sd, .codeblock .sd { color: #4070a0; font-style: italic; } - .hmn-code .s2, .codeblock .s2 { + pre .s2, code .s2, .codeblock .s2 { color: #4070a0; } - .hmn-code .se, .codeblock .se { + pre .se, code .se, .codeblock .se { color: #4070a0; font-weight: bold; } - .hmn-code .sh, .codeblock .sh { + pre .sh, code .sh, .codeblock .sh { color: #4070a0; } - .hmn-code .si, .codeblock .si { + pre .si, code .si, .codeblock .si { color: #70a0d0; font-style: italic; } - .hmn-code .sx, .codeblock .sx { + pre .sx, code .sx, .codeblock .sx { color: #c65d09; } - .hmn-code .sr, .codeblock .sr { + pre .sr, code .sr, .codeblock .sr { color: #235388; } - .hmn-code .s1, .codeblock .s1 { + pre .s1, code .s1, .codeblock .s1 { color: #4070a0; } - .hmn-code .ss, .codeblock .ss { + pre .ss, code .ss, .codeblock .ss { color: #517918; } - .hmn-code .bp, .codeblock .bp { + pre .bp, code .bp, .codeblock .bp { color: #007020; } - .hmn-code .vc, .codeblock .vc { + pre .vc, code .vc, .codeblock .vc { color: #bb60d5; } - .hmn-code .vg, .codeblock .vg { + pre .vg, code .vg, .codeblock .vg { color: #bb60d5; } - .hmn-code .vi, .codeblock .vi { + pre .vi, code .vi, .codeblock .vi { color: #bb60d5; } - .hmn-code .il, .codeblock .il { + pre .il, code .il, .codeblock .il { color: #40a070; } .dark { @@ -236,7 +236,6 @@ will throw an error. --theme-color-dimmest: #ccc; --link-color: #666; --link-border-color: #666; - --table-border-color: #444; --hr-color: #444; --main-background-color: #fff; --main-color: black; diff --git a/resetdb.sh b/resetdb.sh index a79775a..c81a11a 100755 --- a/resetdb.sh +++ b/resetdb.sh @@ -9,8 +9,8 @@ set -eou pipefail # TODO(opensource): We should adapt Asaf's seedfile command and then delete this. THIS_PATH=$(pwd) -BETA_PATH='/mnt/c/Users/bvisn/Developer/handmade/handmade-beta' -# BETA_PATH='/Users/benvisness/Developer/handmade/handmade-beta' +#BETA_PATH='/mnt/c/Users/bvisn/Developer/handmade/handmade-beta' +BETA_PATH='/Users/benvisness/Developer/handmade/handmade-beta' cd $BETA_PATH docker-compose down -v @@ -22,5 +22,5 @@ cd $THIS_PATH go run src/main.go migrate 2021-03-10T05:16:21Z cd $BETA_PATH -./scripts/db_import -d -n hmn_two -a ./dbdumps/hmn_pg_dump_2021-04-26 -# ./scripts/db_import -d -n hmn_two -a ./dbdumps/hmn_pg_dump_2021-04-25 +#./scripts/db_import -d -n hmn_two -a ./dbdumps/hmn_pg_dump_2021-04-26 +./scripts/db_import -d -n hmn_two -a ./dbdumps/hmn_pg_dump_2021-04-25 diff --git a/src/parsing/parsing.go b/src/parsing/parsing.go index 68bf27b..6380293 100644 --- a/src/parsing/parsing.go +++ b/src/parsing/parsing.go @@ -3,6 +3,8 @@ package parsing import ( "bytes" + "github.com/yuin/goldmark/parser" + "github.com/yuin/goldmark" highlighting "github.com/yuin/goldmark-highlighting" "github.com/yuin/goldmark/extension" @@ -10,7 +12,7 @@ import ( ) // Used for rendering real-time previews of post content. -var ForumPreviewMarkdown = goldmark.New( +var ForumPreviewMarkdown = makeGoldmark( goldmark.WithExtensions(makeGoldmarkExtensions(MarkdownOptions{ Previews: true, Embeds: true, @@ -18,7 +20,7 @@ var ForumPreviewMarkdown = goldmark.New( ) // Used for generating the final HTML for a post. -var ForumRealMarkdown = goldmark.New( +var ForumRealMarkdown = makeGoldmark( goldmark.WithExtensions(makeGoldmarkExtensions(MarkdownOptions{ Previews: false, Embeds: true, @@ -26,7 +28,7 @@ var ForumRealMarkdown = goldmark.New( ) // Used for generating plain-text previews of posts. -var PlaintextMarkdown = goldmark.New( +var PlaintextMarkdown = makeGoldmark( goldmark.WithExtensions(makeGoldmarkExtensions(MarkdownOptions{ Previews: false, Embeds: true, @@ -35,7 +37,7 @@ var PlaintextMarkdown = goldmark.New( ) // Used for processing Discord messages -var DiscordMarkdown = goldmark.New( +var DiscordMarkdown = makeGoldmark( goldmark.WithExtensions(makeGoldmarkExtensions(MarkdownOptions{ Previews: false, Embeds: false, @@ -56,6 +58,41 @@ type MarkdownOptions struct { Embeds bool } +func makeGoldmark(opts ...goldmark.Option) goldmark.Markdown { + // We need to re-create Goldmark's default parsers to disable HTML parsing. + + // See parser.DefaultBlockParsers + blockParsers := []util.PrioritizedValue{ + util.Prioritized(parser.NewSetextHeadingParser(), 100), + util.Prioritized(parser.NewThematicBreakParser(), 200), + util.Prioritized(parser.NewListParser(), 300), + util.Prioritized(parser.NewListItemParser(), 400), + util.Prioritized(parser.NewCodeBlockParser(), 500), + util.Prioritized(parser.NewATXHeadingParser(), 600), + util.Prioritized(parser.NewFencedCodeBlockParser(), 700), + util.Prioritized(parser.NewBlockquoteParser(), 800), + //util.Prioritized(parser.NewHTMLBlockParser(), 900), + util.Prioritized(parser.NewParagraphParser(), 1000), + } + + // See parser.DefaultInlineParsers + inlineParsers := []util.PrioritizedValue{ + util.Prioritized(parser.NewCodeSpanParser(), 100), + util.Prioritized(parser.NewLinkParser(), 200), + util.Prioritized(parser.NewAutoLinkParser(), 300), + //util.Prioritized(parser.NewRawHTMLParser(), 400), + util.Prioritized(parser.NewEmphasisParser(), 500), + } + + opts = append(opts, goldmark.WithParser(parser.NewParser( + parser.WithBlockParsers(blockParsers...), + parser.WithInlineParsers(inlineParsers...), + parser.WithParagraphTransformers(parser.DefaultParagraphTransformers()...), + ))) + + return goldmark.New(opts...) +} + func makeGoldmarkExtensions(opts MarkdownOptions) []goldmark.Extender { var extenders []goldmark.Extender extenders = append(extenders, diff --git a/src/parsing/wasm/parsingmain.go b/src/parsing/wasm/parsingmain.go index 3d6b067..6bec65d 100644 --- a/src/parsing/wasm/parsingmain.go +++ b/src/parsing/wasm/parsingmain.go @@ -10,7 +10,7 @@ import ( func main() { js.Global().Set("parseMarkdown", js.FuncOf(func(this js.Value, args []js.Value) interface{} { - return parsing.ParseMarkdown(args[0].String(), parsing.PreviewMarkdown) + return parsing.ParseMarkdown(args[0].String(), parsing.ForumPreviewMarkdown) })) var done chan bool diff --git a/src/rawdata/scss/_content.scss b/src/rawdata/scss/_content.scss index 3762b94..736c687 100644 --- a/src/rawdata/scss/_content.scss +++ b/src/rawdata/scss/_content.scss @@ -1,3 +1,7 @@ +strong { + font-weight: 500; +} + .text { @include usevar(background-color, text-background); } @@ -51,13 +55,117 @@ } } +blockquote { + @extend .b--dimmest; + @extend .ml2, .pl2, .mr0; + @extend .bl; + + .quotewho { + line-height: 2em; + + &::after { + content: " said:"; + } + } +} + pre { font-family: $monospace-fonts; } -.hmn-code { - @include usevar(background-color, dim-background); - @extend .br2; +.post-content { + * { + &:first-child { + margin-top: 0; + } - padding: 0.7em; + &:last-child { + margin-bottom: 0; + } + } + + h1 { + font-size: 2rem; + } + + h2 { + font-size: 1.5rem; + } + + h3 { + font-size: 1.25rem; + } + + h4 { + font-size: 1rem; + } + + h5 { + font-size: 0.8rem; + } + + h1, h2, h3, h4, h5 { + margin-top: 0.5em; + margin-bottom: 0.5em; + } + + img { + max-width: 100%; + } + + hr { + @extend .mh3; + } + + div.code { + @extend .b--dimmer; + + max-width: 100%; + max-height: 20em; + max-height: 80vh; + overflow: auto; + -moz-tab-size: 4; + tab-size: 4; + border-width: 1px; + border-style: solid; + } + + div + br, + blockquote + br, + ul + br, + ol + br, + { + display: none; + } + + table { + @extend .mv2; + } + + th, td { + @extend .ph2, .pv1; + @extend .ba, .b--dimmest; + } + + code { + @extend .bg--dim; + @extend .br2; + + padding: .2em 0; + white-space: nowrap; + + &::before, &::after { + content: "\00a0"; + letter-spacing: -0.2em; + display: inline-block; + } + } + + pre > code, pre.hmn-code { + @extend .bg--dim; + @extend .br2; + + padding: 0.7em; + overflow-x: auto; + } } diff --git a/src/rawdata/scss/_core.scss b/src/rawdata/scss/_core.scss index 72070ea..0d340b3 100644 --- a/src/rawdata/scss/_core.scss +++ b/src/rawdata/scss/_core.scss @@ -35,8 +35,8 @@ a { @include usevar(color, link-color); @include usevar(border-bottom-color, link-border-color); - border-bottom:none; - text-decoration:none; + border-bottom: none; + text-decoration: none; &:hover { /* text-decoration:underline; */ @@ -55,8 +55,8 @@ ol { ul { list-style-type: circle; - padding: 0px; - margin: 0px; + padding: 0; + margin: 0; } .list-none { @@ -64,35 +64,32 @@ ul { } li { - padding: 0px; - margin: 0px; + padding: 0; + margin: 0; padding-left: 5px; margin-left: 15px; } -h1, h2 { +h1, h2, h3, h4, h5 { font-weight: 500; -} - -h1, h2, h3, h4 { - margin: 0px; - margin-bottom: 5px; - font-size: px2rem(24px); + margin: 0; + margin-bottom: 0.5rem; + font-size: 1.5rem; line-height: 1.25em; } strong { - font-weight:600; + font-weight: 600; } em { - font-style:italic; + font-style: italic; } p { - box-sizing:border-box; - margin:0px; - padding:0px; + box-sizing: border-box; + margin: 0; + padding: 0; } .p-spaced p { @@ -108,8 +105,8 @@ p { } table { - border-collapse:collapse; - table-layout:fixed; + border-collapse: collapse; + table-layout: fixed; } th, td { @@ -120,23 +117,12 @@ td { vertical-align:baseline; } -tr.line-above { - th, td { - @include usevar(border-top-color, table-border-color); - - border-top-width: 1px; - border-top-style: solid; - padding-top:20px; - } -} - -hr { +hr { @include usevar(border-top-color, hr-color); @extend .mv3; border-width: 1px 0 0; border-top-style: solid; - max-width: 300px; } $monospace-fonts: "Fira Mono", monospace; @@ -152,7 +138,7 @@ article code { .big { font-size:120%; } .title { - font-weight:bold; + font-weight: bold; } .clear { @@ -160,11 +146,11 @@ article code { } .full { - width:100%; + width: 100%; } .hidden { - display:none; + display: none; } .empty { @@ -172,8 +158,8 @@ article code { } .column h2 { - text-align:center; - margin-bottom:20px; + text-align: center; + margin-bottom: 20px; } .margin-center { @@ -283,6 +269,10 @@ article code { max-height: $height-5; } +.mh-6 { + max-height: $height-6; +} + .mh-100 { max-height: 100%; } @@ -427,7 +417,6 @@ article code { } } - // Tachyons' `center` is unfortunately overloaded by a .center // class we have in our own CSS. .center-layout { @@ -436,28 +425,11 @@ article code { } header { - .logo { - - } - - .underscore { - width: 100%; - height: 100%; - animation: logo-blink 1s infinite alternate; - -webkit-animation: logo-blink 1s infinite alternate ease-in-out; - } - - .logo, .underscore { - background-size: px2rem(140px); - background-repeat: no-repeat; - background-position: center center; - } - .hmn-logo { height: px2rem(60px); width: 100%; text-transform: uppercase; - font-family: 'MohaveHMN'; + font-family: 'MohaveHMN', sans-serif; font-size: 2rem; display: flex; @@ -561,7 +533,7 @@ footer { .content { @include usevar(background-color, content-background); - margin:auto; + margin: auto; p { -moz-text-size-adjust:auto; diff --git a/src/rawdata/scss/_editor.scss b/src/rawdata/scss/_editor.scss index b2e787c..57f078d 100644 --- a/src/rawdata/scss/_editor.scss +++ b/src/rawdata/scss/_editor.scss @@ -36,6 +36,12 @@ } } +#preview:empty::after { + content: 'A preview of your post will appear here.'; + @include usevar(color, dimmer-color); + font-style: italic; +} + @media #{$breakpoint-not-small} { #preview-container { max-height: calc(100vh - 20rem); diff --git a/src/rawdata/scss/_forum.scss b/src/rawdata/scss/_forum.scss index 36e49eb..955437e 100644 --- a/src/rawdata/scss/_forum.scss +++ b/src/rawdata/scss/_forum.scss @@ -117,31 +117,8 @@ } .postid a { - margin-top: -5rem; - padding-top: 5rem; -} - -.contents { - div.code { - @extend .b--dimmer; - - max-width: 100%; - max-height: 20em; - max-height: 80vh; - overflow: auto; - -moz-tab-size: 4; - tab-size: 4; - border-width: 1px; - border-style: solid; - } - - div + br, - blockquote + br, - ul + br, - ol + br, - { - display: none; - } + margin-top: -4rem; + padding-top: 4rem; } .codeblocktable { @@ -171,64 +148,6 @@ } .post { - .contents { - h1, h2 { - margin: 20px 0px; - } - - h2 { - font-size: 20px; - } - - h5, h6 { - margin: 10px 0px; - } - - strong { - font-weight: 500; - } - - blockquote { - @extend .b--dimmest; - - display: block; - margin-top: 0; - margin-bottom: 0; - padding: 10px 18px; - padding-top: 0; - padding-bottom: 0; - margin-left: 20px; - margin-right: 20px; - border-left-width: 1px; - border-left-style: solid; - - .quotewho { - line-height: 2em; - - &::after { - content: " said:"; - } - } - } - - img { - max-width: 100%; - } - } - - &.bbcode .contents { - h1, h2, h3 { - display: inline; - } - } - - .project & .contents h3, - .contents h4 { - display:block; - font-size:18px; - margin: 10px 0px; - } - .action.button { padding:0px 10px; margin-top:0px; @@ -244,38 +163,6 @@ border-bottom-width:4px; } } - - hr { - max-width:90%; - } - - .signature { - hr { - width: 80%; - } - } -} - -.post .body, .post-preview { - .size1 { - font-size:12px; - } - - .size2 { - font-size:13px; - } - - .size3 { - font-size:14px; - } - - .size4 { - font-size:15px; - } - - .size5 { - font-size:16px; - } } .blog { @@ -293,20 +180,6 @@ font-size: 0.7em; text-align: center; } - - &.op .body { - padding-top: 6px; - - .contents { - text-align:left; - } - - p { - margin-top:8px; - margin-bottom:8px; - text-align:left; - } - } } .sidebar { @@ -344,11 +217,6 @@ bottom:-5px; } -.blog .body blockquote { - padding-top:1px; - padding-bottom:1px; -} - .content-block.blog { p.title { font-weight:bold; diff --git a/src/rawdata/scss/themes/dark/_variables.scss b/src/rawdata/scss/themes/dark/_variables.scss index 30a8663..4ca3469 100644 --- a/src/rawdata/scss/themes/dark/_variables.scss +++ b/src/rawdata/scss/themes/dark/_variables.scss @@ -12,7 +12,6 @@ $vars: ( link-color: #aaa, link-border-color: #aaa, - table-border-color: #aaa, hr-color: #aaa, main-background-color: #202020, @@ -122,7 +121,7 @@ $vars: ( // see: https://github.com/richleland/pygments-css/blob/master/monokai.css // .hmn-code is Go codebase, .codeblock is old Python -.hmn-code, .codeblock { +pre, code, .codeblock { .hll { background-color: #49483e } .c { color: #75715e } /* Comment */ .err { color: #ff0000; } /* Error */ diff --git a/src/rawdata/scss/themes/light/_variables.scss b/src/rawdata/scss/themes/light/_variables.scss index 9c35f22..e47035a 100644 --- a/src/rawdata/scss/themes/light/_variables.scss +++ b/src/rawdata/scss/themes/light/_variables.scss @@ -12,7 +12,6 @@ $vars: ( link-color: #666, link-border-color: #666, - table-border-color: #444, hr-color: #444, main-background-color: #fff, @@ -122,7 +121,7 @@ $vars: ( // see: https://github.com/richleland/pygments-css/blob/master/monokai.css // .hmn-code is Go codebase, .codeblock is old Python -.hmn-code, .codeblock { +pre, code, .codeblock { .hll { background-color: #ffffcc } .c { color: #60a0b0; font-style: italic } /* Comment */ .err { color: #FF0000 } /* Error */ diff --git a/src/templates/src/blog_post.html b/src/templates/src/blog_post.html index 7866c86..b984dfe 100644 --- a/src/templates/src/blog_post.html +++ b/src/templates/src/blog_post.html @@ -40,7 +40,7 @@
-
+
{{ .MainPost.Content }}
@@ -101,7 +101,7 @@
-
+
{{ .Content }}
diff --git a/src/templates/src/editor.html b/src/templates/src/editor.html index 5d21256..a3f3c71 100644 --- a/src/templates/src/editor.html +++ b/src/templates/src/editor.html @@ -23,7 +23,7 @@

{{ .Title }}

{{ end }}
-
+ {{ csrftoken .Session }} {{ if .CanEditTitle }} @@ -75,7 +75,9 @@ {{ with .PostReplyingTo }}

The post you're replying to:

- {{ template "forum_post_standalone.html" . }} +
+ {{ template "forum_post_standalone.html" . }} +
{{ end }} {{/* @@ -99,8 +101,8 @@ {% endif %} */}}
-
-
+
+
diff --git a/src/templates/src/forum_thread.html b/src/templates/src/forum_thread.html index 51e75b0..9b8d549 100644 --- a/src/templates/src/forum_thread.html +++ b/src/templates/src/forum_thread.html @@ -103,7 +103,7 @@ Replying to {{ if .Author }}{{ .Author.Username }}{{ else }}deleted user{{ end }} (#{{ .ReplyPost.ID }})
{{ end }} -
+
{{ .Content }}
{{/* {% if post.author.signature|length %} diff --git a/src/templates/src/include/forum_post_standalone.html b/src/templates/src/include/forum_post_standalone.html index 946074f..846a4d9 100644 --- a/src/templates/src/include/forum_post_standalone.html +++ b/src/templates/src/include/forum_post_standalone.html @@ -33,7 +33,7 @@
-
+
{{ .Content }}
diff --git a/src/templates/src/layouts/base.html b/src/templates/src/layouts/base.html index 6cc67da..2a6d224 100644 --- a/src/templates/src/layouts/base.html +++ b/src/templates/src/layouts/base.html @@ -62,20 +62,18 @@ - {{ if .MathjaxEnabled }} - - - {{ end }} + + {{ block "extrahead" . }}{{ end }} diff --git a/src/templates/types.go b/src/templates/types.go index ed29186..ca3c113 100644 --- a/src/templates/types.go +++ b/src/templates/types.go @@ -24,10 +24,9 @@ type BaseData struct { User *User Session *Session - IsProjectPage bool - Header Header - Footer Footer - MathjaxEnabled bool + IsProjectPage bool + Header Header + Footer Footer } func (bd *BaseData) AddImmediateNotice(class, content string) { diff --git a/src/website/blogs.go b/src/website/blogs.go index c6e6481..6555d8b 100644 --- a/src/website/blogs.go +++ b/src/website/blogs.go @@ -211,7 +211,6 @@ func BlogPostRedirectToThread(c *RequestContext) ResponseData { func BlogNewThread(c *RequestContext) ResponseData { baseData := getBaseData(c) baseData.Title = fmt.Sprintf("Create New Post | %s", c.CurrentProject.Name) - baseData.MathjaxEnabled = true // TODO(ben): Set breadcrumbs editData := getEditorDataForNew(baseData, nil) @@ -291,7 +290,6 @@ func BlogPostEdit(c *RequestContext) ResponseData { } else { baseData.Title = fmt.Sprintf("Editing Post | %s", c.CurrentProject.Name) } - baseData.MathjaxEnabled = true // TODO(ben): Set breadcrumbs editData := getEditorDataForEdit(baseData, postData) @@ -356,7 +354,6 @@ func BlogPostReply(c *RequestContext) ResponseData { baseData := getBaseData(c) baseData.Title = fmt.Sprintf("Replying to comment in \"%s\" | %s", postData.Thread.Title, c.CurrentProject.Name) - baseData.MathjaxEnabled = true // TODO(ben): Set breadcrumbs replyPost := templates.PostToTemplate(&postData.Post, postData.Author, c.Theme) @@ -421,7 +418,6 @@ func BlogPostDelete(c *RequestContext) ResponseData { } else { baseData.Title = fmt.Sprintf("Deleting comment in \"%s\" | %s", postData.Thread.Title, c.CurrentProject.Name) } - baseData.MathjaxEnabled = true // TODO(ben): Set breadcrumbs templatePost := templates.PostToTemplate(&postData.Post, postData.Author, c.Theme) diff --git a/src/website/forums.go b/src/website/forums.go index 15ce459..aecf82a 100644 --- a/src/website/forums.go +++ b/src/website/forums.go @@ -598,7 +598,6 @@ func ForumPostRedirect(c *RequestContext) ResponseData { func ForumNewThread(c *RequestContext) ResponseData { baseData := getBaseData(c) baseData.Title = "Create New Thread" - baseData.MathjaxEnabled = true // TODO(ben): Set breadcrumbs cd, ok := getCommonForumData(c) @@ -686,7 +685,6 @@ func ForumPostReply(c *RequestContext) ResponseData { baseData := getBaseData(c) baseData.Title = fmt.Sprintf("Replying to post | %s", cd.SubforumTree[cd.SubforumID].Name) - baseData.MathjaxEnabled = true // TODO(ben): Set breadcrumbs replyPost := templates.PostToTemplate(&postData.Post, postData.Author, c.Theme) @@ -751,7 +749,6 @@ func ForumPostEdit(c *RequestContext) ResponseData { } else { baseData.Title = fmt.Sprintf("Editing Post | %s", cd.SubforumTree[cd.SubforumID].Name) } - baseData.MathjaxEnabled = true // TODO(ben): Set breadcrumbs editData := getEditorDataForEdit(baseData, postData) @@ -811,7 +808,6 @@ func ForumPostDelete(c *RequestContext) ResponseData { baseData := getBaseData(c) baseData.Title = fmt.Sprintf("Deleting post in \"%s\" | %s", postData.Thread.Title, cd.SubforumTree[cd.SubforumID].Name) - baseData.MathjaxEnabled = true // TODO(ben): Set breadcrumbs templatePost := templates.PostToTemplate(&postData.Post, postData.Author, c.Theme)