First blog post
This commit is contained in:
commit
837ed93129
1
journal/.frog/build
Normal file
1
journal/.frog/build
Normal file
@ -0,0 +1 @@
|
|||||||
|
((3) 0 () 1 ((p+ #"/home/student/fcshome/CS2163/journal/_src/posts/2022-09-07-first-blog-post.md" . unix)) () (h ! (equal) ((? . 0) f post (u . "First blog post") (? . 0) 1662552543 (p+ #"/home/student/fcshome/CS2163/journal/2022/09/first-blog-post.html" . unix) (u . "/2022/09/first-blog-post.html") (u . "2022-09-07T08:55:04") #f #f (c (u . "first-post")) (u . "\n<p><em>First blog post</em></p>") #t (u . "\n<p><em>First blog post</em></p>\n<!-- more-->"))))
|
185
journal/2022/09/first-blog-post.html
Normal file
185
journal/2022/09/first-blog-post.html
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>First blog post</title>
|
||||||
|
<meta name="description" content="_First blog post_...">
|
||||||
|
<meta name="author" content="The Unknown Author">
|
||||||
|
<meta name="keywords" content="first-post">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="icon" href="/favicon.ico">
|
||||||
|
<link rel="canonical" href="http://www.example.com/2022/09/first-blog-post.html">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- CSS -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/pygments.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/scribble.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/custom.css">
|
||||||
|
<!-- Feeds -->
|
||||||
|
<link rel="alternate" type="application/atom+xml"
|
||||||
|
href="/feeds/all.atom.xml" title="Atom Feed">
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
href="/feeds/all.rss.xml" title="RSS Feed">
|
||||||
|
<!-- JS -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||||
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||||
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||||
|
|
||||||
|
ga('create', 'UA-xxxxx', 'auto');
|
||||||
|
ga('send', 'pageview');
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- A standard Twitter Bootstrap nav bar -->
|
||||||
|
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<a href="/index.html" class="navbar-brand">My Blog Brand</a>
|
||||||
|
|
||||||
|
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
|
||||||
|
data-target="#navbar_collapse" aria-controls="navbar_collapse"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="navbar_collapse">
|
||||||
|
<ul class="navbar-nav mr-auto">
|
||||||
|
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">
|
||||||
|
Tags <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a class="dropdown-item" href="/tags/first-post.html">first-post</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="nav-link" href="/About.html">About</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/feeds/all.atom.xml">Atom</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/feeds/all.rss.xml">RSS</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!-- Main column -->
|
||||||
|
<div id="content" class="col-md-12">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h1>First blog post</h1>
|
||||||
|
<p class='date-and-tags'>
|
||||||
|
<time datetime="2022-09-07" pubdate="true">2022-09-07</time> :: <span class="tags"><a href="/tags/first-post.html">first-post</a></span></p>
|
||||||
|
<p class='authors'>By: <span class="authors">The Unknown Author</span></p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<p><em>First blog post</em></p>
|
||||||
|
<!-- more-->
|
||||||
|
<footer>
|
||||||
|
<script type="text/javascript">
|
||||||
|
!function(d,s,id){
|
||||||
|
var js,fjs=d.getElementsByTagName(s)[0];
|
||||||
|
if(!d.getElementById(id)){
|
||||||
|
js=d.createElement(s);
|
||||||
|
js.id=id;
|
||||||
|
js.src="//platform.twitter.com/widgets.js";
|
||||||
|
fjs.parentNode.insertBefore(js,fjs);
|
||||||
|
}
|
||||||
|
}(document,"script","twitter-wjs");
|
||||||
|
</script>
|
||||||
|
<a href="https://twitter.com/share"
|
||||||
|
class="twitter-share-button"
|
||||||
|
data-url="http://www.example.com/2022/09/first-blog-post.html"
|
||||||
|
data-dnt="true">
|
||||||
|
"Tweet"</a>
|
||||||
|
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||||
|
<g:plusone size="medium" href="http://www.example.com/2022/09/first-blog-post.html"></g:plusone>
|
||||||
|
<div id="disqus_thread"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var disqus_config = function () {
|
||||||
|
this.page.identifier = undefined;
|
||||||
|
this.page.url = undefined;
|
||||||
|
this.page.title = undefined;
|
||||||
|
this.page.category_id = undefined;
|
||||||
|
};
|
||||||
|
var disqus_shortname = 'shortname';
|
||||||
|
(function() {
|
||||||
|
var dsq = document.createElement('script');
|
||||||
|
dsq.type = 'text/javascript';
|
||||||
|
dsq.async = true;
|
||||||
|
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
||||||
|
dsq.setAttribute('data-timestamp', +new Date());
|
||||||
|
(document.head || document.body).appendChild(dsq);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
Please enable JavaScript to view the
|
||||||
|
<a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a>
|
||||||
|
</noscript>
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<nav aria-label="Page Navigation">
|
||||||
|
<ul class="pagination">
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<hr />
|
||||||
|
<p><a href="https://twitter.com/racketlang"
|
||||||
|
class="twitter-follow-button"
|
||||||
|
data-show-count="false"
|
||||||
|
data-lang="en">
|
||||||
|
"Follow RacketLang"
|
||||||
|
</a>
|
||||||
|
<script type="text/javascript">
|
||||||
|
!function(d,s,id){
|
||||||
|
var js,fjs=d.getElementsByTagName(s)[0];
|
||||||
|
if(!d.getElementById(id)){
|
||||||
|
js=d.createElement(s);
|
||||||
|
js.id=id;
|
||||||
|
js.src="//platform.twitter.com/widgets.js";
|
||||||
|
fjs.parentNode.insertBefore(js,fjs);
|
||||||
|
}
|
||||||
|
}(document,"script","twitter-wjs");
|
||||||
|
</script></p>
|
||||||
|
<p>Site generated
|
||||||
|
by <a href="https://github.com/greghendershott/frog">Frog</a>,
|
||||||
|
the <strong>fr</strong>ozen bl<strong>og</strong> tool.</p>
|
||||||
|
<p>Using <a href="http://twitter.github.com/bootstrap/index.html">Bootstrap</a>.</p>
|
||||||
|
<p><em>Your legal notice here</em>.</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
<!-- </body> JS -->
|
||||||
|
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
128
journal/About.html
Normal file
128
journal/About.html
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>About page</title>
|
||||||
|
<meta name="description" content="About page: Your about page, here....">
|
||||||
|
<meta name="author" content="The Unknown Author">
|
||||||
|
<meta name="keywords" content="">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="icon" href="/favicon.ico">
|
||||||
|
<link rel="canonical" href="http://www.example.com/About.html">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- CSS -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/pygments.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/scribble.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/custom.css">
|
||||||
|
<!-- Feeds -->
|
||||||
|
<link rel="alternate" type="application/atom+xml"
|
||||||
|
href="/feeds/all.atom.xml" title="Atom Feed">
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
href="/feeds/all.rss.xml" title="RSS Feed">
|
||||||
|
<!-- JS -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||||
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||||
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||||
|
|
||||||
|
ga('create', 'UA-xxxxx', 'auto');
|
||||||
|
ga('send', 'pageview');
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- A standard Twitter Bootstrap nav bar -->
|
||||||
|
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<a href="/index.html" class="navbar-brand">My Blog Brand</a>
|
||||||
|
|
||||||
|
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
|
||||||
|
data-target="#navbar_collapse" aria-controls="navbar_collapse"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="navbar_collapse">
|
||||||
|
<ul class="navbar-nav mr-auto">
|
||||||
|
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">
|
||||||
|
Tags <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="active">
|
||||||
|
<a class="nav-link" href="/About.html">About</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/feeds/all.atom.xml">Atom</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/feeds/all.rss.xml">RSS</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!-- Main column -->
|
||||||
|
<div id="content" class="col-md-12">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1 id="about-page">About page</h1>
|
||||||
|
|
||||||
|
<p>Your about page, here.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<hr />
|
||||||
|
<p><a href="https://twitter.com/racketlang"
|
||||||
|
class="twitter-follow-button"
|
||||||
|
data-show-count="false"
|
||||||
|
data-lang="en">
|
||||||
|
"Follow RacketLang"
|
||||||
|
</a>
|
||||||
|
<script type="text/javascript">
|
||||||
|
!function(d,s,id){
|
||||||
|
var js,fjs=d.getElementsByTagName(s)[0];
|
||||||
|
if(!d.getElementById(id)){
|
||||||
|
js=d.createElement(s);
|
||||||
|
js.id=id;
|
||||||
|
js.src="//platform.twitter.com/widgets.js";
|
||||||
|
fjs.parentNode.insertBefore(js,fjs);
|
||||||
|
}
|
||||||
|
}(document,"script","twitter-wjs");
|
||||||
|
</script></p>
|
||||||
|
<p>Site generated
|
||||||
|
by <a href="https://github.com/greghendershott/frog">Frog</a>,
|
||||||
|
the <strong>fr</strong>ozen bl<strong>og</strong> tool.</p>
|
||||||
|
<p>Using <a href="http://twitter.github.com/bootstrap/index.html">Bootstrap</a>.</p>
|
||||||
|
<p><em>Your legal notice here</em>.</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
<!-- </body> JS -->
|
||||||
|
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
3
journal/_src/About.md
Normal file
3
journal/_src/About.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# About page
|
||||||
|
|
||||||
|
Your about page, here.
|
12
journal/_src/index-template.html
Normal file
12
journal/_src/index-template.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h2><a href='@|uri-path|'>@|title|</a></h2>
|
||||||
|
<p class='date-and-tags'>@|date| :: @|tags|</p>
|
||||||
|
<p class='authors'>By: @|authors|</p>
|
||||||
|
</header>
|
||||||
|
@|content-only|
|
||||||
|
@(when more?
|
||||||
|
@list{<footer>
|
||||||
|
<a href='@|uri-path|'>… more …</a>
|
||||||
|
</footer>})
|
||||||
|
</article>
|
129
journal/_src/page-template.html
Normal file
129
journal/_src/page-template.html
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
@;{ The at-exp reader for a template treats this as a comment.
|
||||||
|
Also, notice the use template variables like @title,
|
||||||
|
@description etc. }
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>@|title|</title>
|
||||||
|
<meta name="description" content="@|description|">
|
||||||
|
<meta name="author" content="@|author|">
|
||||||
|
<meta name="keywords" content="@|keywords|">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="icon" href="@|uri-prefix|/favicon.ico">
|
||||||
|
<link rel="canonical" href="@|full-uri|">
|
||||||
|
@(when rel-next @list{<link rel="next" href="@|rel-next|">})
|
||||||
|
@(when rel-prev @list{<link rel="prev" href="@|rel-prev|">})
|
||||||
|
<!-- CSS -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="@|uri-prefix|/css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="@|uri-prefix|/css/pygments.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="@|uri-prefix|/css/scribble.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="@|uri-prefix|/css/custom.css">
|
||||||
|
<!-- Feeds -->
|
||||||
|
<link rel="alternate" type="application/atom+xml"
|
||||||
|
href="@|atom-feed-uri|" title="Atom Feed">
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
href="@|rss-feed-uri|" title="RSS Feed">
|
||||||
|
<!-- JS -->
|
||||||
|
@google-universal-analytics["UA-xxxxx"]
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- A standard Twitter Bootstrap nav bar -->
|
||||||
|
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<a href="@|uri-prefix|/index.html" class="navbar-brand">My Blog Brand</a>
|
||||||
|
|
||||||
|
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
|
||||||
|
data-target="#navbar_collapse" aria-controls="navbar_collapse"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="navbar_collapse">
|
||||||
|
<ul class="navbar-nav mr-auto">
|
||||||
|
@;{ We can define Racket functions to "DRY". Here's one to
|
||||||
|
emit HMTL for a nav item, adding class="active" iff
|
||||||
|
this page's @|uri-path| is the same as the nav link. }
|
||||||
|
|
||||||
|
@(define (ni uri label [a-attribs ""])
|
||||||
|
@list{
|
||||||
|
<li@(when (string-ci=? uri uri-path) " class=\"active\"")>
|
||||||
|
<a class="nav-link" href="@|uri|"@|a-attribs|>@|label|</a>
|
||||||
|
</li> })
|
||||||
|
|
||||||
|
|
||||||
|
@;{ Here we craft the dropdown links from a list of pairs.
|
||||||
|
The pairs are in the format '((name . url) ...) }
|
||||||
|
|
||||||
|
@(define (craft-tag-links listof-pairs)
|
||||||
|
@(map (lambda (pair)
|
||||||
|
@list{<a class="dropdown-item" href="@(cdr pair)">@(car pair)</a>})
|
||||||
|
listof-pairs))
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">
|
||||||
|
Tags <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
@craft-tag-links[(all-tag-pairs)]
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
@ni[(string-append uri-prefix "/About.html") "About"]
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="@|atom-feed-uri|">Atom</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="@|rss-feed-uri|">RSS</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
@;{ Remember that Twitter Bootstrap has a 12 cell model. The
|
||||||
|
col-md-N classes should add up to 12. For instance 3
|
||||||
|
"col-md-4" divs, or 2 "col-md-6" divs. }
|
||||||
|
<!-- Main column -->
|
||||||
|
<div id="content" class="col-md-12">
|
||||||
|
@;{ To put something only on the home page, check for
|
||||||
|
@uri-path being "/index.html" }
|
||||||
|
@(when (string-ci=? uri-path
|
||||||
|
(string-append uri-prefix
|
||||||
|
"/index.html"))
|
||||||
|
@list{
|
||||||
|
<h1>Welcome</h1>
|
||||||
|
<p>Here is some text that only goes on the home page,
|
||||||
|
because <code>@"@"uri-path</code> is
|
||||||
|
<code>/index.html</code>.</p> })
|
||||||
|
@;{ Index pages for posts have @tag that's not #f }
|
||||||
|
@(when tag
|
||||||
|
@list{<h1>Posts tagged <em>@|tag|</em></h1>})
|
||||||
|
@;{ The main page contents are in @contents }
|
||||||
|
@|contents|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<hr />
|
||||||
|
<p>@twitter-follow-button["racketlang" "Follow RacketLang"]</p>
|
||||||
|
<p>Site generated
|
||||||
|
by <a href="https://github.com/greghendershott/frog">Frog</a>,
|
||||||
|
the <strong>fr</strong>ozen bl<strong>og</strong> tool.</p>
|
||||||
|
<p>Using <a href="http://twitter.github.com/bootstrap/index.html">Bootstrap</a>.</p>
|
||||||
|
<p><em>Your legal notice here</em>.</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
<!-- </body> JS -->
|
||||||
|
<script type="text/javascript" src="@|uri-prefix|/js/jquery-3.2.1.slim.min.js"></script>
|
||||||
|
<script type="text/javascript" src="@|uri-prefix|/js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
15
journal/_src/post-template.html
Normal file
15
journal/_src/post-template.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h1>@|title|</h1>
|
||||||
|
<p class='date-and-tags'>@|date| :: @|tags|</p>
|
||||||
|
<p class='authors'>By: @|authors|</p>
|
||||||
|
</header>
|
||||||
|
@|content|
|
||||||
|
<footer>
|
||||||
|
@twitter-share-button[full-uri]
|
||||||
|
@google-plus-share-button[full-uri]
|
||||||
|
@disqus-comments["shortname"]
|
||||||
|
@older/newer-links[older-uri older-title newer-uri newer-title
|
||||||
|
#:for-bs 4]
|
||||||
|
</footer>
|
||||||
|
</article>
|
8
journal/_src/posts/2022-09-07-first-blog-post.md
Normal file
8
journal/_src/posts/2022-09-07-first-blog-post.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Title: First blog post
|
||||||
|
Date: 2022-09-07T08:55:04
|
||||||
|
Tags: first-post
|
||||||
|
|
||||||
|
_First blog post_
|
||||||
|
|
||||||
|
<!-- more -->
|
||||||
|
|
7
journal/css/bootstrap.min.css
vendored
Normal file
7
journal/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
journal/css/bootstrap.min.css.map
Normal file
1
journal/css/bootstrap.min.css.map
Normal file
File diff suppressed because one or more lines are too long
26
journal/css/custom.css
Normal file
26
journal/css/custom.css
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/* custom.css */
|
||||||
|
|
||||||
|
code {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* When highlighted code blocks are too wide, they wrap. Resulting in the */
|
||||||
|
/* line numbers column's rows not lining up with the code rows. Prevent */
|
||||||
|
/* wrapping. */
|
||||||
|
pre {
|
||||||
|
white-space: pre;
|
||||||
|
width: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
article img {
|
||||||
|
/* Make sure that images within blog articles never take more width
|
||||||
|
than the article width; `height: auto` ensures the height is also
|
||||||
|
resized proportionally.
|
||||||
|
|
||||||
|
This is useful given that Markdown itself gives you little
|
||||||
|
control over image resizing, and in particular no way to achieve
|
||||||
|
this "best fit" behavior.
|
||||||
|
*/
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
61
journal/css/pygments.css
Normal file
61
journal/css/pygments.css
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
.hll { background-color: #ffffcc }
|
||||||
|
.c { color: #999988; font-style: italic } /* Comment */
|
||||||
|
.err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
||||||
|
.k { color: #000000; font-weight: bold } /* Keyword */
|
||||||
|
.o { color: #000000; font-weight: bold } /* Operator */
|
||||||
|
.cm { color: #999988; font-style: italic } /* Comment.Multiline */
|
||||||
|
.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
|
||||||
|
.c1 { color: #999988; font-style: italic } /* Comment.Single */
|
||||||
|
.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
|
||||||
|
.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
|
||||||
|
.ge { color: #000000; font-style: italic } /* Generic.Emph */
|
||||||
|
.gr { color: #aa0000 } /* Generic.Error */
|
||||||
|
.gh { color: #999999 } /* Generic.Heading */
|
||||||
|
.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
|
||||||
|
.go { color: #888888 } /* Generic.Output */
|
||||||
|
.gp { color: #555555 } /* Generic.Prompt */
|
||||||
|
.gs { font-weight: bold } /* Generic.Strong */
|
||||||
|
.gu { color: #aaaaaa } /* Generic.Subheading */
|
||||||
|
.gt { color: #aa0000 } /* Generic.Traceback */
|
||||||
|
.kc { color: #000000; font-weight: bold } /* Keyword.Constant */
|
||||||
|
.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
|
||||||
|
.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
|
||||||
|
.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
|
||||||
|
.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
|
||||||
|
.kt { color: #445588; font-weight: bold } /* Keyword.Type */
|
||||||
|
.m { color: #009999 } /* Literal.Number */
|
||||||
|
.s { color: #d01040 } /* Literal.String */
|
||||||
|
.na { color: #008080 } /* Name.Attribute */
|
||||||
|
.nb { color: #0086B3 } /* Name.Builtin */
|
||||||
|
.nc { color: #445588; font-weight: bold } /* Name.Class */
|
||||||
|
.no { color: #008080 } /* Name.Constant */
|
||||||
|
.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
|
||||||
|
.ni { color: #800080 } /* Name.Entity */
|
||||||
|
.ne { color: #990000; font-weight: bold } /* Name.Exception */
|
||||||
|
.nf { color: #990000; font-weight: bold } /* Name.Function */
|
||||||
|
.nl { color: #990000; font-weight: bold } /* Name.Label */
|
||||||
|
.nn { color: #555555 } /* Name.Namespace */
|
||||||
|
.nt { color: #000080 } /* Name.Tag */
|
||||||
|
.nv { color: #008080 } /* Name.Variable */
|
||||||
|
.ow { color: #000000; font-weight: bold } /* Operator.Word */
|
||||||
|
.w { color: #bbbbbb } /* Text.Whitespace */
|
||||||
|
.mf { color: #009999 } /* Literal.Number.Float */
|
||||||
|
.mh { color: #009999 } /* Literal.Number.Hex */
|
||||||
|
.mi { color: #009999 } /* Literal.Number.Integer */
|
||||||
|
.mo { color: #009999 } /* Literal.Number.Oct */
|
||||||
|
.sb { color: #d01040 } /* Literal.String.Backtick */
|
||||||
|
.sc { color: #d01040 } /* Literal.String.Char */
|
||||||
|
.sd { color: #d01040 } /* Literal.String.Doc */
|
||||||
|
.s2 { color: #d01040 } /* Literal.String.Double */
|
||||||
|
.se { color: #d01040 } /* Literal.String.Escape */
|
||||||
|
.sh { color: #d01040 } /* Literal.String.Heredoc */
|
||||||
|
.si { color: #d01040 } /* Literal.String.Interpol */
|
||||||
|
.sx { color: #d01040 } /* Literal.String.Other */
|
||||||
|
.sr { color: #009926 } /* Literal.String.Regex */
|
||||||
|
.s1 { color: #d01040 } /* Literal.String.Single */
|
||||||
|
.ss { color: #990073 } /* Literal.String.Symbol */
|
||||||
|
.bp { color: #999999 } /* Name.Builtin.Pseudo */
|
||||||
|
.vc { color: #008080 } /* Name.Variable.Class */
|
||||||
|
.vg { color: #008080 } /* Name.Variable.Global */
|
||||||
|
.vi { color: #008080 } /* Name.Variable.Instance */
|
||||||
|
.il { color: #009999 } /* Literal.Number.Integer.Long */
|
484
journal/css/scribble.css
Normal file
484
journal/css/scribble.css
Normal file
@ -0,0 +1,484 @@
|
|||||||
|
|
||||||
|
/* This file is used by default by all Scribble documents.
|
||||||
|
See also "manual.css", which is added by default by the
|
||||||
|
`scribble/manual` language. */
|
||||||
|
|
||||||
|
/* CSS seems backward: List all the classes for which we want a
|
||||||
|
particular font, so that the font can be changed in one place. (It
|
||||||
|
would be nicer to reference a font definition from all the places
|
||||||
|
that we want it.)
|
||||||
|
|
||||||
|
As you read the rest of the file, remember to double-check here to
|
||||||
|
see if any font is set. */
|
||||||
|
|
||||||
|
/* Monospace: */
|
||||||
|
.maincolumn, .refpara, .refelem, .tocset, .stt, .hspace, .refparaleft, .refelemleft {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Serif: */
|
||||||
|
.main, .refcontent, .tocview, .tocsub, .sroman, i {
|
||||||
|
font-family: serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sans-serif: */
|
||||||
|
.version, .versionNoNav, .ssansserif {
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
.ssansserif {
|
||||||
|
font-size: 80%;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
|
||||||
|
p, .SIntrapara {
|
||||||
|
display: block;
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 { /* per-page main title */
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3, h4, h5, h6, h7, h8 {
|
||||||
|
margin-top: 1.75em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SSubSubSubSection {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 0.83em; /* should match h5; from HTML 4 reference */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Needed for browsers like Opera, and eventually for HTML 4 conformance.
|
||||||
|
This means that multiple paragraphs in a table element do not have a space
|
||||||
|
between them. */
|
||||||
|
table p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
/* Main */
|
||||||
|
|
||||||
|
body {
|
||||||
|
color: black;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maincolumn {
|
||||||
|
width: 43em;
|
||||||
|
margin-right: -40em;
|
||||||
|
margin-left: 15em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
/* Navigation */
|
||||||
|
|
||||||
|
.navsettop, .navsetbottom {
|
||||||
|
background-color: #f0f0e0;
|
||||||
|
padding: 0.25em 0 0.25em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navsettop {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
border-bottom: 2px solid #e0e0c0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navsetbottom {
|
||||||
|
margin-top: 2em;
|
||||||
|
border-top: 2px solid #e0e0c0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navleft {
|
||||||
|
margin-left: 1ex;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.navright {
|
||||||
|
margin-right: 1ex;
|
||||||
|
position: relative;
|
||||||
|
float: right;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.nonavigation {
|
||||||
|
color: #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchform {
|
||||||
|
display: inline;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox {
|
||||||
|
width: 16em;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
background-color: #eee;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contextindicator {
|
||||||
|
position: fixed;
|
||||||
|
background-color: #c6f;
|
||||||
|
color: #000;
|
||||||
|
font-family: monospace;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 2px 10px;
|
||||||
|
display: none;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
/* Version */
|
||||||
|
|
||||||
|
.versionbox {
|
||||||
|
position: relative;
|
||||||
|
float: right;
|
||||||
|
left: 2em;
|
||||||
|
height: 0em;
|
||||||
|
width: 13em;
|
||||||
|
margin: 0em -13em 0em 0em;
|
||||||
|
}
|
||||||
|
.version {
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
.versionNoNav {
|
||||||
|
font-size: xx-small; /* avoid overlap with author */
|
||||||
|
}
|
||||||
|
|
||||||
|
.version:before, .versionNoNav:before {
|
||||||
|
content: "Version ";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
/* Margin notes */
|
||||||
|
|
||||||
|
.refpara, .refelem {
|
||||||
|
position: relative;
|
||||||
|
float: right;
|
||||||
|
left: 2em;
|
||||||
|
height: 0em;
|
||||||
|
width: 13em;
|
||||||
|
margin: 0em -13em 0em 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refpara, .refparaleft {
|
||||||
|
top: -1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refcolumn {
|
||||||
|
background-color: #F5F5DC;
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
width: 13em;
|
||||||
|
font-size: 85%;
|
||||||
|
border: 0.5em solid #F5F5DC;
|
||||||
|
margin: 0 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refcontent {
|
||||||
|
margin: 0 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refcontent p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refparaleft, .refelemleft {
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
right: 2em;
|
||||||
|
height: 0em;
|
||||||
|
width: 13em;
|
||||||
|
margin: 0em 0em 0em -13em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refcolumnleft {
|
||||||
|
background-color: #F5F5DC;
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
width: 13em;
|
||||||
|
font-size: 85%;
|
||||||
|
border: 0.5em solid #F5F5DC;
|
||||||
|
margin: 0 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
/* Table of contents, inline */
|
||||||
|
|
||||||
|
.toclink {
|
||||||
|
text-decoration: none;
|
||||||
|
color: blue;
|
||||||
|
font-size: 85%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toptoclink {
|
||||||
|
text-decoration: none;
|
||||||
|
color: blue;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
/* Table of contents, left margin */
|
||||||
|
|
||||||
|
.tocset {
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
width: 12.5em;
|
||||||
|
margin-right: 2em;
|
||||||
|
}
|
||||||
|
.tocset td {
|
||||||
|
vertical-align: text-top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocview {
|
||||||
|
text-align: left;
|
||||||
|
background-color: #f0f0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocsub {
|
||||||
|
text-align: left;
|
||||||
|
margin-top: 0.5em;
|
||||||
|
background-color: #f0f0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocviewlist, .tocsublist {
|
||||||
|
margin-left: 0.2em;
|
||||||
|
margin-right: 0.2em;
|
||||||
|
padding-top: 0.2em;
|
||||||
|
padding-bottom: 0.2em;
|
||||||
|
}
|
||||||
|
.tocviewlist table {
|
||||||
|
font-size: 82%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocviewlisttopspace {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocviewsublist, .tocviewsublistonly, .tocviewsublisttop, .tocviewsublistbottom {
|
||||||
|
margin-left: 0.4em;
|
||||||
|
border-left: 1px solid #bbf;
|
||||||
|
padding-left: 0.8em;
|
||||||
|
}
|
||||||
|
.tocviewsublist {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.tocviewsublist table,
|
||||||
|
.tocviewsublistonly table,
|
||||||
|
.tocviewsublisttop table,
|
||||||
|
.tocviewsublistbottom table {
|
||||||
|
font-size: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocviewtitle * {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocviewlink {
|
||||||
|
text-decoration: none;
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocviewselflink {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocviewtoggle {
|
||||||
|
text-decoration: none;
|
||||||
|
color: blue;
|
||||||
|
font-size: 75%; /* looks better, and avoids bounce when toggling sub-sections due to font alignments */
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocsublist td {
|
||||||
|
padding-left: 1em;
|
||||||
|
text-indent: -1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocsublinknumber {
|
||||||
|
font-size: 82%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocsublink {
|
||||||
|
font-size: 82%;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocsubseclink {
|
||||||
|
font-size: 82%;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocsubnonseclink {
|
||||||
|
font-size: 82%;
|
||||||
|
text-decoration: none;
|
||||||
|
padding-left: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocsubtitle {
|
||||||
|
font-size: 82%;
|
||||||
|
font-style: italic;
|
||||||
|
margin: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
/* Some inline styles */
|
||||||
|
|
||||||
|
.indexlink {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nobreak {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre { margin-left: 2em; }
|
||||||
|
blockquote { margin-left: 2em; }
|
||||||
|
|
||||||
|
ol { list-style-type: decimal; }
|
||||||
|
ol ol { list-style-type: lower-alpha; }
|
||||||
|
ol ol ol { list-style-type: lower-roman; }
|
||||||
|
ol ol ol ol { list-style-type: upper-alpha; }
|
||||||
|
|
||||||
|
.SCodeFlow {
|
||||||
|
display: block;
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-bottom: 0em;
|
||||||
|
margin-right: 1em;
|
||||||
|
margin-top: 0em;
|
||||||
|
white-space: nowrap;
|
||||||
|
background-color: #f5f5f5; /* like Bootstrap */
|
||||||
|
border: 1px solid rgba(0,0,0,0.15); /* like Boostrap */
|
||||||
|
padding: 9.5px; /* like Boostrap */
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SVInsetFlow {
|
||||||
|
display: block;
|
||||||
|
margin-left: 0em;
|
||||||
|
margin-bottom: 0em;
|
||||||
|
margin-right: 0em;
|
||||||
|
margin-top: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SubFlow {
|
||||||
|
display: block;
|
||||||
|
margin: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxed {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #E8E8FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hspace {
|
||||||
|
}
|
||||||
|
|
||||||
|
.slant {
|
||||||
|
font-style: oblique;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badlink {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.plainlink {
|
||||||
|
text-decoration: none;
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.techoutside { text-decoration: underline; color: #b0b0b0; }
|
||||||
|
.techoutside:hover { text-decoration: underline; color: blue; }
|
||||||
|
|
||||||
|
/* .techinside:hover doesn't work with FF, .techinside:hover>
|
||||||
|
.techinside doesn't work with IE, so use both (and IE doesn't
|
||||||
|
work with inherit in the second one, so use blue directly) */
|
||||||
|
.techinside { color: black; }
|
||||||
|
.techinside:hover { color: blue; }
|
||||||
|
.techoutside:hover>.techinside { color: inherit; }
|
||||||
|
|
||||||
|
.SCentered {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.imageleft {
|
||||||
|
float: left;
|
||||||
|
margin-right: 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Smaller {
|
||||||
|
font-size: 82%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Larger {
|
||||||
|
font-size: 122%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* A hack, inserted to break some Scheme ids: */
|
||||||
|
.mywbr {
|
||||||
|
display: inline-block;
|
||||||
|
height: 0;
|
||||||
|
width: 0;
|
||||||
|
font-size: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.compact li p {
|
||||||
|
margin: 0em;
|
||||||
|
padding: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noborder img {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SAuthorListBox {
|
||||||
|
position: relative;
|
||||||
|
float: right;
|
||||||
|
left: 2em;
|
||||||
|
top: -2.5em;
|
||||||
|
height: 0em;
|
||||||
|
width: 13em;
|
||||||
|
margin: 0em -13em 0em 0em;
|
||||||
|
}
|
||||||
|
.SAuthorList {
|
||||||
|
font-size: 82%;
|
||||||
|
}
|
||||||
|
.SAuthorList:before {
|
||||||
|
content: "by ";
|
||||||
|
}
|
||||||
|
.author {
|
||||||
|
display: inline;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* print styles : hide the navigation elements */
|
||||||
|
@media print {
|
||||||
|
.tocset,
|
||||||
|
.navsettop,
|
||||||
|
.navsetbottom { display: none; }
|
||||||
|
.maincolumn {
|
||||||
|
width: auto;
|
||||||
|
margin-right: 13em;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
17
journal/feeds/all.atom.xml
Normal file
17
journal/feeds/all.atom.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
|
||||||
|
<title type="text">My Blog: My Blog</title>
|
||||||
|
<link rel="self" href="http://www.example.com/feeds/all.atom.xml" />
|
||||||
|
<link href="http://www.example.com/index.html" />
|
||||||
|
<id>urn:http-www-example-com:-index-html</id>
|
||||||
|
<updated>2022-09-07T11:55:04Z</updated>
|
||||||
|
<entry>
|
||||||
|
<title type="text">First blog post</title>
|
||||||
|
<link rel="alternate" href="http://www.example.com/2022/09/first-blog-post.html?utm_source=all&utm_medium=Atom" />
|
||||||
|
<id>urn:http-www-example-com:-2022-09-first-blog-post-html</id>
|
||||||
|
<published>2022-09-07T11:55:04Z</published>
|
||||||
|
<updated>2022-09-07T11:55:04Z</updated>
|
||||||
|
<author>
|
||||||
|
<name>The Unknown Author</name></author>
|
||||||
|
<content type="html">
|
||||||
|
<p><em>First blog post</em></p><a href="http://www.example.com/2022/09/first-blog-post.html?utm_source=all&amp;utm_medium=Atom"><em>More&hellip;</em></a></content></entry></feed>
|
17
journal/feeds/all.rss.xml
Normal file
17
journal/feeds/all.rss.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<rss version="2.0">
|
||||||
|
<channel>
|
||||||
|
<title>My Blog: My Blog</title>
|
||||||
|
<description>My Blog: My Blog</description>
|
||||||
|
<link>http://www.example.com/index.html</link>
|
||||||
|
<lastBuildDate>Wed, 07 Sep 2022 11:55:04 UT</lastBuildDate>
|
||||||
|
<pubDate>Wed, 07 Sep 2022 11:55:04 UT</pubDate>
|
||||||
|
<ttl>1800</ttl>
|
||||||
|
<item>
|
||||||
|
<title>First blog post</title>
|
||||||
|
<link>http://www.example.com/2022/09/first-blog-post.html?utm_source=all&utm_medium=RSS</link>
|
||||||
|
<guid isPermaLink="false">urn:http-www-example-com:-2022-09-first-blog-post-html</guid>
|
||||||
|
<pubDate>Wed, 07 Sep 2022 11:55:04 UT</pubDate>
|
||||||
|
<author>The Unknown Author</author>
|
||||||
|
<description>
|
||||||
|
<p><em>First blog post</em></p><a href="http://www.example.com/2022/09/first-blog-post.html?utm_source=all&amp;utm_medium=RSS"><em>More&hellip;</em></a></description></item></channel></rss>
|
17
journal/feeds/first-post.atom.xml
Normal file
17
journal/feeds/first-post.atom.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
|
||||||
|
<title type="text">My Blog: Posts tagged 'first-post'</title>
|
||||||
|
<link rel="self" href="http://www.example.com/feeds/first-post.atom.xml" />
|
||||||
|
<link href="http://www.example.com/tags/first-post.html" />
|
||||||
|
<id>urn:http-www-example-com:-tags-first-post-html</id>
|
||||||
|
<updated>2022-09-07T11:55:04Z</updated>
|
||||||
|
<entry>
|
||||||
|
<title type="text">First blog post</title>
|
||||||
|
<link rel="alternate" href="http://www.example.com/2022/09/first-blog-post.html?utm_source=first-post&utm_medium=Atom" />
|
||||||
|
<id>urn:http-www-example-com:-2022-09-first-blog-post-html</id>
|
||||||
|
<published>2022-09-07T11:55:04Z</published>
|
||||||
|
<updated>2022-09-07T11:55:04Z</updated>
|
||||||
|
<author>
|
||||||
|
<name>The Unknown Author</name></author>
|
||||||
|
<content type="html">
|
||||||
|
<p><em>First blog post</em></p><a href="http://www.example.com/2022/09/first-blog-post.html?utm_source=first-post&amp;utm_medium=Atom"><em>More&hellip;</em></a></content></entry></feed>
|
17
journal/feeds/first-post.rss.xml
Normal file
17
journal/feeds/first-post.rss.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<rss version="2.0">
|
||||||
|
<channel>
|
||||||
|
<title>My Blog: Posts tagged 'first-post'</title>
|
||||||
|
<description>My Blog: Posts tagged 'first-post'</description>
|
||||||
|
<link>http://www.example.com/tags/first-post.html</link>
|
||||||
|
<lastBuildDate>Wed, 07 Sep 2022 11:55:04 UT</lastBuildDate>
|
||||||
|
<pubDate>Wed, 07 Sep 2022 11:55:04 UT</pubDate>
|
||||||
|
<ttl>1800</ttl>
|
||||||
|
<item>
|
||||||
|
<title>First blog post</title>
|
||||||
|
<link>http://www.example.com/2022/09/first-blog-post.html?utm_source=first-post&utm_medium=RSS</link>
|
||||||
|
<guid isPermaLink="false">urn:http-www-example-com:-2022-09-first-blog-post-html</guid>
|
||||||
|
<pubDate>Wed, 07 Sep 2022 11:55:04 UT</pubDate>
|
||||||
|
<author>The Unknown Author</author>
|
||||||
|
<description>
|
||||||
|
<p><em>First blog post</em></p><a href="http://www.example.com/2022/09/first-blog-post.html?utm_source=first-post&amp;utm_medium=RSS"><em>More&hellip;</em></a></description></item></channel></rss>
|
28
journal/frog.rkt
Normal file
28
journal/frog.rkt
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
#lang frog/config
|
||||||
|
|
||||||
|
;; Called early when Frog launches. Use this to set parameters defined
|
||||||
|
;; in frog/params.
|
||||||
|
(define/contract (init)
|
||||||
|
(-> any)
|
||||||
|
(current-scheme/host "http://www.example.com")
|
||||||
|
(current-title "My Blog")
|
||||||
|
(current-author "The Unknown Author"))
|
||||||
|
|
||||||
|
;; Called once per post and non-post page, on the contents.
|
||||||
|
(define/contract (enhance-body xs)
|
||||||
|
(-> (listof xexpr/c) (listof xexpr/c))
|
||||||
|
;; Here we pass the xexprs through a series of functions.
|
||||||
|
(~> xs
|
||||||
|
(syntax-highlight #:python-executable (if (eq? (system-type) 'windows)
|
||||||
|
"python.exe"
|
||||||
|
"python")
|
||||||
|
#:line-numbers? #t
|
||||||
|
#:css-class "source")
|
||||||
|
(auto-embed-tweets #:parents? #t)
|
||||||
|
(add-racket-doc-links #:code? #t #:prose? #f)))
|
||||||
|
|
||||||
|
;; Called from `raco frog --clean`.
|
||||||
|
(define/contract (clean)
|
||||||
|
(-> any)
|
||||||
|
(void))
|
BIN
journal/img/1x1.gif
Normal file
BIN
journal/img/1x1.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 B |
BIN
journal/img/feed.png
Normal file
BIN
journal/img/feed.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 689 B |
140
journal/index.html
Normal file
140
journal/index.html
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>My Blog</title>
|
||||||
|
<meta name="description" content="My Blog">
|
||||||
|
<meta name="author" content="The Unknown Author">
|
||||||
|
<meta name="keywords" content="all, first-post">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="icon" href="/favicon.ico">
|
||||||
|
<link rel="canonical" href="http://www.example.com/index.html">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- CSS -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/pygments.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/scribble.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/custom.css">
|
||||||
|
<!-- Feeds -->
|
||||||
|
<link rel="alternate" type="application/atom+xml"
|
||||||
|
href="/feeds/all.atom.xml" title="Atom Feed">
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
href="/feeds/all.rss.xml" title="RSS Feed">
|
||||||
|
<!-- JS -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||||
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||||
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||||
|
|
||||||
|
ga('create', 'UA-xxxxx', 'auto');
|
||||||
|
ga('send', 'pageview');
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- A standard Twitter Bootstrap nav bar -->
|
||||||
|
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<a href="/index.html" class="navbar-brand">My Blog Brand</a>
|
||||||
|
|
||||||
|
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
|
||||||
|
data-target="#navbar_collapse" aria-controls="navbar_collapse"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="navbar_collapse">
|
||||||
|
<ul class="navbar-nav mr-auto">
|
||||||
|
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">
|
||||||
|
Tags <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a class="dropdown-item" href="/tags/first-post.html">first-post</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="nav-link" href="/About.html">About</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/feeds/all.atom.xml">Atom</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/feeds/all.rss.xml">RSS</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!-- Main column -->
|
||||||
|
<div id="content" class="col-md-12">
|
||||||
|
|
||||||
|
<h1>Welcome</h1>
|
||||||
|
<p>Here is some text that only goes on the home page,
|
||||||
|
because <code>@uri-path</code> is
|
||||||
|
<code>/index.html</code>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h2><a href='/2022/09/first-blog-post.html'>First blog post</a></h2>
|
||||||
|
<p class='date-and-tags'>
|
||||||
|
<time datetime="2022-09-07" pubdate="true">2022-09-07</time> :: <span class="tags"><a href="/tags/first-post.html">first-post</a></span></p>
|
||||||
|
<p class='authors'>By: <span class="authors">The Unknown Author</span></p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<p><em>First blog post</em></p>
|
||||||
|
<footer>
|
||||||
|
<a href='/2022/09/first-blog-post.html'>… more …</a>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<hr />
|
||||||
|
<p><a href="https://twitter.com/racketlang"
|
||||||
|
class="twitter-follow-button"
|
||||||
|
data-show-count="false"
|
||||||
|
data-lang="en">
|
||||||
|
"Follow RacketLang"
|
||||||
|
</a>
|
||||||
|
<script type="text/javascript">
|
||||||
|
!function(d,s,id){
|
||||||
|
var js,fjs=d.getElementsByTagName(s)[0];
|
||||||
|
if(!d.getElementById(id)){
|
||||||
|
js=d.createElement(s);
|
||||||
|
js.id=id;
|
||||||
|
js.src="//platform.twitter.com/widgets.js";
|
||||||
|
fjs.parentNode.insertBefore(js,fjs);
|
||||||
|
}
|
||||||
|
}(document,"script","twitter-wjs");
|
||||||
|
</script></p>
|
||||||
|
<p>Site generated
|
||||||
|
by <a href="https://github.com/greghendershott/frog">Frog</a>,
|
||||||
|
the <strong>fr</strong>ozen bl<strong>og</strong> tool.</p>
|
||||||
|
<p>Using <a href="http://twitter.github.com/bootstrap/index.html">Bootstrap</a>.</p>
|
||||||
|
<p><em>Your legal notice here</em>.</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
<!-- </body> JS -->
|
||||||
|
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
7
journal/js/bootstrap.bundle.min.js
vendored
Normal file
7
journal/js/bootstrap.bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
journal/js/jquery-3.2.1.slim.min.js
vendored
Normal file
4
journal/js/jquery-3.2.1.slim.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
journal/sitemap.txt
Normal file
2
journal/sitemap.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
http://www.example.com/2022/09/first-blog-post.html
|
||||||
|
http://www.example.com/About.html
|
137
journal/tags/first-post.html
Normal file
137
journal/tags/first-post.html
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Posts tagged 'first-post'</title>
|
||||||
|
<meta name="description" content="Posts tagged 'first-post'">
|
||||||
|
<meta name="author" content="The Unknown Author">
|
||||||
|
<meta name="keywords" content="first-post">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="icon" href="/favicon.ico">
|
||||||
|
<link rel="canonical" href="http://www.example.com/tags/first-post.html">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- CSS -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/pygments.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/scribble.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/custom.css">
|
||||||
|
<!-- Feeds -->
|
||||||
|
<link rel="alternate" type="application/atom+xml"
|
||||||
|
href="/feeds/first-post.atom.xml" title="Atom Feed">
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
href="/feeds/first-post.rss.xml" title="RSS Feed">
|
||||||
|
<!-- JS -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||||
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||||
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||||
|
|
||||||
|
ga('create', 'UA-xxxxx', 'auto');
|
||||||
|
ga('send', 'pageview');
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- A standard Twitter Bootstrap nav bar -->
|
||||||
|
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<a href="/index.html" class="navbar-brand">My Blog Brand</a>
|
||||||
|
|
||||||
|
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
|
||||||
|
data-target="#navbar_collapse" aria-controls="navbar_collapse"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="navbar_collapse">
|
||||||
|
<ul class="navbar-nav mr-auto">
|
||||||
|
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">
|
||||||
|
Tags <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a class="dropdown-item" href="/tags/first-post.html">first-post</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="nav-link" href="/About.html">About</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/feeds/first-post.atom.xml">Atom</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/feeds/first-post.rss.xml">RSS</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!-- Main column -->
|
||||||
|
<div id="content" class="col-md-12">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1>Posts tagged <em>first-post</em></h1>
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h2><a href='/2022/09/first-blog-post.html'>First blog post</a></h2>
|
||||||
|
<p class='date-and-tags'>
|
||||||
|
<time datetime="2022-09-07" pubdate="true">2022-09-07</time> :: <span class="tags"><a href="/tags/first-post.html">first-post</a></span></p>
|
||||||
|
<p class='authors'>By: <span class="authors">The Unknown Author</span></p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<p><em>First blog post</em></p>
|
||||||
|
<footer>
|
||||||
|
<a href='/2022/09/first-blog-post.html'>… more …</a>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<hr />
|
||||||
|
<p><a href="https://twitter.com/racketlang"
|
||||||
|
class="twitter-follow-button"
|
||||||
|
data-show-count="false"
|
||||||
|
data-lang="en">
|
||||||
|
"Follow RacketLang"
|
||||||
|
</a>
|
||||||
|
<script type="text/javascript">
|
||||||
|
!function(d,s,id){
|
||||||
|
var js,fjs=d.getElementsByTagName(s)[0];
|
||||||
|
if(!d.getElementById(id)){
|
||||||
|
js=d.createElement(s);
|
||||||
|
js.id=id;
|
||||||
|
js.src="//platform.twitter.com/widgets.js";
|
||||||
|
fjs.parentNode.insertBefore(js,fjs);
|
||||||
|
}
|
||||||
|
}(document,"script","twitter-wjs");
|
||||||
|
</script></p>
|
||||||
|
<p>Site generated
|
||||||
|
by <a href="https://github.com/greghendershott/frog">Frog</a>,
|
||||||
|
the <strong>fr</strong>ozen bl<strong>og</strong> tool.</p>
|
||||||
|
<p>Using <a href="http://twitter.github.com/bootstrap/index.html">Bootstrap</a>.</p>
|
||||||
|
<p><em>Your legal notice here</em>.</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
<!-- </body> JS -->
|
||||||
|
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user