Commit graph

679 commits

Author SHA1 Message Date
Tatsushi Demachi
2b3b90a6df Add test for Hugo hanging up with empty content
This adds a test for the issue #1797 and its fix in 68e2e63.
2016-02-08 20:55:19 +09:00
Bjørn Erik Pedersen
05c8bccf84 hugolib: Add test for parseSitemap 2016-02-07 15:56:56 +01:00
Bjørn Erik Pedersen
0f6c8439b9 Add missing menu tests 2016-02-07 13:43:42 +01:00
Bjørn Erik Pedersen
c462440dcd Add Page tests for simple methods 2016-02-07 13:32:08 +01:00
Bjørn Erik Pedersen
66570d2fb3 Add Node tests for simple methods 2016-02-07 13:18:16 +01:00
Bjørn Erik Pedersen
75044c199f Add menu sort tests 2016-02-07 12:34:43 +01:00
Bjørn Erik Pedersen
7c3dceeaed Fix buggy Menu.Limit() 2016-02-06 22:53:59 +01:00
Bjørn Erik Pedersen
a95426d40c Remove Printf in test 2016-02-06 22:19:58 +01:00
Bjørn Erik Pedersen
88a320fb2d Fix buggy Pages.Limit
Also add missing page sort related tests.
2016-02-06 22:10:36 +01:00
Bjørn Erik Pedersen
318a984526 Apply gofmt -s 2016-02-06 13:09:52 +01:00
Tatsushi Demachi
68e2e63d92 Fix Hugo hang up with empty content directory
Site.ReadPagesFromSource returns nil chan error value when a site
content directory is empty but its receiver expects to be passed
something error values via the channel.

This fixes it by returning a channel which will be immediately closed.

Fix #1797
2016-02-03 08:19:02 +09:00
Anthony Fok
57eebbf243 Use FEEDBACK instead of ERROR for empty home page warning
jww.ERROR.Println() seems to have become too verbose,
making the warning message intended for new users
a lot less readable.
2016-01-30 17:39:17 +08:00
Bjørn Erik Pedersen
5def6d9aee Make the watch logger less chatty 2016-01-28 15:33:41 +01:00
Steve Francia
d08e4c87a7 Rewrite commentary on static event handling 2016-01-26 14:56:42 -05:00
Steve Francia
9413cf8499 Handle self rename operations gracefully 2016-01-26 14:33:08 -05:00
Steve Francia
7e196a8294 Handle remove & rename source operations incrementally 2016-01-26 14:30:28 -05:00
Steve Francia
e01c340915 A single file can be replaced in site.Files 2016-01-26 14:29:37 -05:00
Steve Francia
45e5091428 Process only the source content that has changed 2016-01-26 14:28:53 -05:00
Steve Francia
9f3796a31d Read/reread individual source content files
next is incremental conversion
2016-01-26 14:26:23 -05:00
Steve Francia
ca6ca4f4fc Separate handling content, data and template changes
Data & Templates reading independently
Need to work on page source reading and other source files
2016-01-26 14:25:39 -05:00
Steve Francia
bcc42c0549 Separate reading source and processing source operations 2016-01-25 14:41:47 -05:00
Bjørn Erik Pedersen
3526afc773 Fix some Go vet errors 2016-01-16 00:28:48 +01:00
Bjørn Erik Pedersen
78f9bf2444 Add one more menu test
See #1774
2016-01-14 17:30:05 +01:00
Bjørn Erik Pedersen
ab70e6f52f Add menu test for external URL
See #1774
2016-01-14 15:14:21 +01:00
Bjørn Erik Pedersen
1ce184b7f1 Add some p-wrap shortcode tests
Deliberetely made to pass, even if they (probably) should not.

See #1642
2016-01-09 16:11:38 +01:00
Bjørn Erik Pedersen
48870fef2e Group vars in paginator
It's easier to read.
2016-01-08 22:55:19 +01:00
Ivan Fraixedes
9a6dc6c791 Add embeded template for robots.txt 2016-01-05 23:36:16 +01:00
Daniel Martí
7c5a1fd16b Replace *bytes.Buffer with io.Writer in rendering
Found via github.com/mvdan/interfacer.
2016-01-05 23:32:03 +01:00
Bjørn Erik Pedersen
9ff36c5a8f Add some trailing newline shortcode tests
See #1753
2016-01-04 23:48:05 +01:00
Alexandre Bourget
dcad066025 Small refactor: don't call p.Permalink() for all aliases, call it only
once and only if necessary.
2016-01-04 12:41:06 -05:00
Gerben Castel
6cdb8109cf Allow renaming of sitemap.xml 2016-01-04 12:28:49 -05:00
Sven Dowideit
0f6b334b67 Source file based relative linking
ala GitHub repository markdown for both md files and non-md files

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2016-01-01 15:23:11 -05:00
Sven Dowideit
b78f13b041 Write a simplistic test for site.refLink
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2016-01-01 14:50:37 -05:00
digitalcraftsman
47587321d9 Add themesDir option to configuration
themesDir can be used to change the default
path of the themes folder.

