Commit graph

53 commits

Author SHA1 Message Date
Michael Macias b1ceb3e80e rendering: Avoid prepending URL prefix to links that start with a scheme (#817)
Links that start with a scheme (e.g., `tel:18008675309`) inadvertently
had a URL prefix prepended. Previously, only `mailto:` was handled, but
given the sheer number of [registered URI schemes][uri-schemes], a loose
pattern matcher is used to detect schemes instead.

External links, as identified by the renderer, are now limited to `http`
and `https` schemes.

Fixes #747 and fixes #816.

[uri-schemes]: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml
2020-02-02 17:44:38 -08:00
Marcus Klaas de Vries 4fd5d3f348 Bump pulldown_cmark to version 0.6.0 (#797)
* Bump pulldown_cmark to version 0.6.0

* Rename headers to headings
2019-09-06 23:36:30 +02:00
Vincent Prouillet b396a1bc20 Add --drafts flag + rustfmt 2019-08-24 22:23:08 +02:00
Vincent Prouillet f5c7b44027 Add warning for old style internal link + fix one 2019-07-12 22:56:07 +02:00
Vincent Prouillet 0aee33f9c5 Add very copy/pasty impl of anchor checking 2019-06-06 19:49:40 +02:00
Vincent Prouillet cb962f7a64 Add aliases to sections 2019-06-02 20:21:06 +02:00
Vincent Prouillet fae644cffe Update pulldown_cmark
Close #693
2019-05-29 20:33:36 +02:00
Vincent Prouillet ec61a57841 Use @/ for internal links rather than ./
Close #686
2019-05-27 14:35:18 +02:00
Marcus Klaas de Vries 0d964204c3 Check command global (#683)
* Add check subcommand

* Add some brief documentation for the check subcommand

* Start working on parallel link checks

* Check all external links in Site

* Return *all* dead links in site
2019-05-27 14:05:07 +02:00
Chris Morgan 1a9ab968fe Allow manual specification of header IDs (#685)
Justification for this feature is added in the docs.

Precedent for the precise syntax: Hugo.

Hugo puts this syntax behind a preference named headerIds, and automatic
header ID generation behind a preference named autoHeaderIds, with both
enabled by default. I have not implemented a switch to disable this.

My suggestion for a workaround for the improbable case of desiring a
literal “{#…}” at the end of a header is to replace `}` with `}`.

The algorithm I have used is not identical to [that
which Hugo uses][0], because Hugo’s looks to work at the source level,
whereas here we work at the pulldown-cmark event level, which is
generally more sane, but potentially limiting for extremely esoteric
IDs.

Practical differences in implementation from Hugo (based purely on
reading [blackfriday’s implementation][0], not actually trying it):

- I believe Hugo would treat `# Foo {#*bar*}` as a heading with text
  “Foo” and ID `*bar*`, since it is working at the source level; whereas
  this code turns it into a heading with HTML `Foo {#<em>bar</em>}`, as
  it works at the pulldown-cmark event level and doesn’t go out of its
  way to make that work (I’m not familiar with pulldown-cmark, but I get
  the impression that you could make it work Hugo’s way on this point).
  The difference should be negligible: only *very* esoteric hashes would
  include magic Markdown characters.

- Hugo will automatically generate an ID for `{#}`, whereas what I’ve
  coded here will yield a blank ID instead (which feels more correct to
  me—`None` versus `Some("")`, and all that).

In practice the results should be identical.

Fixes #433.

[0]: a477dd1646/block.go (L218-L234)
2019-05-20 13:08:49 -07:00
Vincent Prouillet c63b7fde44 load_data now defaults to plain type + fix bug with get_taxonomy fn 2019-03-16 10:01:11 +01:00
Vincent Prouillet 3eaf13d49b Update pulldown_cmark 2019-03-15 21:29:51 +01:00
Vincent Prouillet 9bc675f2a7 Fix colocated dates + rustfmt
Closes #607
2019-02-09 19:54:47 +01:00
Vincent Prouillet 9398ab789c Clone-less toc making 2019-01-28 00:34:18 +01:00
Vincent Prouillet 1e2dd9ce03 Update tera to v1 alpha 2019-01-23 19:20:43 +01:00
Peng Guanwen 5ab3466e2b Doc improvements 2019-01-18 22:50:35 +08:00
Peng Guanwen 1dbd8874c0 derive Debug for HeaderIndex 2019-01-16 17:09:23 +08:00
Peng Guanwen c027cd97d6 Footnote is now supported in headers
This fixes #569 .

`markdown_to_html` is heavily refactored, header-related things is
handled in a second pass.
2019-01-12 16:55:52 +08:00
toidiu 09f691fa47 add id to continue reading p tag (#577)
* add id to continue reading p tag
2019-01-07 19:20:19 +01:00
Peng Guanwen 7130616f63 Minor fixes 2019-01-06 19:04:53 +08:00
Peng Guanwen 972aab1ac4 Add emphasis, strong and code support in header 2019-01-05 23:50:30 +08:00
Peng Guanwen 774514f4d4 refactor markdown_to_html
this commit contains two refactors:
- extract custom link transformations into a function.
- separate some trivial markup generation.
2019-01-05 23:50:30 +08:00
Shotaro Yamada 692103bff4 Remove redundant clone 2018-11-19 23:08:34 +09:00
Vincent Prouillet e2c3bb2ce2 Fix shortcodes <-> markdown indentation 2018-11-16 18:19:38 +01:00
Vincent Prouillet 56af4ca7f9 Add page_template to sections
To override all child pages

Closes #397
Tests from PR #434
2018-11-07 19:42:23 +01:00
Vincent Prouillet b7ce4e59fb rustfmt 2018-10-31 08:18:57 +01:00
Michael Plotke 4db629a060 prevent html tags from appearing in the toc 2018-10-18 08:58:50 -04:00
Vincent Prouillet ee3f4dc511 Update to syntect 3 2018-10-09 14:33:43 +02:00
Christian Friedrich Coors 85529186e4 Fix some clippy warnings 2018-09-30 21:15:09 +02:00
Vincent Prouillet 10c7aa0a6a No replacein markdown rendering
Fix #430
2018-09-15 14:24:16 +02:00
Vincent Prouillet b4158921dd Fix email links being checked by link checker
Closes #403
2018-09-10 12:40:31 +02:00
C Jones dabc614fb3 Change highlighting to not include duplicated background colors 2018-09-09 16:42:10 -04:00
Thomas Hurst 5f1f9efe7a Derive debug for markdown::Rendered 2018-08-24 22:37:39 +01:00
Thomas Hurst f2f3bed080 Markdown parsing: prefer Borrowed over Owned where possible
As mentioned in #376
2018-08-24 17:40:26 +01:00
Thomas Hurst c069bfdafa Rework summary handling.
Push summary handling into Markdown parsing, identifying the presence
of one by giving its length in the rendered markup.

Hopefully a better fix for #376.
2018-08-22 17:34:32 +01:00
Nathan Ringo 9df5da4697
Fixes bug with extra syntaxes in non-root section, adds tests. 2018-08-14 02:12:04 -05:00
Nathan Ringo 64fa890aa9
Adds support for loading additional syntaxes via extra_syntaxes. 2018-08-12 02:08:50 -05:00
Vincent Prouillet 84a3193e97 Last fixes 2018-08-03 19:47:39 +02:00
Vincent Prouillet 60a52fd2cc Some intellij reformatting 2018-07-31 15:30:49 +02:00
Vincent Prouillet 3e48ff24b5 Add an external link checker
Close #115
2018-07-16 21:15:50 +02:00
Vincent Prouillet d47ba4aff0 Rebasing + tweaks 2018-06-25 19:13:21 +02:00
Vincent Prouillet f07bb38c37 Fix image in markdown rendering 2018-06-25 18:04:00 +02:00
Vincent Prouillet d69ada09d2 Make permalinks out of co-located images 2018-06-25 18:00:05 +02:00
Vincent Prouillet ef543b3d2b Make co-located asset link permalinks 2018-06-25 18:00:05 +02:00
Vincent Prouillet d39edd8ecb Allow links in headers 2018-06-25 18:00:05 +02:00
Vincent Prouillet 85e13483eb Use the new shortcode parser 2018-06-25 18:00:05 +02:00
Reilly Tucker Siemens e662f73438 Hack fix and new tests for body-shortcodes 2017-10-29 18:02:48 -07:00
Vincent Prouillet 7d7efdd6ea Handle markdown parser potentially splitting shortcodes 2017-10-23 14:18:05 +02:00
Vincent Prouillet ca5bdc8f3c Do not ignore shortcodes without args 2017-10-23 10:49:23 +02:00
Vincent Prouillet c2b190513e Refactor markdown header rendering 2017-09-27 23:09:13 +09:00