Commit graph

529 commits

Author SHA1 Message Date
Anthony Fok
75c61236f1 Move import jekyll functions to import_jekyll.go
Also rename import_test.go to import_jekyll_test.go
2015-12-02 03:39:10 -07:00
Anthony Fok
666ddd2377 Enable dirname and filename completion for more flags
These flags are:

 * --source (-s), --cacheDir, --destination (-d) and --logFile
 * --completionfile and --dir.
2015-12-02 02:24:49 -07:00
Anthony Fok
afbc18c09a Bump min_version to 0.15 for hugo new theme 2015-12-01 10:27:36 -07:00
Tatsushi Demachi
e989468341 Make noTimes command flag work
Hugo command provides "noTimes" flag but it doesn't affect synced files
timestamp regardless of whether the flag is specified or not.

This fixes it by adding a flag check and overwriting configuration if it
is specified.

Fix #1583
2015-12-01 10:01:44 -07:00
Tatsushi Demachi
6c8103144f Copy static dir files without theme's static dir
Hugo command doesn't copy site's "static" directory files to "public"
directory if a specified theme doesn't have "static" directory because
theme's "static" directory checking always returns an error.

This fixes it by just showing a warning message about theme's "static"
directory absence and not skipping following processes.

Fix #1655
2015-12-01 10:01:21 -07:00
Anthony Fok
50b5d0af29 Support setting target directory in hugo gen man
Fixes #1627
2015-11-28 07:32:02 -07:00
Steve Francia
f045d7a611 Change the license to Apache 2.0 2015-11-23 22:16:36 -05:00
Andrew Brampton
c3931ef748 Add PygmentsOptions option
This allows default pygments settings to be used, if none are explictly set per shortcode.

Fixes #1260
2015-11-23 17:50:54 +01:00
Bjørn Erik Pedersen
3d09de8910 Restructure the gen commands
Fixes #1603
2015-11-23 16:51:12 +01:00
Bjørn Erik Pedersen
831e936846 Improve "watching for ..." logging 2015-11-23 16:32:06 +01:00
Anthony Fok
098a0c819a Add commands/genman.go to autogenerate man pages
Fixes #1369
2015-11-22 18:54:44 +01:00
Anthony Fok
5c7234015d Copyedit long help message in commands/server.go 2015-11-21 06:31:10 -07:00
Steve Francia
97d0689580 Hugo server watch by default 2015-11-20 10:14:24 -05:00
Bjørn Erik Pedersen
3f5ddd5242 Revert "Disable render-to-memory on Windows"
This reverts commit 91e0c2b1fe.

This should now work.
2015-11-19 19:48:40 +01:00
Bjørn Erik Pedersen
91e0c2b1fe Disable render-to-memory on Windows
See #1586
2015-11-18 23:10:56 +01:00
Bjørn Erik Pedersen
4679fbee41 Do not rebuild on extra Spotlight filesystem events
Write and rename operations are often followed by CHMOD.
There may be valid use cases for rebuilding the site on CHMOD,
but that will require more complex logic than this simple conditional.

On OS X this seems to be related to Spotlight, see:
https://github.com/go-fsnotify/fsnotify/issues/15

A workaround is to put your site(s) on the Spotlight exception list,
but that may be a little mysterious for most end users.

So, for now, we skip reload on CHMOD.

This small commit will be a 100% improvement for most OS X-users.

Fixes #1587
2015-11-18 22:59:32 +01:00
spf13
df824fa31b Hugo server renders and serves from memory by default (30%+ improvement) 2015-11-16 22:00:11 -05:00
spf13
e1618e9d2f permit the notimes flag on hugo server 2015-11-16 21:56:14 -05:00
spf13
cb48425f2d No double slash when destination set to '/' 2015-11-16 21:56:14 -05:00
spf13
ef0b9b511c Handle sync (file copy) errors better) 2015-11-16 21:56:14 -05:00
Anthony Fok
18a29964fa Fix trivial typos in code 2015-11-16 07:15:17 -07:00
spf13
a50133ff38 Improve the server usage output 2015-11-12 10:23:41 -05:00
Bjørn Erik Pedersen
3bbd02a1ca Print parse errors from Viper 2015-11-11 22:47:24 +01:00
spf13
bccf957e36 Add support for dynamic reloading of config file when watching 2015-11-09 23:31:52 -05:00
Arun Sori
83e46555dd Disable directory listing for Hugo file server
Fix #1400
2015-10-31 09:23:30 -06:00
Bjørn Erik Pedersen
9d603ce88a Show usage when new site creation fails 2015-10-17 14:08:45 +02:00
Bjørn Erik Pedersen
ab7223df8c Improve error message on new site command 2015-10-17 14:05:48 +02:00
Safonov Nikita
5e97cf3020 Add force flag
If flag is passed the site will be created inside non-empty folder
only if there are no existent folders or config with the same name
hugo creates.

Resolves: #1163
2015-10-17 13:58:43 +02:00
Kato Kazuyoshi
3a412543f6 The missing static directory shouldn't fail the build
The lack of the directory would be worth to warn, since the directory is
created by "huge new site". But it doesn't have to fail the build.

This change fixes #759.
2015-10-17 13:50:37 +02:00
Andy Williams
0f438d1852 Create minimal default.md in archetype file
fixes #315
To fix the cast error, create a minimal default.md in the archetype
folder.
2015-10-15 16:36:13 -04:00
Bjørn Erik Pedersen
72f14a8202 Apply project wide go fmt 2015-10-12 20:47:06 +02:00
Bjørn Erik Pedersen
63d9859c09 Expose canonifyURLs as a command flag
Needed by the theme site.
2015-10-10 10:53:13 +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
b25ba8b095 Let Cobra do the usage error logging
Fixes #1472
2015-10-05 20:26:49 +02:00
Bjørn Erik Pedersen
b9aaa0079b Improve command text for import command 2015-10-05 11:25:42 +02:00
Bjørn Erik Pedersen
ac1e3c3cc0 Capital J in Jekyll 2015-10-04 23:26:18 +02:00
coderzh
9a2f6c62a6 Hugo import from jekyll
usage: hugo import jekyll jekyll_root_path target_path

