Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow output formats to be permalinked #5706

Closed
bep opened this Issue Feb 21, 2019 · 2 comments

Comments

Projects
None yet
2 participants
@bep
Copy link
Member

bep commented Feb 21, 2019

Currently, when you do .RelPermalink on a page, you will get a link to the main output format (normally HTML).

We're re-implementing output formats for 0.55. Most of the output format design still makes good sense, luckily. But when we now get a "fully virtualized" page graph (don't ask), we can do better in this particular case.

The current behaviour makes sense in most situations, though, so we cannot make it the new default. If you list pages for an RSS feed, you probably don't want to link back to the RSS version of that page (if that existed) ...? Another relevant example would maybe be calendar pages.

But it would make perfect sense in the AMP use case, where every page would be navigational. So. I suggest we add a new attribute on Output Format, say Permalinkable (... or something), that, if set, will enable this for that format.

/cc @regisphilibert

@bep bep added this to the v0.55 milestone Feb 21, 2019

@bep bep self-assigned this Feb 21, 2019

@bep bep added the Enhancement label Feb 21, 2019

@regisphilibert

This comment has been minimized.

Copy link

regisphilibert commented Feb 21, 2019

Yes.
Out of curiosity, would this also apply to the following being "called" from within this output format template:

  • Prev\Next .Permalink
  • PrevInSection/NextInSection .Permalink
  • the Paginator's .URLs
  • (.GetPage "/xx").Permalink

PS: I'm not saying this is needed for everything, .OutputFormats.Get can be used in out of the ordinary cases.

@bep

This comment has been minimized.

Copy link
Member Author

bep commented Feb 21, 2019

Out of curiosity, would this also apply to the following being "called" from within this output format template

Yes.

bep added a commit to bep/hugo that referenced this issue Mar 12, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 12, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 12, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 13, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 13, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 14, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 14, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 16, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 16, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 16, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 17, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 17, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 17, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5759
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 17, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 18, 2019

Add a Page interface
The main motivation of this commit is to add a `page.Page` interface to replace the old very file-oriented `hugolib.Page` struct to prepare for gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limiations, especially related to custom output formats, and shortcodes. And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5704
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 19, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content rendered, e.g. Blackfriday.
This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 19, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content rendered, e.g. Blackfriday.
This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 19, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 19, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706

bep added a commit to bep/hugo that referenced this issue Mar 19, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767

bep added a commit to bep/hugo that referenced this issue Mar 20, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723

bep added a commit to bep/hugo that referenced this issue Mar 20, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770

bep added a commit to bep/hugo that referenced this issue Mar 21, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771

bep added a commit to bep/hugo that referenced this issue Mar 21, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759

bep added a commit to bep/hugo that referenced this issue Mar 22, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759
Fixes gohugoio#5776

bep added a commit to bep/hugo that referenced this issue Mar 23, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759
Fixes gohugoio#5776
Fixes gohugoio#5777

bep added a commit to bep/hugo that referenced this issue Mar 23, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759
Fixes gohugoio#5776
Fixes gohugoio#5777
Fixes gohugoio#5778

bep added a commit to bep/hugo that referenced this issue Mar 23, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759
Fixes gohugoio#5776
Fixes gohugoio#5777
Fixes gohugoio#5778

bep added a commit to bep/hugo that referenced this issue Mar 23, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

And it's faster.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759
Fixes gohugoio#5776
Fixes gohugoio#5777
Fixes gohugoio#5778

bep added a commit to bep/hugo that referenced this issue Mar 23, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759
Fixes gohugoio#5776
Fixes gohugoio#5777
Fixes gohugoio#5778

bep added a commit to bep/hugo that referenced this issue Mar 23, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759
Fixes gohugoio#5776
Fixes gohugoio#5777
Fixes gohugoio#5778

@bep bep closed this in 597e418 Mar 23, 2019

nguyenvanduocit added a commit to 12bitvn/hugo that referenced this issue Apr 5, 2019

Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue  gohugoio#5074, "pages from other data sources".

But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.

Most notable changes:

* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
  This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
  This improves the taxonomy template `.Title` situation and make common template constructs much simpler.

See gohugoio#5074
Fixes gohugoio#5763
Fixes gohugoio#5758
Fixes gohugoio#5090
Fixes gohugoio#5204
Fixes gohugoio#4695
Fixes gohugoio#5607
Fixes gohugoio#5707
Fixes gohugoio#5719
Fixes gohugoio#3113
Fixes gohugoio#5706
Fixes gohugoio#5767
Fixes gohugoio#5723
Fixes gohugoio#5769
Fixes gohugoio#5770
Fixes gohugoio#5771
Fixes gohugoio#5759
Fixes gohugoio#5776
Fixes gohugoio#5777
Fixes gohugoio#5778
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.