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