Implemented:
 * Create new hugo site
 * Create config.yaml
 * Convert all markdown contents.
 * Copy all other files and folders to static

Fixes #101
2015-10-04 20:02:53 +02:00
Bjørn Erik Pedersen
218554e363 Rename NormalizeHugoFlagsFunc to NormalizeHugoFlags
It IS a func.
2015-10-02 06:48:02 +02:00
Anthony Fok
b29ca44c6e Show both baseURL and bind address in hugo server output
Fixes #1426
2015-09-15 23:12:01 -06:00
Bjørn Erik Pedersen
f5308da320 Move isThemeVsHugoVersionMismatch to /commands
To prevent potential package cycles in /helpers.
2015-09-14 17:31:39 +02:00
Anthony Fok
d05b297e61 Add helpers.NormalizeHugoFlagsFunc() to handle flag name changes
It currently handles --baseUrl to --baseURL, and --uglyUrls to --uglyURLs.

Special thanks to Eric Paris (@eparis) for writing the
"normalized name" support in Cobra, and for showing us
how it is used in Kubernetes.

See Issue #959
2015-09-13 05:20:14 -06:00
digitalcraftsman
fd7b315572 Add a 404.html file if a new theme is created 2015-09-08 11:29:04 -04: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
Anthony Fok
4047ca5c3c Search current directory for config file by default
As of 2015-08-16, Viper no longer searches the CWD
for config file by default to avoid unintended surprises,
but Hugo relies on the original behaviour.

Fixed by calling

    viper.AddConfigPath(".")

at the appropriate place.

See https://github.com/spf13/viper/issues/73 for more information.

Fixes #1363
2015-08-19 00:36:22 -06:00
Anthony Fok
29c9a40a8d Implement hugo --theme=[Tab][Tab] bash completion
using the new BashCompSubdirsInDir annotation in spf13/cobra.
2015-08-11 15:08:10 +02:00
Anthony Fok
7555e364d0 Print feedback for hugo genautocomplete 2015-08-09 17:59:44 +02:00
Anthony Fok
c69835daba Print feedback for hugo gendoc 2015-08-09 17:58:01 +02:00
Anthony Fok
fee5519129 Use spf13/pflag's new SetAnnotation helper
And make our bash completion code more compact.
2015-08-09 17:56:15 +02:00
Bjørn Erik Pedersen
b05a292c21 Revert "Fix some Go code doc issues"
This reverts commit de7dd70bbc.

