Commit Graph

377 Commits

Author SHA1 Message Date
Steve Klabnik 38b3516b60 Implement links in section headers.
This project already had a transitive dependency on regex; let's use it.

This isn't the most efficient solution, but it should be fine. It ends
up doing five full scans of the text. There's probably an easier way but
I'm mostly just trying to get this to work for now.

This also implements the same algorithm that rustdoc does for generating
the name for the link.

Fixes #204
2017-02-16 17:07:17 -05:00
Corey Farwell 95fd292b4f Address warnings found by rust-clippy.
https://github.com/Manishearth/rust-clippy
2017-02-16 16:55:28 -05:00
Corey Farwell 152ebba762 Bump serde, serde_json, and handlebars crates. 2017-02-15 23:31:05 -05:00
Matt Brubeck f2b87f7944 Factor common io error handling out of renderer 2016-12-31 23:12:38 -08:00
Matt Brubeck 6b2572e78d Simplify some as_str error handling code 2016-12-31 18:41:59 -08:00
Matt Brubeck fe287a1eca Code cleanup: Remove unnecessary .remove() calls
`BTreeMap::insert` will replace any existing value, so there's no need
to remove the old value first.
2016-12-31 18:33:17 -08:00
Matt Brubeck 3a0cfc87df Add current chapter title to handlebars context 2016-12-31 10:34:36 -08:00
Gambhiro f67ae7c71a update dependency versions 2016-12-23 08:10:42 +00:00
Gambhiro 85d8e2ebd3 use theme_path key in book.json when given 2016-12-07 14:22:32 +00:00
Mathieu David d2f3eb5007 remove unused imports 2016-11-03 02:05:35 +01:00
Mathieu David 67aee5c192 Switch from rustc_serialize to serde. Closes #18 2016-11-03 01:58:42 +01:00
Gambhiro db11ff27f4 use warn 2016-08-14 14:40:08 +01:00
Gambhiro b584f6eb9c use macros from the log crate, issue #151 2016-08-14 13:34:02 +01:00
Mathieu David 5350d62591 Update all dependencies to latest version 2016-08-01 14:06:08 +02:00
Ian Thompson b0e5f375ba Make sure <ul><li> and </li></ul> are balanced 2016-07-16 10:23:22 -04:00
Mathieu David 6bc088db6e (Refactor) Move the Render trait into mod.rs instead of submodule 2016-04-27 14:19:59 +02:00
Mathieu David 15d6227a11 Attempt to fix #119 replace `\` with `/` in paths, so that Windows also uses `/` as separator (ugly hack) 2016-04-25 17:02:47 +02:00
Boris-Chengbiao Zhou e861880f95 Implement Serve feature 2016-04-02 05:20:46 +02:00
Mathieu David 15d26befcc Refactor: Move extern crate definitions to lib.rs 2016-03-27 18:22:17 +02:00
Mathieu David 74fff81e4b Refactor: Move fs related functions from utils into their own submodule 2016-03-17 22:41:00 +01:00
Mathieu David ad0794a0bd Add a rustfmt config and run rustfmt on the code base 2016-03-17 22:31:28 +01:00
Jesse Stricker 330b1ad55d Add description config option 2016-02-25 14:32:49 +01:00
Jesse Stricker f508db6113 Add favicon support to theme 2016-02-22 17:17:07 +01:00
Mathieu David 78e1897b47 Remove code that has better equivalent in std
Path_Ext has been stabilized in the Standard Library, the temporary copy I had can go.

