require 'redcarpet'
# TODO:
-# * Copy auxiliary files over
# * Add page attachment mechanism
-# * Add edit shortcut
# * Add save shortcut
# * Add a create method
# * Add a delete method
EDIT_TEMPLATE = "config/editor.html.erb"
PLANTUML_JAR = "config/plantuml.jar"
PLANTUML_CMD = "java -jar #{PLANTUML_JAR} -tsvg -pipe"
+EDIT_SCRIPT = <<-eos
+ <script>
+ (() => {
+ const keys = { "e": () => { window.location = window.location + "?edit=true" } };
+ document.onkeydown = (ev) => (!!keys[ev.key] ? (keys[ev.key])(ev) : true);
+ })();
+ </script>
+eos
class Page
def initialize(src)
html = File.read(htmlfile)
end
gensitemap()
- html.sub("<!--EDIT-->",
- "<a class='navLink shrink' href='#{path}?edit=true'>[edit]</a>")
+ html = html.sub("<!--EDIT-->",
+ "<a class='navLink shrink' href='#{path}?edit=true'>[edit]</a>")
+ html.sub("<!--EDIT_SCRIPT-->", EDIT_SCRIPT)
end
def do_post(req, res, path)
</style>
</head>
<body>
- <div class="header">
- <hr/>
- <div class="box">
- <a class="headerLink grow" href="./index.html">
- <%= @site_title %>
- </a>
- <a class="navLink shrink" href='./index.html'>home</a>
- <a class="navLink shrink" href='./sitemap.html'>sitemap</a>
- <!--EDIT-->
- </div>
- <hr/>
+ <div class="header">
+ <hr/>
+ <div class="box">
+ <a class="headerLink grow" href="/index.html">
+ <%= @site_title %>
+ </a>
+ <a class="navLink shrink" href='/index.html'>home</a>
+ <a class="navLink shrink" href='/sitemap.html'>sitemap</a>
+ <!--EDIT-->
</div>
+ <hr/>
+ </div>
- <article>
- <%= @article %>
- </article>
+ <article>
+ <%= @article %>
+ </article>
- <div class="footer">
- <hr style="margin-top: 2em"/>
- <div style="text-align: center">
- <%= @gendate %>
- </div>
+ <div class="footer">
+ <hr style="margin-top: 2em"/>
+ <div style="text-align: center">
+ <%= @gendate %>
</div>
+ </div>
+ <!--EDIT_SCRIPT-->
</body>
</html>