Fixes 1556
2016-01-01 14:46:40 -05:00
Bjørn Erik Pedersen
7a5a52f468 Clean up the loop counter variables confusion in TestPageCache
See #1601
2015-12-19 15:38:28 +01:00
Bjørn Erik Pedersen
9edc58a03a Fix failing template related tests in Go 1.6
Fixes #1470
2015-12-18 15:28:43 +01:00
Bjørn Erik Pedersen
8cea428802 Fix data race in non-renderable pages
Fixes #1601
2015-12-18 11:24:35 +01:00
Bjørn Erik Pedersen
0c01fef321 Fix 2 data races in TestPageCache
See #1601
2015-12-18 09:35:14 +01:00
Bjørn Erik Pedersen
9569d116cb Duplicate p.Description in Params map
Fixes #1484
2015-12-12 22:20:26 +01:00
Anthony Fok
8509727fe8 Add copyright header to that source files that don’t have one.
See #1646
2015-12-10 15:19:38 -07:00
Bjørn Erik Pedersen
e445c35d6a Fix copyright headers in source files
Still need to add some missing headers and an AUTHORS file.

See #1646
2015-12-07 19:57:01 +01:00
Anthony Fok
f13db9328b Sort and remove "" from "Available templates" list 2015-12-06 23:23:54 -07:00
gunnaraasen
d35d82060f Remove transformation of menu URLs
Fixes #1239
2015-12-06 15:25:23 +01:00
Bjørn Erik Pedersen
69c28985ea Fix broken Highlight test 2015-12-03 12:37:48 +01:00
Bjørn Erik Pedersen
3f0f7eed68 Improve error handling in commands
Cobra, the CLI commander in use in Hugo, has some long awaited improvements in the error handling department.
This enables a more centralized error handling approach.

This commit introduces that by changing all the command funcs to `RunE`:

* The core part of the error logging, usage logging and `os.Exit(-1)` is now performed in one place and that one place only.
* The usage text is now only shown on invalid arguments etc. (user errors)

Fixes #1502
2015-12-02 07:07:05 -07:00
Anthony Fok
0d1d33d7f3 Print error when /index.html is zero-length
Also print warning (in verbose mode) for other empty pages.

See #947
2015-12-01 21:03:17 -07:00
Anthony Fok
f8302768c7 Run go fmt hugolib/site.go 2015-12-01 21:01:19 -07:00
Steve Francia
f045d7a611 Change the license to Apache 2.0 2015-11-23 22:16:36 -05:00
Kato Kazuyoshi
99acbb2eb2 Permalink on Node and Page should be of string
This change fixes #1384.
2015-11-23 17:41:29 +01:00
Marek Janda
5838420aa1 Move blackfriday site-wide config loading to NewBlackFriday() 2015-11-23 17:35:36 +01:00
Cameron Moore
fde47c5eb9 Add shortcode IsNamedParams property
It would be helpful to know whether a shortcode was called with positional or
named parameters.  This commit adds a boolean `IsNamedParams` property to the
`ShortcodeWithPage` struct.
2015-11-23 17:17:18 +01:00
Bjørn Erik Pedersen
6fa7f2ac3e Avoid multiple locks for shortcode template
Fixes #1600
2015-11-21 23:29:58 +01:00
Bjørn Erik Pedersen
c5f40e8b8b Improve RW-locking of template in shortcode handling
See #1599
2015-11-21 21:57:26 +01:00
Bjørn Erik Pedersen
58c446f562 Fix recently introduced new data race in the shortcode handling
Fixes #1599
2015-11-21 20:03:18 +01:00
Cameron Moore
3abb2675c5 Add RSSLink to SiteInfo 2015-11-20 23:38:15 +01:00
Cameron Moore
05c29ad593 Return error if shortcode template.Tree is nil
If a shortcode template fails to compile, the template will be non-nil, but
template.Tree will be nil which caused a panic.
2015-11-20 23:34:30 +01:00
Bjørn Erik Pedersen
b08d9f26ae Make replaceShortcodeTokens rewrite the input slice
Currently a `[]byte` copy is returned. In most cases this is the safe thing to do, but we should just modify/grow the slice as needed.

This is faster and consumes less memory:

```
benchmark                             old ns/op     new ns/op     delta
BenchmarkReplaceShortcodeTokens-4     7350          4419          -39.88%

benchmark                             old allocs     new allocs     delta
BenchmarkReplaceShortcodeTokens-4     5              1              -80.00%

benchmark                             old bytes     new bytes     delta
BenchmarkReplaceShortcodeTokens-4     4816          1152          -76.08%
```

