home · contact · privacy
Clean up heading logic for .rst and .md interpretation.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 2 Jan 2017 10:31:55 +0000 (11:31 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 2 Jan 2017 10:31:55 +0000 (11:31 +0100)
README.md
processor/metadata/article.tmpl.do
processor/metadata/default.intermediate.do
test/test_files/bar baz.html
test/test_files/bar baz.md
test/test_files/feed.xml.ignoring
test/test_files/foo.html
test/test_files/foo.rst
test/test_files/test.html
test/test_files/test.md

index 420c15164d490f65ba405ce25d6fa265adcf970e..a0071b3473e19ed7f2b6dd54fac3971a7074f7ca 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
 redo-blog
 =========
 
 redo-blog
 =========
 
-small blog system using the redo build system
+small blog system using the redo build system, with blog article files written
+in (pandoc) Markdown or ReStructured Text.
 
 dependencies
 ------------
 
 dependencies
 ------------
@@ -29,12 +30,12 @@ These files will be linked to symbolically in a directory ./public/.
 
 Some metadata files will also be generated below ./metadata/: For each article,
 there will be generated a .uuid and a .intermediate file; furthermore, files for
 
 Some metadata files will also be generated below ./metadata/: For each article,
 there will be generated a .uuid and a .intermediate file; furthermore, files for
-data used in ./feed.xml and ./index.html will be built there and can be edited
-to customize the blog – namely the files url, author, uuid, title, index.tmpl,
-index_snippet.tmpl, article.tmpl.
+data used in ./feed.xml and ./index.html will, if non-existant, be built there
+and can be edited to customize the blog – namely the files url, author, uuid,
+title, index.tmpl, index_snippet.tmpl, article.tmpl.
 
 
-recipe to use server-side with git
-----------------------------------
+recipe to remotely manage a redo blog with git
+----------------------------------------------
 
 On your server, install the dependencies listed above. Then set up a repository
 for your blog files. Let's assume we want it to sit in our home directory and be
 
 On your server, install the dependencies listed above. Then set up a repository
 for your blog files. Let's assume we want it to sit in our home directory and be
@@ -76,8 +77,14 @@ Client-side, do this (obviously, replace server and username):
     git commit -m 'set up blog metadata'
     git push origin master
 
     git commit -m 'set up blog metadata'
     git push origin master
 
-bugs
-----
+bugs and peculiarities
+----------------------
 
 Don't create a index.rst or index.md in the redo-managed directory, that will
 break things.
 
 Don't create a index.rst or index.md in the redo-managed directory, that will
 break things.
+
+The article title is derived in .md files from a first line prefixed with "% ",
+while all other headings are treated as sub-headings. In .rst files, the title
+is derived from a heading that must be at the top of the document, and be of an
+adornment style (such as underlining with "=") that must be used only once in
+it.
index 5cf9b3c0a8c7eb9059c0cbb3180d91f8e4c02475..7a560ecea535dad4b8f0cb6a15db09f94af8c5e2 100644 (file)
@@ -9,10 +9,10 @@ cat << EOF
 </head>
 <body>
 <a href="index.html">%BLOG_TITLE%</a>
 </head>
 <body>
 <a href="index.html">%BLOG_TITLE%</a>
+<article>
 <h1>%ARTICLE_TITLE_HTML%</h1>
 <h1>%ARTICLE_TITLE_HTML%</h1>
-<section>
 %BODY%
 %BODY%
-</section>
+</article>
 </body>
 </html>
 EOF
 </body>
 </html>
 EOF
index adcd2eb93b065d70db7ad7250aa4198ea2627958..a09d4b2e5022c884a2fe61832d205940582501fa 100644 (file)
@@ -8,8 +8,8 @@ mdfile="../${1%.intermediate}.md"
 rstfile="../${1%.intermediate}.rst"
 if [ -f "$rstfile" ]; then
   redo-ifchange "$rstfile"
 rstfile="../${1%.intermediate}.rst"
 if [ -f "$rstfile" ]; then
   redo-ifchange "$rstfile"
-  pandoc -f rst --template="$template" --mathml -t html5 "$rstfile" > "$3"
+  pandoc -f rst --template="$template" --mathml -t html5 "$rstfile" --base-header-level=2 > "$3"
 elif [ -f "$mdfile" ]; then
   redo-ifchange "$mdfile"
 elif [ -f "$mdfile" ]; then
   redo-ifchange "$mdfile"
-  pandoc -f markdown --template="$template" --mathml -t html5 "$mdfile" > "$3"
+  pandoc -f markdown --template="$template" --mathml -t html5 "$mdfile" --base-header-level=2 > "$3"
 fi
 fi
index f2321f964cd50e6a5089200b361ea596d6107639..418a91b6d5076c4044196834a2f60d269ff66f8f 100644 (file)
@@ -5,9 +5,12 @@
 </head>
 <body>
 <a href="index.html">Yet another blog</a>
 </head>
 <body>
 <a href="index.html">Yet another blog</a>
+<article>
 <h1>foo</h1>
 <h1>foo</h1>
-<section>
+<h2 id="bar">bar</h2>
 <p>bar</p>
 <p>bar</p>
-</section>
+<h3 id="bar-1">bar</h3>
+<p>bar</p>
+</article>
 </body>
 </html>
\ No newline at end of file
 </body>
 </html>
\ No newline at end of file
index 423430dab1b3e0499bbd07e3787983584bb10021..ffec59730f7a0f85bb12c4c54a4ad37a08de2c47 100644 (file)
@@ -1,2 +1,9 @@
 % foo
 % foo
-bar 
+
+# bar
+
+bar
+
+## bar
+
+bar
index dde4369ca848fb1b29bcf89bd5da70968f8663a6..364d700a8dcbc3e92e94c4d1314ec075480b78b1 100644 (file)
@@ -15,6 +15,8 @@
 <link href="http://example.org/test.html" />
 <content type="html">
 &lt;p&gt;foo&lt;/p&gt;
 <link href="http://example.org/test.html" />
 <content type="html">
 &lt;p&gt;foo&lt;/p&gt;
+&lt;h2 id=&quot;bar&quot;&gt;bar&lt;/h2&gt;
+&lt;p&gt;baz&lt;/p&gt;
 </content>
 </entry>
 
 </content>
 </entry>
 
@@ -25,6 +27,9 @@
 <published>IGNORE</published>
 <link href="http://example.org/bar%20baz.html" />
 <content type="html">
 <published>IGNORE</published>
 <link href="http://example.org/bar%20baz.html" />
 <content type="html">
+&lt;h2 id=&quot;bar&quot;&gt;bar&lt;/h2&gt;
+&lt;p&gt;bar&lt;/p&gt;
+&lt;h3 id=&quot;bar-1&quot;&gt;bar&lt;/h3&gt;
 &lt;p&gt;bar&lt;/p&gt;
 </content>
 </entry>
 &lt;p&gt;bar&lt;/p&gt;
 </content>
 </entry>
@@ -37,7 +42,9 @@
 <link href="http://example.org/foo.html" />
 <content type="html">
 &lt;p&gt;this text contains some special characters: /;%&#x27;&amp;quot;&amp;gt;&amp;lt;&amp;amp;äöüß&lt;/p&gt;
 <link href="http://example.org/foo.html" />
 <content type="html">
 &lt;p&gt;this text contains some special characters: /;%&#x27;&amp;quot;&amp;gt;&amp;lt;&amp;amp;äöüß&lt;/p&gt;
+&lt;h2 id=&quot;some-sub-heading&quot;&gt;some sub-heading&lt;/h2&gt;
 &lt;p&gt;and more than one paragraph&lt;/p&gt;
 &lt;p&gt;and more than one paragraph&lt;/p&gt;
+&lt;h2 id=&quot;another-sub-heading&quot;&gt;another sub-heading&lt;/h2&gt;
 &lt;p&gt;note that should be ignored but \ should give a backlash&lt;/p&gt;
 </content>
 </entry>
 &lt;p&gt;note that should be ignored but \ should give a backlash&lt;/p&gt;
 </content>
 </entry>
index 61bb9395ca8a176101bd33834291881ef7b312bf..9eb95f5ab7b8d3ed8c6853ed4e65703817362c24 100644 (file)
@@ -5,11 +5,13 @@
 </head>
 <body>
 <a href="index.html">Yet another blog</a>
 </head>
 <body>
 <a href="index.html">Yet another blog</a>
+<article>
 <h1>a title with some nasty characters: &amp;&lt;&gt;&quot;' %BODY%</h1>
 <h1>a title with some nasty characters: &amp;&lt;&gt;&quot;' %BODY%</h1>
-<section>
 <p>this text contains some special characters: /;%'&quot;&gt;&lt;&amp;äöüß</p>
 <p>this text contains some special characters: /;%'&quot;&gt;&lt;&amp;äöüß</p>
+<h2 id="some-sub-heading">some sub-heading</h2>
 <p>and more than one paragraph</p>
 <p>and more than one paragraph</p>
+<h2 id="another-sub-heading">another sub-heading</h2>
 <p>note that should be ignored but \ should give a backlash</p>
 <p>note that should be ignored but \ should give a backlash</p>
-</section>
+</article>
 </body>
 </html>
\ No newline at end of file
 </body>
 </html>
\ No newline at end of file
index cf4c2dff9af78b558b4dc5daac9262542389693a..039ed412c4690b45b1cd4768ac6e7ecd5f5a6fa0 100644 (file)
@@ -3,6 +3,12 @@ a title with some nasty characters: &<>"' %BODY%
 
 this text contains some special characters: /;%'"><&äöüß
 
 
 this text contains some special characters: /;%'"><&äöüß
 
+some sub-heading
+----------------
+
 and more than one paragraph
 
 and more than one paragraph
 
+another sub-heading
+-------------------
+
 note that \ should be ignored but \\ should give a backlash
 note that \ should be ignored but \\ should give a backlash
index 5915dd7202eea6a8dbf1b681f540e883c4505e48..bd4b81ff33fc98e5a722d27ef4b26a6ef3440885 100644 (file)
@@ -5,9 +5,11 @@
 </head>
 <body>
 <a href="index.html">Yet another blog</a>
 </head>
 <body>
 <a href="index.html">Yet another blog</a>
+<article>
 <h1>foo <em>bar</em> <strong>baz</strong></h1>
 <h1>foo <em>bar</em> <strong>baz</strong></h1>
-<section>
 <p>foo</p>
 <p>foo</p>
-</section>
+<h2 id="bar">bar</h2>
+<p>baz</p>
+</article>
 </body>
 </html>
\ No newline at end of file
 </body>
 </html>
\ No newline at end of file
index 4416db16f80d5ee279652e1a598bf295ac656263..267021a00f4b3c998907dee82ab5c9bf792482d2 100644 (file)
@@ -1,2 +1,6 @@
 % foo *bar* **baz**
 foo
 % foo *bar* **baz**
 foo
+
+# bar
+
+baz