Commit graph

282 commits

Author SHA1 Message Date
Owen Nelson 7ab22528a5 WIP Custom 404 page.
This is a proposed successor to #296 (rewritten for actix-web, rather
than iron).
2018-06-25 21:47:37 -07:00
eir 17106be497 Send Appropriate Response on Error
Users can now place custom error pages in static/error/<error_code>.html
e.g. static/error/404.html

If no custom page is found, a default plaintext describing the error is served.
2018-06-25 21:42:58 -07:00
Vincent Prouillet 42939b9a66 Fix error and cargo update 2018-06-25 18:08:20 +02:00
Unreal Hoang ffcc455ed5 Fix panicking handling file without extension 2018-06-25 18:07:41 +02:00
Owen Nelson 0e0cd244f3 Fix error handling put in place to side-step a confusing compiler error.
I filed actix/actix-web#261 as per the maintaner's request while
working on #310.

Having looked at the issue this morning, it appeared there was an
implementation to convert `io::Result` into a `Responder`, which kicked
in when I tried to access the `respond_to()` method without getting the
inner type from that first result before hand.
2018-06-25 18:07:41 +02:00
Owen Nelson 45156c46c9 map actix_web::error::Error to std::io::Error as string.
Conversion is by way of the `Display` trait impl since the actix errors
all seem to be more concerned with converting to/from http responses
rather than standard errors.
2018-06-25 18:07:41 +02:00
Owen Nelson 908f16855a Fixes #279 switch from iron to actix-web.
This implementation seems to match the behavior of the previous iron
server.

Static files are rendered as-is, and when a directory is requested, we
attempt to render a `index.html` found inside, or 404 if it's not
present.

The actix docs mention using channels to send a message to the server to
shut it down gracefully while running in another thread (as we're doing
here), but it seems like there would have to be some reorganization in
order to manage this effectively, perhaps holding the channel sender inside
`main.rs` so we can push a message through to the server when the call
to `cmd::serve()` finally returns.

For the time being, I left things without any careful attempts to
cleanup the server thread. This more or less matches the old iron
implementation as far as I can see.

