Commit graph

48 commits

Author SHA1 Message Date
Tomasz Biernacki
c84b550f92 Add multiple authors filtering support 2016-02-10 03:13:06 +01:00
Sean
852b431d71 Add home to index params when previews are enabled 2016-02-04 04:07:17 -08:00
ponkore
556fe84ef8 content-with-more-marker returns with correct tags
`content-with-more-marker` returns a HTML string when the `content`
conteins more marker ("<!--more-->").

In many case, HTML tags in `content` is balanced.
ex.
------------------------------
<div id='post'>
  <div class='post-content'>
    this post has more marker
<!--more-->
and more content.
  </div>
</div>
------------------------------

But original code breaks the balance.
------------------------------
<div id='post'>
  <div class='post-content'>
    this post has more marker
------------------------------

Afer this patch applied, `tagsoup` read above text and `hiccup`
re-render to HTML text with correct balanced tags.
------------------------------
<div id='post'>
  <div class='post-content'>
    this post has more marker
</div></div>
------------------------------
2016-01-11 21:30:21 +09:00
Carmen La
839ed5c469 Remove unnecesasry tag-root key 2016-01-08 20:44:07 -05:00
Sergiy BONDARYEV
eea999e1d7 add Blog/Page/Post/Tag uri customisation
add :tag-root-uri :page-root-uri :post-root-uri parsing

replace {entity}-root with {entity}-root-uri parameters to set uri

fix root-path call

fix root-path function params order
(worked erlier because of keyword<->map transposition)

fix keyword :{entity}-root-uri to :{entity}-root transformation

misprint: congig -> config

add function to compose file path

add create-file function

add function to compose a path

handle empty blog-path using path function

fix filename for preview
2016-01-08 22:59:10 +01:00
Yogthos
5b13b3b761 added :draft? key to allow creation of draft posts that won't be published 2015-12-17 14:36:09 -05:00
Carmen La
30b3503abc add '.html' ending to prev/next links in preview pages 2015-10-31 14:50:03 -04:00
Carmen La
21e3c0e75f Add ".html" ending to preview pages.
cryogen-project/cryogen#92
2015-10-31 13:54:37 -04:00
Jeff Rabinowitz
482700a311 Submitting a feature request for the :toc to support both ordered and unordered lists by expanding the vocabulary of the existing :toc directive to include :ul and :ol 2015-10-25 19:14:43 -04:00
Jan Stępień
2a95e477de Parallelize read-posts with pmap
This makes each markup implementation process posts in parallel.

In case of a simple test blog with 4 markdown pages mean compilation
time was reduced from 395 to 330ms. In the experiment I used OpenJDK 8
running `lein ring server` on a 4 core CPU.
2015-09-23 21:46:11 +02:00
Jan Stępień
1a7c48731a Simplify create-previews with map 2015-09-18 22:22:40 +02:00
Jan Stępień
f6a7d17213 Don't invoke select-keys on post in create-preview
This allows preview templates to access all of post's metadata.
2015-09-18 22:22:13 +02:00
Jan Stępień
1b4306c3a3 create-preview: simplify the more marker lookup
This commit replaces a regular expression lookup with a simple
String/indexOf substring search.

It addresses pathological cases in which re-find took several
seconds to process contents of a blog post. An example of such
a case was a post with 16kB of nested HTML tags in a single line.
2015-09-17 17:13:45 +02:00
Marko Kocic
f4888b26d9 Clear reflection warnings 2015-09-14 12:06:35 +02:00
Randall Mason
03cfabcbb9 Add enclosure tag to facilitate Podcasting with Cryogen
Add an enclosure tag to a post's metadata to let a podcast client
to deliver your audio content.  It should look like this:

:enclosure [{:url "<full-url>"}]

Without the brackets, you end up with NullPointerExceptions, so
make sure you have that.

The URL should be the full location of where the audio file is
hosted (not relative), so for example:

:enclosure [{:url "http://www.example.com/01_episode_IV.mp3"}]

I created a bunch of markdown files with just the enclosure and
info about the audiobook with the following bash snippet:

find -L books -type f -iname "*mp3" | sort | while read mp3; do name=$(basename $mp3 .mp3); book=$(basename "$(dirname $mp3)"); echo "{:title \"$name\"\n:layout :post\n:tags [\"audiobooks\" \"$book\"]\n:enclosure [{:url \"http://clashthebunny.mason.ch/blog/$mp3\"}]}\n $book - $name\n==================" > md/posts/"$(date "+%Y-$name").md"; done

Each book was in it's own subdirectory of books:
books/Dracula/1-01-Chapter1_part01.mp3
books/Dracula/1-02-Chapter1_part02.mp3
books/Dracula/2-01-Chapter2_part01.mp3

Note that the above script requires the prefix of the episode to
be "date-like".  It should be fairly easy to work out a way to get
your podcast up and running.

Add the book names to your rss-filters array, e.g.:
["Dracula" "Pride & Prejudice"]