Broke the code fence feat.
2015-08-07 20:09:40 +02:00
Bjørn Erik Pedersen
de7dd70bbc Fix some Go code doc issues 2015-08-06 22:58:10 +02:00
Anthony Fok
f2ab0b2608 Improve formatting of Hugo command descriptions
Trying to make them look good both in the terminal (`hugo help [command]`)
and in the web browser (http://gohugo.io/commands/).  :-)
2015-08-04 03:19:57 -06:00
Anthony Fok
e64e571b67 Bump hugo new theme template min_version to 0.14 2015-08-04 02:59:57 -06:00
Scott C Wilson
72ecd0cdc7 Ignore non-presence of "layouts" directory in watch logic
Fixes #691
2015-07-25 21:50:24 +02:00
Scott C Wilson
c00a1fcb7f Add a check for the setting of watch flag in config file
Fixes #1074
2015-07-20 14:20:07 +02:00
Bjørn Erik Pedersen
354192d2b8 Log missing theme as FATAL
See #1234
2015-07-13 10:38:28 +02:00
Scott C Wilson
029cdb68f5 Checks to ensure theme directory, if specified, exists
See #1234
2015-07-13 10:31:59 +02:00
Andrew Brampton
c139c6e1ef Add support for GitHub-flavoured markdown code fences for highlighting
This commit adds a new PygmentsCodeFences config option (default false), which if true will allow GitHub style backtick code fences around code, which will then be rendered by Pygments.

For example:

``` language
your code
```

can be used instead of {{< highlight language >}}your code {{< /highlight >}}.

Fixes #362
2015-07-08 08:12:52 +02:00
Bjørn Erik Pedersen
033a13e10e Fix watcher detecting changes as static when no theme
There have been some changes to the ´helpers.GetThemesDirPath()´ so it now returns an empty string when no theme.

This is correct, but it broke the watch service (at lest on OSX), as `strings.HasPrefix("", "somestring") evaluates to true somehow, and content changes are incorrectly branded as static.

There are other issues in there, but that will come later ...

See #1236
2015-06-28 19:27:28 +02:00
Bjørn Erik Pedersen
4b7c1342fd Make removal of accents in taxonomy and section paths optional
And default off.

Fixes #1180
2015-06-16 19:25:48 +02:00
bep
be38acdce7 Add PreserveTaxonomyNames flag
Before this commit, taxonomy names were hyphenated, lower-cased and normalized -- then fixed and titleized on the archive page.

So what you entered in the front matter isn't necessarily what you got in the final site.

To preserve backwards compability, `PreserveTaxonomyNames` is default `false`.

Setting it to `true` will preserve what you type (the first characters is made toupper for titles), but normalized in URLs.

This also means that, if you manually construct URLs to the archive pages, you will have to pass the Taxonomy names through the `urlize` func.

Fixes #1180
2015-05-31 20:30:53 +02:00
bep
be2842da18 Fix formatting in hugo command description 2015-05-21 20:05:29 +02:00
bep
be831d7409 Fix CLI command description for the top level
And regenerate the commands doc.
2015-05-21 13:30:11 +02:00
spf13
fd5cf9ac8d Better organization of loading defaults 2015-05-20 18:50:32 -04:00
spf13
a584ff207b Stop Viper from leaking across many of the tests (now tests pass regardless of order tested) 2015-05-20 02:21:21 -04:00
bep
599d1b9786 Add gendoc command
Using the new, great auto-doc in Cobra.

This commit also contains a current result of that command added to a commands section in docs.

Fixes #1136
2015-05-19 10:57:21 -04:00
bep
befa26b152 Remove trailing spaces in completionfile flag 2015-05-16 19:52:09 +02:00
bep
be9224d720 Add Bash completion
Add a new command, genautocomplete, wich generates a Bash completion script (zsh and others later).

The script is by default written to `/etc/bash_completion.d/hugo.sh`; this can be set in `--completionfile=/some/file`.

Fixes #438
2015-05-16 18:04:59 +02:00
Andre R
84f4c21d4a Fix datePublished to publishdate 2015-05-16 15:58:37 +02:00
bep
bee9718ac1 Do not shout about missing baseURL if relativeURLs is set 2015-05-16 15:42:15 +02:00
bep
beaa8b1bca Add support for URLs relative to context root
Setting `RelativeURLs` to `true` will make all relative URLs in the site *really* relative.

And will do so with speed.

So:

In `/post/myblogpost.html`:

`/mycss.css` becomes `../mycss.css`

The same in `/index.html` will become:

`./mycss.css` etc.

Note that absolute URLs will not be touched (either external resources, or URLs constructed with `BaseURL`).

The speediness is about the same as before:

```
benchmark                    old ns/op     new ns/op     delta
BenchmarkAbsURL              17462         18164         +4.02%
BenchmarkAbsURLSrcset        18842         19632         +4.19%
BenchmarkXMLAbsURLSrcset     18643         19313         +3.59%
BenchmarkXMLAbsURL           9283          9656          +4.02%

benchmark                    old allocs     new allocs     delta
BenchmarkAbsURL              24             28             +16.67%
BenchmarkAbsURLSrcset        29             32             +10.34%
BenchmarkXMLAbsURLSrcset     27             30             +11.11%
BenchmarkXMLAbsURL           12             14             +16.67%

benchmark                    old bytes     new bytes     delta
BenchmarkAbsURL              3154          3404          +7.93%
BenchmarkAbsURLSrcset        2376          2573          +8.29%
BenchmarkXMLAbsURLSrcset     2569          2763          +7.55%
BenchmarkXMLAbsURL           1888          1998          +5.83%

```

Fixes #1104
Fixes #622
Fixes #937
Fixes #157
2015-05-16 00:11:44 +02:00
bep
be3a3506c4 Allow forward slashes in Hugo new on Windows
Fixes  #1133
2015-05-12 18:12:58 +02:00
bep
bef0f281d1 Make sure that complete server URL is logged on startup
Fixes #1113
2015-05-09 08:03:06 +02:00
Joel Scoble
b4871787f0 add undraft command 2015-05-08 22:18:51 -04:00
bep
d4acacd4f5 Section menu for the lazy blogger
The current menu system works great, but is too much work if all you want is a simple menu with the sections as menu items, and having these menu items connected to the pages in a way that enables setting the correct menu item as active for both the section lists and the pages itself.

This commit adds a new option `SectionPagesMenu' which, if set, will create a new menu with that name with all the sections as menu items. The pages in the sections will behave as "shadow members" of these section items as `blogpage.HasMenuCurrent "sectionmenu" $sectionmenuitem` will return true.

If a menu item with the same `identifier` is defined in site config, *that* item will take precedence.
2015-05-08 21:28:19 -04:00
Dana H. P'Simer
fd08e16ec8 Add RSSUri to specify the name of the RSS file 2015-05-07 22:20:00 +02:00
Liam Bowen
2bfa9fb72b Make server bind interface configurable.
Bind by default to 127.0.0.1. Previously it always bound to all interfaces.

Always have log message display that the server is available on the
interface to which it is bound, instead of the baseUrl.

Fixes #1097
2015-05-07 22:04:40 +02:00
bep
bee521c68f Try to make it more visible that you have to set baseUrl 2015-05-02 00:24:47 +02:00
bep
be29c0bfbd Print ERROR on theme vs Hugo version mismatch
Fixes #1070
2015-04-28 20:39:25 +02:00
bep
bebb1b9d5d Fix spelling mistake in comment 2015-04-07 15:17:24 +02:00
bep
be31b9e287 Add custom Windows mousestrap message
Fixes #1022
2015-04-07 13:01:11 +02:00
bep
be57ec5331 Fix the last Go Vet error 2015-04-03 22:18:08 +02:00
Dylan MacKenzie
99a18b21fc List directories being watched when server is run
Fixes part of issue 1030. Previously hugo only listed the content
directory as being watched. Now we list all files being watched
according to `commands.getDirList()`. We also introduce a RemoveSubpaths
function and test in the helpers module to reduce noise in the command
line output by not showing subdirectories of ones already being watched.

For example, instead of:
`Watching for changes in $HOME/blog/content`
We get:
`Watching for changes in
$HOME/blog/{data,content,layouts,static,themes/my-theme}`
2015-04-02 12:52:08 +02:00
bep
beaf5db3ff Use helpers.FilePathSeparator const 2015-03-28 21:46:06 +01:00
Nuno Antunes
61a02c4df8 Fix section name guessing on Windows 2015-03-28 21:43:55 +01:00
bep
3273fce044 Refactor Hugo version
Put version handling into the helpers package so it can be used by many,
and split version and suffix to make it possible to calculate the next Hugo version.
2015-03-18 12:23:13 +01:00
Anthony Fok
8b8fb417ae More initialism corrections (golint)
Thanks to @bep's new, brilliant helpers.Deprecated() function,
the following functions or variables are transitioned to their
new names, preserving backward compatibility for v0.14
and warning the user of upcoming obsolescence in v0.15:

 * .Url → .URL (for node, menu and paginator)
 * .Site.BaseUrl → .Site.BaseURL
 * .Site.Indexes → .Site.Taxonomies
 * .Site.Recent → .Site.Pages
 * getJson → getJSON
 * getCsv → getCSV
 * safeHtml → safeHTML
 * safeCss → safeCSS
 * safeUrl → safeURL

Also fix related initialisms in strings and comments.

Continued effort in fixing #959.
2015-03-18 11:30:37 +01:00
bep
fbcda03029 Do not ERROR-log missing /data dir
Fixes #930
2015-03-12 21:44:36 +01:00
Anthony Fok
67df33f500 Correct initialisms as suggested by golint
First step to use initialisms that golint suggests,
for example:

    Line 116: func GetHtmlRenderer should be GetHTMLRenderer

as see on http://goreportcard.com/report/spf13/hugo

Thanks to @bep for the idea!

Note that command-line flags (cobra and pflag)
as well as struct fields like .BaseUrl and .Url
that are used in Go HTML templates need more work
to maintain backward-compatibility, and thus
are NOT yet dealt with in this commit.

First step in fixing #959.
2015-03-11 21:55:00 +01:00
Anthony Fok
b9b70fb6b0 Skip directories like node_modules from the watchlist
A local `node_modules` directory can easily contain
tens of thousands of files, easily exhausting the tiny
default max open files limit especially on OS X Yosemite,
in spite of the fact that  Hugo already had code in place
since February 2014 to try to raise the maxfiles ulimit.

Also skip `.git` and `bower_components` directories.

The file watching situation will improve when
https://github.com/go-fsnotify/fsevents become ready,
but until then, we will be thrifty.  :-)