The static file handling in actix is _just_ a little off from what we'd
want.
I left some comments in the source regarding why we can't just use their hook
for directory index redirection.
2018-06-25 18:07:41 +02:00
Vojtech Kral 6662014e55 Add image resizing support #225 2018-06-25 18:05:04 +02:00
Vincent Prouillet b892c07ed3 Don't hardcode the ws port
Closes #282
2018-06-25 17:59:04 +02:00
Vincent Prouillet 50a79c52f3 Fix serve not working with config flag
Closes #294
2018-06-25 17:58:27 +02:00
Vincent Prouillet 73ddbf7152 Write some docs 2018-03-21 16:18:24 +01:00
Vincent Prouillet f1abbd0860 Move copy utils to utils crate 2018-03-20 18:43:17 +01:00
Vincent Prouillet 2eacb8247b Fix config CLI option
Closes #254
2018-03-16 19:11:12 +01:00
Vincent Prouillet b3b2527c5d TIL about serde default 2018-03-12 20:11:03 +01:00
Andrew Zah f5ced05926 Separate interface and base url for gutenberg serve (#223)
Separate interface and base_url for serve

You can now have a different base_url and listening interface.
The `gutenberg serve` cmd now accepts `-u`/`--base-url`, but it defaults to `127.0.0.1`.
2018-02-02 17:18:07 +01:00
Vincent Prouillet 16f658c70c Move test_site and turn rebuild.rs into a component 2018-01-29 18:40:12 +01:00
Vincent Prouillet a44dd5f49a serve cleans after itself now
Closes #199
2018-01-22 18:11:28 +01:00
Vincent Prouillet f37992e03a Do not unwrap on serve 2018-01-22 13:46:36 +01:00
Thomas Vincent 67eca7731f Reload on config change (#206)
* Trigger rebuild when `config.toml` is edited
2018-01-12 11:50:29 +01:00
Vincent Prouillet 892c987152 Livereload shortcode changes
Fix #204
2018-01-09 23:39:21 +01:00
Vincent Prouillet 14edd2b875 Add output-dir option to build & serve
From #191
2017-12-29 19:26:17 +01:00
Vincent Prouillet 129e693521 Add default templates 2017-11-27 18:09:09 +01:00
Thomas Vincent 78a3602454 Add the detection of ChangeKind::Sass to tests 2017-11-21 00:05:37 +01:00
Vincent Prouillet 1d8df5774f Allow static folder to be missing 2017-10-25 14:49:54 +02:00
Vincent Prouillet e06611f46f Forgot to let base-url take a value >_> 2017-10-17 11:47:30 +02:00
Vincent Prouillet d2177df838 Stop using clap macro 2017-10-16 22:48:59 +02:00
Vincent Prouillet 73797efe90 Add a base-url flag to the build command 2017-10-05 10:56:13 +09:00
Vincent Prouillet 20c1947b47 Clippy run 2017-10-02 20:16:56 +09:00
Vincent Prouillet dee1dbe667 Working on site
And some tweaks as I write the docs
2017-09-29 15:37:58 +09:00
Vincent Prouillet de5d711771 Use flags for port/interface in serve cmd 2017-09-27 21:51:10 +09:00
Vincent Prouillet 5d7e0bb33e Register all Tera global fns on change 2017-09-26 17:25:55 +09:00
Vincent Prouillet a07835bbe3 Ignore folder change on live reload. Close #118 2017-09-12 15:57:51 +09:00
Vincent Prouillet f58e416b96 Clippy run 2017-08-31 18:01:26 +09:00
Vincent Prouillet 699ffb07ce Create themes folder on init 2017-08-25 08:43:54 +09:00
Vincent Prouillet c77cc9b170 First draft of theme support 2017-08-23 19:17:24 +09:00
Vincent Prouillet 23e4b911e7 Improve gutenberg init
Fix #104
2017-07-27 18:28:06 +09:00
Vincent Prouillet 2ea77f3883 Generate completions for all shells 2017-07-15 13:24:31 +09:00
Vincent Prouillet d78477b619 Add Sass support for *nix 2017-07-06 22:19:50 +09:00
Vincent Prouillet c3b525745e Convert project to a workspace 2017-07-01 16:47:41 +09:00
Vincent Prouillet 11c89fa663 Sorting benches 2017-07-01 12:06:49 +09:00
Vincent Prouillet 1f1fc3f454 Remove section from page context 2017-06-29 22:19:54 +09:00
Vincent Prouillet c7bea0bc54 Add weight sorting 2017-06-29 16:11:15 +09:00
Vincent Prouillet 7768a0cc12 Bench + parallelize more things 2017-06-27 22:39:04 +09:00
Vincent Prouillet b158ca7952 Read off disk in parallel 2017-06-22 14:21:56 +09:00
Vincent Prouillet b45f8c3116 Merge pull request #89 from williamyaoh/add-parallel
Parallelize site rendering using rayon
2017-06-21 18:14:30 +09:00
Vincent Prouillet 414457ed92 Get assets of page only if file is named index.md 2017-06-21 18:07:40 +09:00
William Yao 2109787625 coalesce syntect data structures into rendering::highlighting (Keats/gutenberg#89) 2017-06-21 04:00:37 -05:00
William Yao b759cf7681 parallelize site rendering with rayon (Keats/gutenberg#70) 2017-06-21 04:00:37 -05:00
Vincent Prouillet 6508b7e4d3 Name the index section 2017-06-19 18:14:13 +09:00
Vincent Prouillet 03bbe9cc90 Revert "Reverse order sorting to be desc"
This reverts commit 26e119479c.
2017-06-17 08:42:18 +09:00
Vincent Prouillet 6a059d86d0 Add aliases to pages. Fix #86 2017-06-16 23:09:01 +09:00
Vincent Prouillet 26e119479c Reverse order sorting to be desc 2017-06-16 22:12:38 +09:00
Vincent Prouillet e76ee7ae4a Pass section in context when rendering a page if there is one 2017-06-16 21:53:54 +09:00
Vincent Prouillet c3986b701a Add table of contents support 2017-06-16 13:00:48 +09:00
Vincent Prouillet 2d949249c3 Add trailing slash to paths and permalinks. Fix #85 2017-06-11 02:52:39 +09:00
Vincent Prouillet 0037f743cd Add license of livereload-js in serve.rs 2017-06-07 18:25:59 +09:00
William Yao 4c9d1e3af7 Add shortcode for Streamable videos (Electric Boogaloo) (#80)
Add shortcode for Streamable video
2017-06-06 12:51:20 +09:00
Vincent Prouillet ffe8a24333 Sort tag/category page by date
Fix #75
2017-05-30 19:23:10 +09:00
Vincent Prouillet bae3ade471 Add get_section fn and update readme 2017-05-23 20:03:25 +09:00
Vincent Prouillet 958f1cf88c Update Tera and fix tests 2017-05-23 19:49:10 +09:00
Vincent Prouillet 3fb06ac791 Clippy 2017-05-22 20:58:28 +09:00
Vincent Prouillet 92d81509d3 Rebuild pages on changes to insert_anchor 2017-05-22 20:56:37 +09:00
Vincent Prouillet 916f7407db Rename anchor link class 2017-05-22 20:44:33 +09:00
Vincent Prouillet efb4d16ede Remove next/previous page when adding a previous/next to avoid chains
Where all the posts would be serialized
2017-05-22 20:38:04 +09:00
Vincent Prouillet dbe4a1d517 Move insert_anchor to section and allow left/right 2017-05-22 20:28:43 +09:00
Vincent Prouillet 2a11b9d116 Better error if address in use
Fix #72
2017-05-21 00:00:42 +09:00
Vincent Prouillet 33faf6fe70 Make number RSS item configurable
Fix #71
2017-05-20 23:45:32 +09:00
Vincent Prouillet 26159609d2 Add a rendering module 2017-05-17 21:53:26 +09:00
Vincent Prouillet b2a63e2ada Add a get_url global fn
Close #67
2017-05-17 19:06:11 +09:00
Vincent Prouillet 59b4b07cb3 Use Path for fs utils rather than AsRef 2017-05-16 14:54:50 +09:00
Vincent Prouillet be784bbaa3 Refactor taxonomies
Fix #66
2017-05-16 13:39:42 +09:00
Vincent Prouillet 056bf55881 Add a FileInfo struct to hold some common data about the files 2017-05-15 19:53:39 +09:00
Vincent Prouillet d9ed7df118 Minify livereload.js 2017-05-15 17:11:14 +09:00
Vincent Prouillet b2c3adff37 Move page tests inside content mod 2017-05-15 17:02:38 +09:00
Vincent Prouillet 4f27dc2f18 Move find_content_components to content mod 2017-05-15 16:26:11 +09:00
Vincent Prouillet 86b6bd80c3 Fix SectionFrontMatter default 2017-05-15 14:59:14 +09:00
Vincent Prouillet c35b76406e Move stuff around a bit more 2017-05-15 12:23:19 +09:00
Vincent Prouillet 07f11755d6 Create a content mod 2017-05-14 14:14:58 +09:00
Vincent Prouillet 09d5e74a65 Smarter rebuild on content change
Fix #59
2017-05-13 22:37:02 +09:00
Vincent Prouillet 76527801ce Move render_alias to templates mod 2017-05-13 13:05:38 +09:00
Vincent Prouillet 299c3c8b22 Separate Page and Section front matter into 2 structs
Fix #61
2017-05-13 13:01:39 +09:00
Vincent Prouillet bb3cba1ad5 Move adding filters to the templates mod 2017-05-13 11:45:29 +09:00
Vincent Prouillet 72c626ee55 Move all tera stuff into a templates mod 2017-05-12 23:27:22 +09:00
Vincent Prouillet 2fb4e2b01d Move all printing in cli to the console file 2017-05-12 23:10:21 +09:00
Vincent Prouillet 2a150299f3 Move cli code to bin directory 2017-05-12 22:59:41 +09:00
Vincent Prouillet 5ac5625de1 Default to not generating tags and categories page
Also add a Site::render_section method
2017-05-12 22:54:13 +09:00
Vincent Prouillet ab3e04c9e5 Do not count the index as a section when printing 2017-05-12 21:30:59 +09:00
Vincent Prouillet c791dffae5 Use livereload properly. Fix #10 2017-05-12 21:15:50 +09:00
Vincent Prouillet 8711c9a3c0 Change Site::section and fix empty paginated sections 2017-05-12 20:24:44 +09:00
Vincent Prouillet c565f10cb3 Let sections have their own body 2017-05-12 18:05:00 +09:00
Vincent Prouillet 005990a928 Create a default index section if there is none 2017-05-12 16:30:01 +09:00
Vincent Prouillet 939b699518 Clippy 2017-05-11 15:45:19 +09:00
Vincent Prouillet 1e0744601e Slighty smarter rebuild on page content change 2017-05-11 14:53:52 +09:00
Vincent Prouillet 6f5e008853 Add global get_page tera fn 2017-05-10 12:17:15 +09:00
Vincent Prouillet c989ab607c Add orphan in print notice and fix orphan with assets and url 2017-05-09 21:47:02 +09:00
Vincent Prouillet f3edef2640 Warn about ignored pages 2017-05-09 21:12:10 +09:00
Vincent Prouillet 7099fc8ac2 Add frontmatter flag to not render a section
Useful if you're creating a section only to access it in the index but
do not want a section page for it
2017-05-09 20:39:42 +09:00
Vincent Prouillet 4df9752b54 Pass the <directory, section> to the index 2017-05-09 20:24:44 +09:00
Vincent Prouillet 2d4cba5b2d Make index a section like any other 2017-05-08 19:43:31 +09:00
Vincent Prouillet 5bfe1c213b Clippy run 2017-05-08 17:39:31 +09:00
Vincent Prouillet a3318d4b56 Pagination 2017-05-03 20:00:50 +09:00
Vincent Prouillet 27287a50c3 Do not unwrap on watchers in serve cmd 2017-05-01 18:11:18 +09:00
Vincent Prouillet fc960c1771 Do not populate prev/next on section index rendering 2017-05-01 17:33:20 +09:00
Vincent Prouillet 6e9a9eaa1f Fix prev/next 2017-05-01 17:10:22 +09:00
Vincent Prouillet 566f4e6919 Fix rebuild content logic to include sections 2017-05-01 16:31:23 +09:00
Vincent Prouillet db84411788 Fix link in md headers
Fix #53
2017-05-01 16:04:43 +09:00
Vincent Prouillet b256aaf7d0 Do not append non-sortables pages when not sortable 2017-05-01 15:35:49 +09:00
Vincent Prouillet 9669c3562c Some fix and use toml master branch for now 2017-05-01 14:55:42 +09:00
Vincent Prouillet a0b70bfc7e Allow sorting pages by order and date
Closes #14, #43
2017-05-01 14:46:01 +09:00
Vincent Prouillet 03aa83af6a Make title and description optional in frontmatter 2017-04-28 16:31:11 +09:00
Vincent Prouillet dd9bab3142 Fix XML template overriding 2017-04-28 16:18:18 +09:00
Vincent Prouillet 74be6d9c15 Add asset list in file not name index.md error message 2017-04-25 12:00:55 +09:00
Vincent Prouillet df51e4d8b6 Add a special section for home page 2017-04-22 14:36:02 +09:00
Vincent Prouillet 1c9e078154 Clippy run 2017-04-22 12:35:11 +09:00
Vincent Prouillet fb7b5646ca Only load templates ending by .html
Avoid issues with temp files from some editors
2017-04-22 11:44:57 +09:00
Vincent Prouillet f35ca24893 Fix titles with markdown chars and anchors 2017-04-22 11:40:11 +09:00
Vincent Prouillet 6036927c19 Add more sublime syntaxes
Also fix gutenberg serve that has been broken (not
re-rendering content) for quite some time now.
2017-04-21 16:24:09 +09:00
Vincent Prouillet 73feb41e17 Add missing fields to serialization
Also use Option for Page::summary

Close #38
2017-04-20 12:12:43 +09:00
Vincent Prouillet 32e8c07272 RSS summary and markdown tables/footnotes 2017-04-19 22:16:21 +09:00
Erle Carrara 9acb70442f Copy only modified files in static directory (#27)
Copy only static files that triggered the change notification
2017-04-18 14:07:02 +09:00
Vincent Prouillet 04da527e53 Render anchor link 2017-04-10 19:58:44 +09:00
Vincent Prouillet 22392ff9ed Make relative link work with anchors 2017-04-10 19:58:44 +09:00
Vincent Prouillet b794a44a7f Add id to headers 2017-04-10 19:58:44 +09:00
Vincent Prouillet 7aeebcc981 Add current_url and current_path
To every templates, useful when doing
navigation to know which link is currently
active
2017-04-06 14:40:46 +09:00
Vincent Prouillet afc4a81ebf Fix rss link and description 2017-04-06 11:21:37 +09:00
Vincent Prouillet cf3a8142c2 Try to make windows work + remove musl 2017-04-05 20:31:10 +09:00
Vincent Prouillet b86a30fb78 Add markdown and base64 filters 2017-04-04 16:08:40 +09:00
Vincent Prouillet 3aa2b89451 Allow links to .md pages in pages contents 2017-03-30 14:56:47 +09:00
Vincent Prouillet d03974270d Add some default shortcodes 2017-03-29 23:32:40 +09:00
Vincent Prouillet a6b8caf6de Add shortcodes 2017-03-29 21:45:41 +09:00
Vincent Prouillet 0dcc7846e4 Merge pull request #22 from reillysiemens/lazy_front-matter_regex
Use lazy front-matter regex
2017-03-27 12:21:36 +09:00
Vincent Prouillet f4db5180ba Add sections to index page context 2017-03-27 11:48:13 +09:00
Reilly Tucker Siemens 7c1cecb211 Use lazy front-matter regex
Using a greedy regex could lead to unintended consequences, like the
inability to syntax highlight a unified diff. This resolves issues like
that by using .*? instead of .* so that the closing +++ is matched as
soon as possible.
2017-03-26 19:12:04 -07:00
Vincent Prouillet f44d698844 Add number of pages/section on serve as well 2017-03-25 16:12:58 +09:00
Vincent Prouillet 0aef05ac8e Clippy + appveyor 2017-03-25 15:59:12 +09:00
Vincent Prouillet a02d50c22a Add some colours 2017-03-25 15:52:51 +09:00
Vincent Prouillet 870fbbcd0f Allow selecting a config file other than config.toml 2017-03-25 13:18:15 +09:00
Vincent Prouillet 58208df35a Move highlight decision into the markdown_to_html fn 2017-03-23 14:11:24 +09:00
Vincent Prouillet d05a1559d9 Add prev/next hack 2017-03-23 13:10:00 +09:00
Vincent Prouillet 8b5183d4ad Partial reloading of content on change 2017-03-21 16:57:00 +09:00
Vincent Prouillet b0cc1ac042 Add robots.txt 2017-03-20 21:40:03 +09:00
Vincent Prouillet eb6fa3c314 Override base_url in serve cmd 2017-03-20 19:20:16 +09:00
Vincent Prouillet 540bbcc1b6 Add flags in config to disable tags/categories generation 2017-03-20 18:36:24 +09:00
Vincent Prouillet 9af85ba3e4 Pick highlighting theme from config 2017-03-20 17:30:50 +09:00
Vincent Prouillet f63ec475eb Add categories and tags to sitemap 2017-03-20 12:42:43 +09:00
Vincent Prouillet fd10e77e39 Sort section pages after parsing 2017-03-19 20:34:02 +09:00
Vincent Prouillet 6df68da84b Add tests for categories and tags 2017-03-19 20:20:24 +09:00
Vincent Prouillet d8995c156c Add sections to sitemap 2017-03-19 19:40:31 +09:00
Vincent Prouillet cd70aac065 Clippy run 2017-03-19 19:29:43 +09:00
Vincent Prouillet 7e496878e5 Sections
Parse _index.md files as sections and render them
2017-03-19 19:20:24 +09:00