This commit is aso a small spring cleaning of duplicated code in the different `PageConvert` methods.

Fixes #1516
2015-11-17 18:24:17 +01:00
Anthony Fok
18a29964fa Fix trivial typos in code 2015-11-16 07:15:17 -07:00
spf13
5c1204c24b simplify rssuri logic 2015-11-15 11:05:16 -05:00
Bjørn Erik Pedersen
53a5932fa4 Get rid of allocation in the BenchmarkReplaceShortcodeTokens itself
So we can see the real numbers.

See #1516
2015-11-13 22:37:07 +01:00
Tatsushi Demachi
139be09f17 Fix GroupByParam to return original param string
Page.GroupByParam function internally uses Page.GetParam to get a
parameter value for a key of a page group but now Page.GetParam returns
a lowercase character string every time. It has no need to using
lowercase character string as a group key value and it confuse a
function user.

This fixes it to keep and return an original parameter string as a group
key value.

Fix #1564
2015-11-10 14:57:03 +01:00
Bjørn Erik Pedersen
570713a478 Use Identifier as last sort resort for default menu sort
Fixes #1562
2015-11-09 21:02:21 +01:00
digitalcraftsman
9dbb6dc50d Add internal Google Analytics template
This commits also adds the GoogleAnalytics
variable to insert the tracking code.

Fixes #1424.
2015-11-04 17:11:38 -05:00
Bjørn Erik Pedersen
5bda0398e7 Export Page.Layout
And at the same time rename and unexport the badly named `Layout()` func. That method is not very usable outside the package.

Fixes #1539
2015-11-02 17:24:50 +01:00
Kato Kazuyoshi
698019a552 Disable LiveReload when Hugo is not running as a server
This change fixes #1410.
2015-10-15 16:36:14 -04:00
Nathan Youngman
bea7b2e202 Fix typo in shortcode tests 2015-10-15 18:00:10 +02:00
Bjørn Erik Pedersen
078fad49e2 Add Param(key) to Node and Page
This  is a convenience method to do lookups in Page's (Page only)  and Site's Params map (Page and Node), in that order.

Fixes #1462
2015-10-12 06:11:01 +02:00
coderzh
823334875d WordCount and Summary support CJK Language
* add global `hasCJKLanguage` flag, if true, turn on auto-detecting CJKLanguage
 * add `isCJKLanguage` frontmatter to force specify whether is CJKLanguage or not
 * For .Summary: If isCJKLanguage is true, use the runes as basis for truncation, else keep as today.
 * For WordCount: If isCJKLanguage is true, use the runes as basis for calculation, else keep as today.
 * Unexport RuneCount

Fixes #1377
2015-10-07 15:14:57 +02:00
Bjørn Erik Pedersen
dcd9c69aa8 Use filepath as the last default sort key for pages 2015-09-30 05:43:11 +02:00
Sven Dowideit
a1e32439fb Allow for any (short) line begining or ending with html comment
Fixes #1428
2015-09-25 18:32:32 +02:00
Anthony Fok
e71bef79e5 Validate aliases to prevent directory traversal etc.
Add validation before creating aliases:

 * Prevent creating aliases outside webroot (public/ dir)
 * Skip empty "" alias
 * Skip "/" → "/index.html", which gets overwritten anyway
 * Refuse to create Windows-invalid filenames on Windows;
   warn on other platforms
 * In case of invalid aliases, after skipping them,
   return `err = nil` to prevent the error passing up
   all the way to `hugolib.Render()` and causing Hugo to abort.
 * Update alias tests.

Fixes #701: Add support for alias with whitespace
Fixes #1418: Add validation for alias
2015-09-13 18:08:42 +02:00
Anthony Fok
29aa9baecd Complete the Url-to-URL transition in tests
See #959
2015-09-13 05:21:24 -06:00
coderzh
0e1fd78fb2 WordCount Summary support UTF-8 string 2015-09-12 15:41:17 +02:00
chrongzhang
52d94fa675 Add config option "disablePathToLower"
Enabling this prevents lowercasing of the path/url.

Fixes #557
2015-09-01 15:26:02 +02:00
Jeff Hodges
49fe04c0bd Correct check of published boolean 2015-08-31 05:26:46 +02:00
Jeff Hodges
311593bff0 Add undocumented published setting to front matter
A new "published" setting that is the opposite of "draft" is added and
left intentionally undocumented.

This setting comes from jekyll and eases the transition to hugo
greatly. We leave it undocumented so that folks don't rely on it, but
also don't shoot themselves in the foot during a jekyll migration.