Thanks to @chibicode for the suggestion.

See #168 for continued discussions.
2015-03-10 16:55:23 -06:00
Anthony Fok
81695717e6 Switch from fsnotify.v0 to fsnotify.v1 API (watcher)
Fixes #357
See also #761
2015-03-10 09:59:55 -06:00
Anthony Fok
634548b9af Add new min_version field to theme.toml template 2015-03-10 09:49:42 -06:00
bep
e685dfc0c6 Apply some more Golint suggestions 2015-03-06 18:07:50 +01:00
bep
224a2ddf3c Fix some Go Lint errors 2015-03-06 15:58:14 +01:00
bep
103ea842f8 Fix errors reported by Go Vet 2015-03-06 15:25:19 +01:00
bep
967d001ebe Use osext on GitHub
Fixes #922
2015-02-23 18:12:19 +01:00
René Jochum
d2e022f2a7 Suppress errors for symbolic links witch point to a file. 2015-02-17 19:18:28 -08:00
Cyrill Schumacher
32d645d900 Fix bug where running hugo without options causes to create
$TMPDIR/hugo_cache/ directory.
2015-02-17 12:14:39 -05:00
Cyrill Schumacher
10c2b41b85 Add --ignoreCache CLI flag with description "Ignores the
cache directory for reading but still writes to it" as @spf13
suggested.
2015-02-17 12:14:39 -05:00
Cyrill Schumacher
5e2d3d2e10 Merge to stay up to date with current dev
Feature: GetJson and GetJson in short codes or other layout files.
For more details please see: http://cyrillschumacher.com/2014/12/21/dynamic-pages-with-gohugo.io/
2015-02-17 12:14:39 -05:00
Anthony Fok
9bf223e584 Quote strings in hugo config output
Also, use ` = ` to separate keys and values
if metaformatdata is "toml".
2015-02-17 11:51:43 +01:00
Anthony Fok
54e417681d Make "Indexes" the alias and "Taxonomies" the canonical name
... rather than the other way around.
Discovered thanks to the new `hugo config` command.
2015-02-16 13:16:17 -07:00
bep
c14e7b10d0 Add 'config' command to list site configuration
Fixes #871
2015-02-14 18:33:47 -05:00
spf13
d6f81c7346 Put back static theme conditional 2015-02-14 18:30:15 -05:00
Anthony Fok
d10e05f2e3 [commands/new.go] Update theme.toml etc.
- Add copyright years and author to the top of the file

- Write the current year from time.Now() to LICENSE.md

- Correct comment regarding `os.MkdirAll(p, 0777)`

- In createConfig(), split the `map[string]string` definition into
  multiple lines to facilitate future expansion.  Also add a trailing
  slash to sample "baseurl" definition.

- Update theme.toml template to match that listed at
  https://github.com/spf13/hugoThemes/blob/master/README.md#themetoml

  See #883 for an equivalent `struct` implementation
2015-02-13 15:00:17 -07:00
bep
1217632307 Remove now superfluous conditional 2015-02-12 00:09:04 +01:00
bep
ebcc1e6699 Add data files support in themes
If duplicate keys, the main data dir wins.

Fixes #892
2015-02-11 20:24:56 +01:00
Anthony Fok
664fd99135 Change "ctrl+c" to "Ctrl+C" 2015-02-11 01:11:50 -07:00
Erlend Klakegg Bergheim
773812de6f Reads data files inside data/ and makes data available in .Site.Data
Fixes #476.