Most podcasting clients support authentication, so just password
protect those directories and you should be good to go, even
if you are hosting copyrighted content.
2015-09-03 11:27:55 -05:00
Chris
8eb0e9ff29 Add active-page key to config map
For certain pages a key with a boolean value is added to the config map which can then be used in templates to determine if it is the page being rendered. Not all pages have this key and boolean value. Instead of adding additional keys for every page a new generic key, 'active-page', has been added and its value is the page name, ex: 'home', 'archives', 'tags', etc. The default value is 'home'. This key can then be used in any template to check the page which is currently being rendered.
2015-08-17 07:30:23 -07:00
Carmen La
837f855726 Merge branch 'post-date' of https://github.com/powernoodle/cryogen-core into powernoodle-post-date 2015-08-06 13:37:50 -04:00
Kirill Kondratenko
71bb80cf49 Use the default locale for the instance of the JVM
instead of the hardcoded "en" locale
2015-08-06 00:27:54 +03:00
Brendon Walsh
e710f08679 Optional :date key can be provided in metadata 2015-07-29 11:50:00 -04:00
Carmen La
64a9830f6d Only make the "prev" link in the second page when the second page actually exists 2015-07-08 16:55:31 -04:00
Carmen La
d6941823fd Added option for post preview pages rather than a single index page. Issue #28 2015-07-08 16:34:39 -04:00
Carmen La
7153e9d522 Added page with all tags - for issue #31 2015-07-08 12:15:11 -04:00
InDevLand
82d3a5677f fixed compile-pages now use :layout 2015-07-06 04:02:42 +02:00
Carmen La
e7636e7586 Fixed pubDate not showing up in filtered rss feeds 2015-06-23 10:08:26 -04:00
lacarmen
4511536cc9 Cleanup + fixes for config based themes 2015-06-14 11:16:35 -04:00
Albert Lai
2119ed52aa merge posts image fix 2015-06-14 18:42:04 +08:00
Albert Lai
7c443a8b5c add experimental theme support 2015-06-14 18:23:58 +08:00
Albert Lai
bc62c8a790 fix issue #24 image handling in Post is generally broken 2015-06-14 13:47:18 +08:00
Yogthos
e0d3676196 added an error check for parsing the config.edn 2015-04-02 22:22:17 -04:00
William Roe
c52d3d1aa6 Pass all config to templates
This allows people to use any parameter from their config as well as the
params that were already being used.
2015-02-23 18:14:31 +00:00
William Roe
5587cc88ef Run SASS relative to sass/
This is so that SASS/Compass can find images and other assets
2015-02-21 23:36:20 +00:00
William Roe
52244956aa Option maps are easier to use when calling functions
... with more than a couple of parameters.
2015-02-21 22:15:40 +00:00
Stefan Pfeiffer, DL1ELY
f74c05711b Fix overly eager replacement of file extensions in uris
As the filename extensions given by the render plugins are also used as
regex for replacing them with .html to generate URIs, the dot in front of
the extension was interpreted as an arbitrary character for the regex.
Also, it matched in the middle of a string. Now dots get quoted and a $
added to only match at the end of the filename.

Fix #16
2015-01-28 22:19:01 +01:00
lacarmen
9de65df523 Added :content key to grouped tags in order to fix filtered rss generation 2015-01-22 12:18:32 -05:00
Adam Tankanow
cb18e5734d Merge branch 'master' into add-asciidoc-support
Conflicts:
	project.clj
2015-01-09 09:15:54 -05:00
lacarmen
656cc2d0c9 Added curated RSS generation based on :rss-filters in the config 2015-01-03 20:36:30 -05:00
J Irving
6f7cb79a65 Sass compilation respects :ignored-files config
This is an oversight from lacarmen/cryogen-core#4.

Also some slight refactoring.
2015-01-01 03:49:03 -05:00
lacarmen
bca0e89aa2 Added uri and site-url selmer tags for canonical url meta tags 2014-12-31 23:21:38 -05:00
lacarmen
73338935fa Cleanup 2014-12-31 16:55:29 -05:00
Adam Tankanow
b68779fcbe Abstract Markup language details and add Asciidoc support:
1. create markup namespace to hold Markup protocol and its Markdown and
Asciidoc implementations.
2. Update compiler ns to iterate through available Markups and pass
Markup to fns that need Markup info.
3. Refactor compiler ns parse fns to be more granular.
2014-12-30 07:31:46 -05:00
J Irving
efbe831261 Support :ignored-file config key
Prevent the compiler attempting to process files defined by a list of
regexps. By default ignore emacs and vi backup files.
2014-12-27 02:47:55 -05:00
Yogthos
a49bda02bc removed main 2014-12-26 23:50:25 -05:00
Yogthos
faf60f5c37 added System/exit in the main 2014-12-25 11:28:42 -05:00
Yogthos
8173f5e103 fixed sass paths 2014-12-25 11:24:25 -05:00
Dmitri Sotnikov
f43b751cfd support for ref links
fixes https://github.com/lacarmen/cryogen/issues/39
2014-12-24 16:53:25 -05:00
Martin Kremers
d9fe01d8f6 Make images from md folders available, so a post or page can be one unit in a folder 2014-12-07 17:50:24 +01:00
lacarmen
6483b0ea1f Updated the compiler to inject the blog prefix in front of local links and added docstrings 2014-12-05 16:37:04 -05:00
lacarmen
9ee0968a0f Renamed to cryogen-core 2014-12-05 10:56:40 -05:00
Renamed from src/cryogen/compiler.clj (Browse further)