I found a fs::create_dir_all method that does exactly what create_path was doing, but better... create_path is thus replaced with that.
2016-01-03 13:02:04 +01:00
Mathieu David 2a7463c45b #29 Add a way to escape {{#playpen ... } using a backslash in front: \{{#playpen ... }} 2016-01-01 01:40:37 +01:00
Mathieu David 0ac0301d72 Continue #29, Rust files can now be loaded with {{#playpen file.rs}}, they will be displayed as other code snippets included with markdown backticks except they have a playpen css class 2015-12-31 19:25:02 +01:00
Mathieu David 38b2dee17e Continue #29 Check that the rust file exists and read to string 2015-12-31 14:14:56 +01:00
Mathieu David 0cb234de5d Add tests for find_playpens 2015-12-31 12:02:25 +01:00
Mathieu David ee4a7fb35c Start implementing #29 support for embedding playpen, implemented the function that parses the markdown to find playpen links 2015-12-30 22:40:23 +01:00
Mathieu David e40b293336 Fix #70 render inline code blocks in the sidebar 2015-12-30 00:46:55 +01:00
asolove 5b289c1303 Fix 0ffd638 with smarter way to join with linebreaks. 2015-12-27 14:24:42 -07:00
asolove 0ffd638904 Add newlines back in to generated index.html files. 2015-12-27 14:10:13 -07:00
Mathieu David 4ca6693a48 Update handlebars from 0.11.x to 0.12.x 2015-12-15 18:58:34 +01:00
Mathieu David 103048c0d1 Merge branch 'master' of https://github.com/azerupi/mdBook 2015-09-17 19:45:36 +02:00
Mathieu David b7bcf2e246 Files other than .md are now copied to the output dir Fixes #52 + Added max-width in css for images 2015-09-17 19:45:06 +02:00
mdinger b164e0709b Fix many minor warnings found by clippy 2015-09-16 22:48:01 -04:00
Mathieu David 195bfd2f7f Merge pull request #48 from mdinger/dark_theme
Multiple themes
2015-09-14 17:49:29 +02:00
Mathieu David 5a3155aba7 Fix #50 base url sometimes not correct for index.html 2015-09-14 17:45:30 +02:00
mdinger 872f9ea5e6 Add tomorrow night as dark code highlighting theme 2015-09-14 05:08:48 -04:00
Mathieu David 13e5e862ce Local fallback for Font Awesome #46 2015-09-13 20:03:34 +02:00
Mathieu David 95dfff008c Local fallback for jquery #46 2015-09-13 19:16:11 +02:00
Mathieu David a050d9c4ad Big refactoring, now using enum for different book items (Chapter, Affix, Spacer, ...) Closes #9 2015-09-11 20:52:55 +02:00
Mathieu David 82a774c90e prevent page break in code blocks + force wrap in pre tags (because you can't scroll...) 2015-09-05 17:39:00 +02:00
Mathieu David d03ae79765 Added a page containing the whole book for printing purposes, closes #41 + cleaning root path 2015-09-05 17:26:32 +02:00
Mathieu David be7c0bd059 Clean up of the Renderer trait, render now borrows the book instead of the config and the book items... 2015-08-31 15:24:42 +02:00
Mathieu David 10d756eff0 Fix #40 where next helper returned a link to the current chapter instead of the next 2015-08-12 19:22:53 +02:00
Mathieu David 0932bfd576 Big clean-up, reduced the unwrap's to 2 in the library part! Closes #36 The unwraps where replaced with more diverse error messages #14 2015-08-11 22:55:51 +02:00
Mathieu David 835c61c7f3 Some clean-up + initial implementation of '--theme' flag for init. Still needs some work 2015-08-11 16:13:41 +02:00
Mathieu David bf114d7e21 Removed the sub module from utils and put the functions directly in the utils module + docs #30 2015-08-06 23:04:19 +02:00
Mathieu David a0040733e9 Fixed rust example in doc + some tweaks for html validation 2015-08-06 14:09:55 +02:00
Mathieu David 05ab31d882 Fix #34 2015-08-06 13:58:27 +02:00
Mathieu David 01369ea42f Checked the API, moved handlebars theme handling to the theme module to expose it to every renderer. Closes #28 2015-08-05 22:35:26 +02:00
Mathieu David 58d18d467c Fixed a bug where custom theme was appended to default theme + Changed syntax highlighting theme to something lighter, the dark theme did not fit the light style of the page 2015-08-05 19:14:03 +02:00
Mathieu David 90719f721b Added syntax highlighting with highlight.js Closes #31 + Added a new chapter to the docs #30. 2015-08-05 18:28:59 +02:00
Mathieu David 2c22d11bfd It's now possible to use a custom theme. Add a theme directory in your src and selectively overwrite the files you want to customize. Closes #6 2015-08-04 17:58:09 +02:00
Mathieu David 4ead44457a Added a new macro 'output' that can be disabled by a feature 2015-08-04 17:13:24 +02:00
Mathieu David 1095e7c773 Clean-up handlebars renderer, move some parts to utils module 2015-08-04 16:52:10 +02:00
Mathieu David bca6a7aa13 [Clean-up] Reorganize structure in handlebars renderer 2015-08-04 15:15:36 +02:00
Mathieu David 842196b91c Cleaned up the handlebars helpers, it's a lot more customizable because the user can put whatever template he wants inside and I just expose link and name of previous / next chapter. JavaScript part is removed. #26 2015-08-04 12:52:32 +02:00
Mathieu David a77fe94c02 Started to clean the 'previous' and 'next' handlebars helpers #26 But got stuck, waiting for a response 2015-08-03 22:09:26 +02:00
Mathieu David 22280bbb16 Add debug! macro that can be activated using the "debug" feature. #19 2015-08-03 18:06:01 +02:00
Mathieu David c64824a18c Added author and dest field in book.json, fixed bug when output directory did not exist. Closes #7 2015-08-03 14:23:32 +02:00
Mathieu David 5b11907a56 Added navigation icons + javascript code to hide them when there is no previous or next. Closes #12 2015-08-01 14:18:25 +02:00
Mathieu David c64f3ac973 Added handlebars helpers for navigation, need to find a place where to put them on the page #12 2015-07-31 18:34:43 +02:00
Mathieu David 31f638eae3 Add active class to currently viewed chapter in the sidebar. Closes #20 2015-07-31 15:06:08 +02:00
Mathieu David 1a8c2259e5 Split the handlebars renderer in his own module because it was becoming large 2015-07-30 15:38:21 +02:00
Mathieu David 5bd1385212 Added a utils module for general / common functions 2015-07-30 15:20:55 +02:00
Mathieu David c63ca25e43 Clean up: Removed uneeded function because the same functionality is present in std 2015-07-30 13:49:49 +02:00
Mathieu David 1111ff3ceb Fixes 2 bugs with relative paths. Fixed by injecting a variable path_to_root into the json data for the handlebars template. Fixes #17 2015-07-29 23:32:01 +02:00
Mathieu David 6a4b8d51b4 create a copy of the first rendered page and use that as index.html... Closes #16 2015-07-29 22:26:13 +02:00
Mathieu David ecdcc31e9e Added function to clean links before inserting in toc 2015-07-29 12:10:12 +02:00
Mathieu David a55a676bbe support empty links in rendered html 2015-07-29 01:40:48 +02:00
Mathieu David 9a9fadac77 Forgot to update level variable, fixed now. 2015-07-29 01:06:46 +02:00
Mathieu David f500b4a836 Rough implementation for handlebars helper to display toc correctly, probably needs a little bit of cleaning... Url in toc doesn't work yet. It needs to be cleaned before './url' -> '/url' and 'url' -> '/url' 2015-07-29 00:57:47 +02:00
Mathieu David 4203b5b1c4 added markdown with 'pulldown-cmark', added basic styling, render of the toc is still not completely done 2015-07-28 21:01:13 +02:00
Mathieu David be0bfa7170 Split of the creating of the JSon object into it's own function 2015-07-19 14:02:21 +02:00
Mathieu David 4d4f35ecba First big step for the html renderer, it reads an handlebars template and creates the files from SUMMARY.md respecting the source folder structure 2015-07-19 00:08:38 +02:00