Conflicts:
	hugolib/site.go
2015-02-09 13:17:13 +01:00
bep
5e34ae6199 Log ERROR on missing baseurl
Fixes #877
2015-02-06 10:39:54 +01:00
bep
5df85770fc Add memprofile to pprof benchmark 2015-02-05 15:48:09 +01:00
Naoya Inada
d1364ffb68 Fix defaults for Blackfriday 2015-01-31 22:06:50 +01:00
Dan Hersam
523f38a9a8 Fix for issue 839 and 490 on Windows
The paths were seen as changed but not static because of the backslashes in
ev.Name. Once the backslashes were added, I discovered that the JSON
sent to livereload was invalid and failed to work because it had backslashes.

Hence the code to replace the backslashes from the path to make them work
in JSON and for the URL.

With this fix, changes to a stylesheet are shown on the page, and if it's a
single file that changed, it's reflected in the browser without reloading the whole
page.
2015-01-30 14:18:17 +01:00
Dan Hersam
2d8e15a565 Version uses binary name instead of hugo
On Windows the binary name is hugo.exe and running hugo version results in
this error:
    GetFileAttributesEx D:\Dev\Go\gopath\bin\hugo: The system cannot find the file specified.

This fixes that error and allows the binary name to be something other
than hugo on any OS.
2015-01-28 09:43:12 +01:00
bep
fb594fc6e0 Set detault for Paginate to 10
10 is a better default than 0, since no paginator pages will be created unles referenced by a `.Paginator`.

See #750
2015-01-26 15:26:19 +01:00
bep
37445bc6aa Add pagination support for home page, sections and taxonomies
Two new configuration properties, `Paginate` (default `0`) and `PaginatePath` (default `page`) are added.

Setting `paginate` to a positive value will split the list pages for the home page, sections and taxonomies into chunks of size of the `paginate` property.

A `.Paginator` is provided to help building a pager menu.

There are two ways to configure a `.Paginator`:

1. The simplest way is just to call `.Paginator.Pages` from a template. It will contain the pages for "that page" (`.Data.Pages` will (like today) contain all the pages).
2. Select a sub-set of the pages with the available template functions and pass the slice to `.Paginate` : `{{ range (.Paginate (where .Data.Pages "Type" "post")).Pages }}`

**NOTE:** For a given Node, it's one of the options above. It's perfectly legitimate to iterate over the same pager more than once, but it's static and cannot change.

The `.Paginator` contains enough information to build a full-blown paginator interface.

The pages are built on the form (note: BLANK means no value, i.e. home page):

```
[SECTION/TAXONOMY/BLANK]/index.html
[SECTION/TAXONOMY/BLANK]/page/1/index.html => redirect to  [SECTION/TAXONOMY/BLANK]/index.html
[SECTION/TAXONOMY/BLANK]/page/2/index.html
....
```

Fixes #96
2015-01-26 12:59:37 +01:00
Naoya Inada
407e80a9ab Add site-wide/per-page [blackfriday] extensions option 2015-01-26 09:55:37 +01:00
Anthony Fok
eb686352b1 Add site-wide/per-page [blackfriday] fractions option
Make Blackfriday's `HTML_SMARTYPANTS_FRACTIONS` option
user-configurable.  Defaults to `true` as before.  See
discussions at:

http://discuss.gohugo.io/t/any-way-to-disable-smart-fractions/328

Thanks to @bjornerik and @spf13 for laying the groundwork
making it easy to expose Blackfriday's underlying configurable
options.
2015-01-24 20:57:40 +01:00
Anthony Fok
60c6faa317 Revert "Try to fix mysterious test failures on Travis"
This reverts commit 71fe85df9b.

See https://github.com/PuerkitoBio/purell/pull/5
for the cause of the mysterious `go test -v ./...` failure.
2015-01-22 17:46:47 -07:00
bep
71fe85df9b Try to fix mysterious test failures on Travis 2015-01-23 00:36:47 +01:00
Derek Perkins
ac6b86aff8 Added top level .Hugo variable with version, commit and generator information + docs
Added Version, CommitHash and BuildDate to hugolib/hugo.go and used it in build
Removed commitHash and buildDate from commands/version.go and used hugolib vars
Removed getDateFormat function from commands/version.go

Conflicts:
	README.md
	docs/content/templates/variables.md
2015-01-19 01:22:23 +01:00
Anthony Fok
508788e694 Update TestFixUrl() to expect BaseUrl to have trailing /
See #793, #799
2015-01-16 03:16:36 -07:00
Anthony Fok
1cbdd3e59d Ensure that BaseUrl used in hugo server ends with /
Fixes #793, #799
2015-01-15 18:02:19 -07:00
Anthony Fok
208086ebff Add ".swx" suffix to file watcher's ignore list
When a user uses Vim to open a file, it briefly creates a
".filename.md.swx" file which needlessly triggers a website rebuild.

According to a comment in Vim's src/memline.c:

    /*
     * on MS-DOS compatible filesystems (e.g. messydos) file.doc.swp
     * and file.doc are the same file. To guess if this problem is
     * present try if file.doc.swx exists. If it does, we set
     * buf->b_shortname and try file_doc.swp (dots replaced by
     * underscores for this file), and try again. If it doesn't we
     * assume that "file.doc.swp" already exists.
     */
2015-01-14 19:29:56 -07:00
bep
2b46f3e51e Do not exit server watch on error
Before this commit any error (typically a YAML typing error in front matter) would exit server on rebuild when running `hugo server -w`.