The foot-shooting occurs if they have only a few documents that were
drafts ("published: false") in the jekyll version of their site and
don't notice that they were published in the migration to hugo.
2015-08-30 20:40:56 +02:00
Bjørn Erik Pedersen
04b4c996ac Reset Scratch for 404
The 404 pages etc. need a better solution, but fix this issue for now.

Fixes #1336
2015-08-07 20:30:01 +02:00
Bjørn Erik Pedersen
0f1fb8c7d8 Avoid panic in shortcode param handling
Fixes #1337
2015-08-07 20:08:23 +02:00
Bjørn Erik Pedersen
35bb72c83e Do not panic on index out of range in shortcode.Get
Fixes #1335
2015-08-07 19:21:26 +02:00
Anthony Fok
b0416e9bef Strip trailing whitespace in code 2015-08-04 11:59:32 -06:00
Marek Janda
4bed69629e Add map support to scratch 2015-08-02 17:23:36 +02:00
Anthony Fok
252ea96d1d Remove deprecated fields and methods for v0.15
Special thanks to @bep for his guidance and
for making sure all of the Hugo themes get updated.

Fixes #1172
2015-07-30 13:33:38 +02:00
Bjørn Erik Pedersen
43891e3994 Always use the template provided in page.Render
Fixes #1306
2015-07-29 01:19:29 +02:00
Bjørn Erik Pedersen
3037d200cb Fix inconsistent front matter handling
Fixes #768
2015-07-26 15:28:56 +02:00
Ryan Clarke
18d69d7f8c Fix periods in taxonomies create bad paths
Fixes #1188
2015-07-25 21:43:20 +02:00
Bjørn Erik Pedersen
c1a2b7a102 Replace strings.Compare
Which is a Go 1.5 func.

See #1299
2015-07-25 17:38:13 +02:00
Bjørn Erik Pedersen
40efc8677a Fix sort test and title sort
See #1299
2015-07-25 17:22:46 +02:00
Bjørn Erik Pedersen
36e0d005ed Fall back to link title for default page sort
Fixes #1299
2015-07-25 16:34:35 +02:00
Bjørn Erik Pedersen
28020f866b Move apply before cache put
It just looks better.

See #1293
2015-07-24 00:28:21 +02:00
Bjørn Erik Pedersen
a9c5133a77 Fix data races in sorting and Reverse
The custom sort functions used from the templates had some subtle data race- and related issues,
especially when used in the single page template.

This commit fixes this by making copies and protect the read and writes with a RWMutex.

The results are cached (it will typically be invoked *number of pages* times with exactly the same data).

This is, not surprisingly, also faster:

```
benchmark                           old ns/op     new ns/op     delta
BenchmarkSortByWeightAndReverse     14228         491           -96.55%

benchmark                           old allocs     new allocs     delta
BenchmarkSortByWeightAndReverse     1              0              -100.00%

benchmark                           old bytes     new bytes     delta
BenchmarkSortByWeightAndReverse     32            0             -100.00%
```

Fixes #1293
2015-07-23 12:43:57 +02:00
Bjørn Erik Pedersen
ea6ae769dc Fix broken test 2015-07-21 21:12:03 +02:00
Bjørn Erik Pedersen
5cf0aa2fc0 Add benchmark for sort and reverse 2015-07-21 21:08:20 +02:00
Edward Vielmetti
c8477c4f6e Fix typo: "taxononomy" -> "taxonomy" 2015-07-19 19:36:23 +02:00
Bjørn Erik Pedersen
1a94148d06 Add paginator support for page groups
Fixed #1274
2015-07-18 14:53:52 +02:00
Valere JEANTET
2c22a8b79a fix TestHomeNodeMenu test
Signed-off-by: Valere JEANTET <valere.jeantet@gmail.com>
2015-07-14 21:31:47 +02:00
Valere JEANTET
247574976c Allow page.HasMenuCurrent() and node.HasMenuCurrent() to proceed with multi-level nested menus
Currently HasMenuCurrent only process the first 2 levels.
2015-07-14 21:31:47 +02:00
Bjørn Erik Pedersen
a2fa3895ee Fix log message in test 2015-07-12 19:27:29 +02:00
Bjørn Erik Pedersen
3663828f5e Optimize RuneCount
Do not create it unless used.

See #1266
2015-07-12 11:28:19 +02:00
Bjørn Erik Pedersen
77c60a3440 Add RuneCount to Page
Fixes #1266
2015-07-12 11:05:37 +02:00
delputnam
9b3d0cf5bf Added missing "Social" section to SiteInfo
I could be wrong here, but it looks to me like .Site.Social.facebook is used in tpl/template_embedded.go, but the variable is never set. I've added a line to initializeSiteInfo to map the info from config into this variable.
2015-07-02 19:26:01 +02:00