This is very annoying as it doesn't give you any chance to fix the typo other than doing a manual restart.

This commit fixes that by just logging these errors when these rebuilds happen when changes are detected.

Fixes #781
2015-01-09 12:40:48 +01:00
Jacob Gillespie
c0f54aefe3 Rename to plainIdAnchors 2015-01-05 21:00:22 +01:00
Jacob Gillespie
4adf58cce7 Group both options under Blackfriday: documentIDAnchor 2015-01-05 21:00:22 +01:00
Jacob Gillespie
b7716948bc Add config options: disable footnote anchor prefix and header ID suffix
New config options:

* DisableFootnoteAnchorPrefix - bool - default: false
* DisableHeaderIDSuffix - bool - default: false
2015-01-05 21:00:22 +01:00
Nathan Youngman
c6f4b09f65 always use http scheme for localhost
fixes #758
2015-01-01 23:57:29 +01:00
bep
fbf8bcacc4 Add configurable support for angled quotes
The flag `HTML_SMARTYPANTS_ANGLED_QUOTES` was added to Blackfriday on Black Friday. This configures rendering of double quotes as angled left and right quotes (&laquo;
&raquo;).

Typical use cases would be either or, or combined, but never in the same
document. As an example would be a person from Norway; he has a blog in both
English and Norwegian (his native tongue); he would then configure Blackfriday
to use angled quotes for the Norwegian section, but keep them as reqular
double quotes for the English.

This commit adds configuration support for this new flag, configuration that can be set in the site configuration, but overridden in page front matter.

Fixes #605
2014-12-26 14:31:55 +01:00
Anthony Fok
e3433e6afb Fix long descriptions of benchmark and serve commands 2014-12-24 04:40:48 -07:00
Tatsushi Demachi
7436829b82 Use current working dir as WorkingDir instead of hugo executable's dir 2014-12-12 11:33:52 -05:00
Austin Ziegler
ec4b6c03a8 Trigger an editor after hugo new.
- Trigger permanently with NewContentEditor in config.{toml,yaml,json}.
- Trigger on an individual basis with --editor.
2014-12-12 11:33:52 -05:00
Ahsanul Haque
b11838da3f Commented commands package 2014-12-12 00:05:02 +06:00
bep
e6541c45ab ERROR-log on symbolic links
filepath.Walk does not follow symbolic links.
There's no easy fix for that outside of Go, so the best we can do for now is to give notice to the end user by ERROR log statements.

This commit also fixes a related panic situation in GenerateTemplateNameFrom when the layout dir was a symbolic link.

Fixes #283
2014-12-10 20:32:39 +01:00
bep
3a8c12418a Add timezone to buildDate 2014-12-09 11:42:07 +01:00
Austin Ziegler
27840932a5 Always use RFC3339 for version date format.
Fixes #695 reported by @synful.

- No longer tries to load a configuration.
- Because of this the version tests are no longer necessary.
2014-12-08 21:41:30 +01:00
Joel Scoble
0eeaa4c84e fix version command so that it will work with all supported config formats and added tests 2014-11-24 17:16:34 -05:00
spf13
92a3372a3f Added a new command hugo list drafts and hugo list future 2014-11-19 16:24:30 -05:00
bep
cb3576b6de Fix broken convert
The front matter convert-feature didn't work. It placed converted content in the wrong directory.

This commit fixes this by doing the smallest and safest change possible; the path logic here should maybe
be revisited and generalized.

Fixes #643
2014-11-18 10:17:01 -05:00
Joel Scoble
99463f6adf converted path 2 filepath 2014-11-13 22:39:07 -05:00
Joel Scoble
05300fde1d add support for fsync's noTime flag 2014-11-13 22:32:27 -05:00
bep
fdae09070b Params map has string as key
Related to issue #540 and commit 3c22ca7c84456b19f2a017719b1533902594e672
2014-11-13 12:41:00 -05:00
Kartik Singhal
f3e9cbc7bd Fix #593 problem with hugo -w 2014-11-02 00:44:55 -04:00
Austin Ziegler
c07b10bba9 Output a timestamp with hugo server --watch
Per a [discussion][thread] on discuss, I have implemented one possible
way to do this.

[thread]: http://discuss.gohugo.io/t/output-a-timestamp-with-hugo-watch/213
2014-11-02 00:29:11 -04:00
Joel Scoble
8e368e25b1 540: add support for build information output to version command 2014-11-01 22:56:48 -04:00
bep
8cb435f1f4 Fix redirect-loop for Hugo server
An extra slash was added to the path if baseUrl had a sub-directory, causing infinite redirect loop in Go's HTTP server.

Fixes #510
2014-11-01 22:49:26 -04:00
Marcelo Glezer
2b412d4ac7 fixed server reporting Web Server is available at https://localhost:1313 when server always serve http 2014-11-01 22:33:43 -04:00
spf13
141f3e19e0 Migrating Hugo to Afero for filesystem calls. 2014-11-01 11:57:29 -04:00
spf13
20467e36b4 Improved error message when config file not found. 2014-10-16 20:20:39 -04:00
spf13
5dfc1dedb8 Big refactor of how source files are used. Also added default destination extension option. 2014-10-16 20:20:09 -04:00
Mantas
fb82f00f9d handle https prefixes in baseUrl 2014-10-07 17:18:45 -04:00
Oscar Bolmsten
b98c2088f8 Minor fix to error message when copying static files 2014-10-07 17:17:51 -04:00
Austin Ziegler
e68e7ef96f Configure footnote rendering.
- The config file can provide FootnoteAnchorPrefix, which will be used
  by blackfriday when rendering to HTML. A value of `q:` has the effect
  of making the anchor for a footnote `[^footie]` be `fn:q:footie`. The
  default is `""`.

- The config file can provide FootnoteReturnLinkContents, which will be
  used by blackfriday when rendering to HTML. A value of `^` has the
  effect of making the return link be `^` instead of `[return]`.
2014-10-07 16:43:33 -04:00
Kartik Singhal
1614b82452 Correct desc for hugo new command 2014-10-02 13:47:25 -04:00
Kartik Singhal
879e90dca7 Switch to new hompage 2014-10-02 13:39:59 -04:00
spf13
26e44506e9 adding memstat option to server 2014-09-22 09:45:05 -04:00
bep
df489b4712 Enable soft livereload of CSS and images
Prior to this commit a dummy JavaScript filename was sent to LiveReload when changing a static file (CSS, image etc.), forcing a full browser reload of the page.

This commit fixes this by sending the relative file path of the changed static resource, enabling partial live reloading for CSS- and image-changes. If more than one static file happens to end up in the same changeevent-batch, it will fall back to do a full refresh. To enable this logic, the change events with names ending with ".goutputstream*" is now filtered out as temporary.

Changes in dynamic content behaves like before.

Issue #490
2014-09-11 16:58:06 -04:00
Tatsushi Demachi
d9964451a5 More error messages at syncing static contents 2014-09-08 11:57:06 -04:00
spf13
7b3df2386d Bumping Version to 0.13-DEV 2014-09-03 11:28:40 -04:00
spf13
1363128962 Bumping Version 2014-09-01 10:05:05 -04:00
spf13
4281cbfa34 LiveReloadDisabled works with Watching properly. Fixed #335. 2014-08-25 13:49:53 -04:00
Nate Finch
a31edb3388 Support subdir in baseurl.
Mainly this was a change to helpers.MakePermalink, but to get the local server to run correctly,
we needed to redirect the path of the request from /foo to /.  In addition, I added tests for the
server's code for fixing up the base url with different config file & CLI options.
2014-08-25 11:51:51 -04:00
Joel Scoble
b10dea2955 added evaluation for toml for metadataformat date handling 2014-08-18 12:01:50 -04:00
Franklin Wise
5ae2832713 errors not propagating 2014-08-18 11:43:55 -04:00
Kevin Burke
657e4a46e8 it's/its 2014-07-26 23:43:21 -07:00
spf13
bf9595aa24 Fixed #328. Config file set appropriately. 2014-07-01 10:59:58 -04:00
Kristoffer Grönlund
35d04671d3 Add PluralizeListTitles option (default true) to allow disabling use of the inflect package 2014-06-30 15:21:09 -04:00
spf13
ca18cfef24 Setting new version 2014-06-03 14:39:46 -04:00
spf13
2b90779f0f Actually bumping the version 2014-05-29 18:45:21 -04:00
spf13
b9bba2b977 Updating Convert to handle dates properly for yaml and json
Fix bug with YAML & JSON with handling dates with 'new' and 'convert'
2014-05-29 18:45:19 -04:00
spf13
c502f078bc Add handling for publishDates (which will be ignored if in the future). Fixed #260 2014-05-29 00:48:40 -04:00
spf13
7a8b754cad Fixed #301. LiveReload works on any port now. 2014-05-28 19:01:24 -04:00
spf13
aeb06c7bcc Rename chrome to partials (in builder) 2014-05-27 18:30:25 -04:00
spf13
9173022ea7 Set verbose to Info level 2014-05-27 18:29:55 -04:00
spf13
e799100395 Fix bug so watch works on theme directories as well 2014-05-27 18:29:15 -04:00
spf13
6b8244ba67 new site works in an empty directory now 2014-05-19 09:16:40 -04:00
spf13
be1ee22032 Proper integration of live reload with automatic injection 2014-05-16 17:49:27 -04:00
spf13
60ed5bda2b Live reloading is working! Still need to incorporate cleanly. 2014-05-16 11:48:59 -04:00
spf13
296d218e67 Better handling of when the specified port is already in use 2014-05-15 17:41:03 -04:00
Dato Simó
0053be979a Correctly print server URL when base-url is specified in the command line
When running hugo server like:

    $ hugo server -s docs -b myhostname

the printed output now directs to http://myhostname:1313 instead of
(invariably) http://localhost:1313.

As per server(), BaseUrl is never empty, and the required value is always
found in Viper.
2014-05-09 23:27:21 -04:00
LK4D4
2194cc77de Add pygmentsstyle and pygmentsuseclasses options
Fixes #204

Conflicts:
	commands/hugo.go
2014-05-09 23:20:11 -04:00
Vincent Batoufflet
6049c3a10c Update Sitemap default value syntax 2014-05-09 23:11:37 -04:00
Vincent Batoufflet
2a902bbca6 Add Sitemaps config values handling 2014-05-09 23:11:33 -04:00
Vincent Batoufflet
f8e675d064 Add base Sitemap support 2014-05-09 23:11:27 -04:00
spf13
6b9d4a93da Adding new commands (new site [path], new theme [name]) 2014-05-08 18:30:58 -04:00
spf13
28ffb92b36 Adding the new command and the create package 2014-05-02 01:06:01 -04:00
spf13
ef2ad4d91f More feedback where errors happen during metadata conversion 2014-05-02 01:02:49 -04:00
spf13
3395e1cb92 Adding a command that enables converting site to a different metadata format.
Doing this revealed some bugs in the encoding functionality in some of the underlying libraries.
Please backup before using.
2014-05-01 13:23:32 -04:00
spf13
41adafbc3e Updated to work with the latest viper 2014-04-10 14:24:18 -04:00
spf13
8afff8c7c4 Preliminary Theme Support 2014-04-10 08:10:12 -04:00
spf13
c0a046cbfb Added internal rss.xml template and config option to turn off rss creation 2014-04-09 17:45:34 -04:00
spf13
93bcddebb3 Renamed Indexes to Taxonomies. Old template and config parameters still work. 2014-04-09 17:15:04 -04:00
spf13
af1acfbce7 writing indexes under more configuration conditions 2014-04-07 23:29:35 -04:00
spf13
9a83f7a01b Fixing all tests to pass with new Viper Config 2014-04-07 11:44:51 -04:00
spf13
62dd1d45c1 Hugo config abstracted into a general purpose config library called "Viper".
Hugo casting now in own library called "cast"
2014-04-05 01:40:33 -04:00
spf13
e50b9d8ac1 Adding support for logging & verbose logging. Consolidation of error handling. Integration of jWalterWeatherman library. Fixed #137 2014-03-31 13:23:34 -04:00
spf13
3a0ab5a3dd Bumping version to v0.11-dev 2014-03-04 22:03:31 -05:00
spf13
0a775650b5 bumping version for 0.10 2014-03-01 11:55:05 -05:00
Mike Keesey
2540d884d8 Fixing issues go vet reports. 2014-03-01 09:56:17 -05:00
spf13
dc068ccb87 Fix imports so hugo builds on darwin 2014-02-21 18:33:46 -05:00
mattn
8ebb85f1f7 Fix build 2014-02-18 18:40:55 -05:00
spf13
75c260fa1c Only change rLimit on OSX (where it is needed). Fixed #194 2014-02-06 00:12:05 -05:00
spf13
3e87d7a86e Automatically increase the process ulimit to maximum available. fixes #168. 2014-02-01 12:51:11 -05:00
spf13
ae9cc09b04 Adding the ability to check the system limit on open files (important for watching large sites) 2014-02-01 12:50:17 -05:00
Tibor Vass
6dd2e9a49a gofmt all go code 2014-01-29 18:03:35 -05:00
Vincent Batoufflet
ff9f6e1b2a Fix panic with HTTP serve initialization problems. 2014-01-28 23:44:43 -05:00
Krisztián Szabó
5550c4148e Added append-port flag 2013-12-28 22:01:36 -05:00
William King
e5aa08ff0c If baseurl is set then print that on the command line, else leave as default of localhost
Conflicts:
	commands/server.go
2013-12-28 14:02:10 -05:00
Egon Elbre
8d80f9b39e Added batching behavior for page building.
Quite often file watcher gets many changes and each change triggered a
build. One build per second should be sufficient. Also added tracking for
new folders.
2013-12-28 13:46:52 -05:00
Egon Elbre
e46148f948 Fix static file change detection on Windows.
Fixed windows uses different filepath separator. The filepath.ToSlash
shouldn't be used, because it can cause errors in filepath suffix and prefix
testing since "c:\a" isn't a prefix of "c:/a/b/c".
2013-12-28 13:45:38 -05:00
Caleb Spare
6da23f7449 Gofmt
Command: `gofmt -l -s -w .`
2013-12-16 17:40:10 -05:00
Matt Way
1abc2f0b86 properly use non-localhost BaseUrl in server command 2013-12-16 17:39:59 -05:00
spf13
aedfa6a2c4 Version bump 0.9 2013-11-15 21:43:46 -05:00
Michael D. Johas Teener
50d9046b64 remove initialization loop error from compile
copied HugoCmd to a local var, initialize that variable in the init
func, and then use the local var in the InitializeConfig func.
2013-11-12 17:36:23 -06:00
spf13
6017599a3c restored behavior of respecting config values unless set by command flags. fixed #116 2013-11-12 09:38:43 -05:00
Noah Campbell
23a5711d26 Fix benchmark panic
Need to initialize the Config with InitializeConfig().
2013-11-01 20:36:11 -07:00
spf13
23a711a29a Hugo updated to work with latest cobra 2013-11-01 18:43:41 -04:00
Noah Campbell
789aa6ad76 Removing check for directory: static, layouts
Removed these checks so a single file in content can generate a site.

For example, given a site with a content directory and an index.html,
running hugo -s dir will generate a project without any more input.
2013-10-31 16:06:24 -07:00
spf13
b580a25d1f Better error handling when rendering error found when in watch mode
In watch mode it should continue to watch for changes, in any other mode it should exit with a -1 error code so can check for success when scripting
2013-10-25 18:03:14 -04:00
spf13
cd71eb7389 Watching doesn't built site 2x on write (ignores rename events). Also ignores temporary files written by editors. 2013-10-24 16:45:24 -07:00
spf13
f5fda80486 simplified buildSite & better error handling around it 2013-10-09 19:14:26 -04:00
spf13
0318f7c149 Clean up server & build site logic. Fixed #94 2013-10-09 18:53:46 -04:00
spf13
e6ace71fec server command now builds prior to serving 2013-10-09 18:24:40 -04:00
spf13
be7ba0e98f server defaults to localhost unless overridden by command line flags 2013-10-04 16:03:13 -04:00
spf13
dcfcbac589 Enabling Nitro ('--stepAnalysis') again. Fix #58 2013-10-03 09:44:45 -04:00
spf13
18f2b82658 Switching to the rjson library which is more friendly to human generated json. 2013-10-01 22:45:24 -04:00
spf13
48e1068e3e fixed #85 2013-09-30 22:40:15 -04:00
spf13
3ae8dda203 Restoring build and watch functionality 2013-09-30 22:38:32 -04:00
spf13
94d7fe52f8 Change the interface to use commands and flags instead of just flags.
Better organization of main (controller style) code.
2013-09-29 02:10:29 -04:00