1
0
Fork 0
forked from github/pelican
Commit graph

119 commits

Author SHA1 Message Date
Mathieu Leplatre
dbcbc2c119 Fail and exit on restructuredtext syntax error 2014-01-09 15:19:31 +01:00
Justin Mayer
f832a63501 Merge pull request #1161 from florianjacob/modified_no_default
The modified attribute no longer has a default value.
2013-11-20 08:56:11 -08:00
Kyle Fuller
1592a45db8 Add 'adoc' as a file extension for asciidoc
This is to match the behaviour that GitHub have
2013-11-19 17:41:33 +00:00
Kyle Fuller
ba0f07cc1f Merge pull request #1147 from woshilapin/master
Add 'asciidoc' to the ASCIIDoc possible extensions
2013-11-19 09:39:36 -08:00
Florian Jacob
bd9d1b9539 The modified attribute no longer has a default value.
This allows for templates using {% if article.modified %}
instead of {% if article.modified != article.published %} .
2013-11-17 23:40:11 +01:00
Florian Jacob
4b2fcb09a4 Added a new ''modified:' metadata tag to be able to specify the
publication time and date and the last modified time and date
independently.

This makes it possible to access the last updated date with {{ article.locale_modified }} in templates.
Additionally, an already delivered feed entry can be corrected by changing the modified date and time, as it is used for atom:update
/ rss pubDate field now.
2013-11-10 00:14:55 +01:00
Mark Lee
35375b19ff Log a warning when the HTML reader encounters a nonconformant meta tag
Instead of throwing an exception and skipping the HTML file, log a
warning with a message which makes it more obvious as to what happened.
2013-11-08 14:37:07 -08:00
woshilapin
3b4dad470c Add 'asciidoc' to the ASCIIDoc possible extensions 2013-11-05 18:00:07 +01:00
Simon Conseil
71cca7a444 Fix the behavior of Markdown extensions.
There was several issues here:
- `self.extensions` was adding 'meta' multiple times (ref #1058)
- `self.extensions` was keeping a reference to `self.settings['MD_EXTENSIONS']`,
  so adding 'meta' to it.
- the `%s_EXTENSIONS` block coming after, it was overriding `self.extensions`
  with `self.settings['EXTENSIONS']` (while it was a reference, it was working,
  but ...). As this is currently used only for Mardown, the simplest solution is
  to remove this, and let each reader manage its `_EXTENSIONS` setting.
2013-08-29 00:49:59 +02:00
Simon Conseil
c875c27e83 Don't warn too loud about missing dependencies.
- Show the messages only once for each Reader
- Decrease the logging level
2013-08-07 22:43:08 +02:00
Simon Conseil
f47f054d0b Add documentation for readers. 2013-08-07 00:43:49 +02:00
Simon Conseil
bab8d0b26a Move the "find image with an empty alt" block in a function. 2013-08-07 00:36:40 +02:00
Simon Conseil
85ea737a98 Add a signal to give access to the dict of Reader classes. 2013-08-07 00:36:40 +02:00
Simon Conseil
4bc4b1500c Refactor readers and remove MARKUP
Add a `Readers` class which contains a dict of file extensions / `Reader`
instances. This dict can be overwritten with a `READERS` settings, for instance
to avoid processing *.html files:

    READERS = {'html': None}

Or to add a custom reader for the `foo` extension:

    READERS = {'foo': FooReader}

This dict is no storing the Reader classes as it was done before with
`EXTENSIONS`. It stores the instances of the Reader classes to avoid instancing
for each file reading.
2013-08-06 23:42:41 +02:00
Justin Mayer
97c2598cdf Merge pull request #1006 from saimn/fix_docutils
Use the `docutils` variable to check if docutils is installed, not `core`
2013-08-04 20:58:39 -07:00
Rogdham
a75eac6c0f Add warnings for img with empty alts. Fixes #647.
Unify Rst and Mkd: if alt is not specified at all, create an empty alt.
Warns the user in case of empty alts.
2013-08-04 16:03:39 +01:00
Simon Conseil
a268d9e952 Use the docutils variable to check if docutils is installed, not core.
+ remove duplicate import
2013-08-04 14:27:29 +02:00
Kyle Machulis
39dd4a0255 Changed meta tag "contents" attribute to "content", to conform to HTML spec. Fixes #918 2013-06-16 10:56:50 -07:00
W. Trevor King
38c22e83b6 readers: Ensure the reader class is enabled before instantiating
Otherwise the MarkdownReader fails with:

  'bool' object is not callable

if Markdown is not installed.

Reported-by: Deniz Turgut <dturgut@gmail.com>
2013-06-12 17:37:21 -04:00
W. Trevor King
d43dc1b9d6 Add the EXTRA_PATH_METADATA setting
Useful for altering static output paths when you don't want to encode
extra metadata in the static file's source path.
2013-06-12 15:02:31 -04:00
W. Trevor King
a9c530281e Move Article metadata extraction from generators to readers
There's no reason why this information should be Article-specific.

This commit breaks the other generators for the moment.  I'll fix them
shortly.
2013-06-12 15:02:30 -04:00
W. Trevor King
e38e170656 readers: Log signal sending for read_file() 2013-06-12 15:02:30 -04:00
W. Trevor King
4e118eff01 readers: Add debugging logging to read_file 2013-06-12 15:02:30 -04:00
W. Trevor King
ecf5682930 readers: Instrument read_file to return Content objects
The assorted generators all use read_file() to read in the file
contents and metadata.  Previously, they sometimes parse additional
metadata, fire off signals, and initialize a pelican.contents.Content
subclass on their own.  We can reduce duplicated code and increase
consistency by shifting all that stuff into read_file() itself, and
this commit is a step in that direction.
2013-06-12 15:02:29 -04:00
W. Trevor King
8ff34e6c5d Replace settings.get(key) with settings[key] for default settings
If a setting exists in DEFAULT_CONFIG, assume it will be there
(instead of checking and/or providing a local default).  The earlier
code was split between the two idioms, which was confusing.
2013-06-02 14:24:27 -04:00
Justin Mayer
71150430a9 Merge pull request #885 from avaris/markdown-summary-footnote
Markdown summary should not include content footnote
2013-05-13 15:36:39 -07:00
Deniz Turgut
75f214103e Markdown summary should not include content footnote
Markdown instance carries state for subsequent uses. Content
and summary parsing is done with the same instance. Since
footnotes are processed with an extension and stored as state,
content footnote is duplicated for summary.

This PR adds a ``.reset()`` call before summary parsing to clear
the state. It also adds a test case with footnotes.
2013-05-10 03:50:33 -04:00
Simon Conseil
5ffadd2283 Add DOCUTILS_SETTINGS to allow to customize the docutils Publisher. 2013-04-23 12:28:30 +02:00
Emily Strickland
08f27e0134 Accept mdown file extension for Markdown files.
This extension is sometimes used for Markdown files and is the default
for a few editors, such as Sublime Text.
2013-04-17 21:14:52 -07:00
Deniz Turgut
bc4bd773a0 remove unittest2 and fix various warnings in py3 2013-04-13 16:36:05 -04:00
Deniz Turgut
0548b62441 fix for issue #761: handle unicode correctly in summary for Markdown 2013-04-03 19:38:42 -04:00
Deniz Turgut
9936538d8b unify css class for pygments 2013-04-02 18:39:52 -04:00
W. Trevor King
29cdb37af3 generators: Use the static format to read Static metadata
This cuts down on the remaining difference between static files and
articles/pages.  The main difference is that path-based metadata is
now parsed for static content.
2013-03-21 14:17:50 -04:00
W. Trevor King
f147d9ec4a readers: Add 'static' to the base Reader's extensions
Instead of just being a base class, we can use it to parse static
files.  It won't actually do any parsing, but we will get path
metadata extraction from read_file, and this will make the
StaticGenerator implementation simpler.
2013-03-21 13:03:54 -04:00
W. Trevor King
bfa8851af0 Add the PATH_METADATA setting
Sometimes the base filename doesn't have everything you need.

Remember that os.sep is platform dependent, so using it in a regular
expression for this setting may not be portable (boo MS Windows!).
2013-03-12 15:16:25 -07:00
W. Trevor King
c46ca5d5d1 readers: Split parse_path_metadata from read_file
For easier re-use.  I also extract the path metadata first, so
metadata explicitly listed in the file contents will take precedence
over metadata parsed from the filename.
2013-03-12 15:16:25 -07:00
Alexis Métaireau
12c43b7d4d Make METADATA_PROCESSORS and EXTENSIONS public. 2013-03-12 12:19:53 -07:00
Simon
a7a71da6df Fix a test in the asciidoc reader, and add asciidoc to travis so that
the related tests will not be skipped.
2013-03-03 21:43:04 -08:00
Eric
e721727476 Allow explicit setting of markdown extensions
These additions are to make it easier to disable pygments or any other
extension the user may not want. In the previous version, these plugins are
hardcoded, but by making it a variable in the config, it is possible to not use
pygments or easily load extra markdown plugins if needed; you can have multiple
plugins in one virtual environment and have different configs load them as
needed.

In my `pelicanconf.py` I then have the following:

    MD_EXTENSIONS = ['extra', 'syntaxhighlighter']

where `syntaxhighlighter` is a custom markdown extension I am working on to use
syntax highlighter instead of pygments for code highlighting.
2013-03-03 21:36:45 -08:00
Alexis Métaireau
519dcdbcb3 Manual pass on sources for better standards. 2013-03-03 20:12:31 -08:00
dave mankoff
08439bdcf1 fix null attributes in html parser 2013-02-10 11:02:52 -05:00
Justin Mayer
f3bc2ece86 Merge pull request #382 from mankyd/htmlparser
New, more thorough HTMLParser
2013-02-09 16:48:50 -08:00
Igor Kalnitsky
0285bbcec4 Fix bug with docutils' code directive.
Since version 0.9 `docutils` supports `code` directive. But this directive
can generate fullname classes for the `pygments` style classes.

For example, the following code

```reStructuredText
.. code:: c++

    GetFoo()->do_something();
```

generate the following output

```html
<pre class="code c++ literal-block">
  <span class="name">GetFoo</span>
  <span class="punctuation">()</span>
  <span class="operator">-&gt;</span>
  <span class="name">do_something</span>
  <span class="punctuation">();</span>
</pre>
```

Note, that fullname classes were used, when we need a short one

```html
<pre class="code c++ literal-block">
  <span class="n">GetFoo</span>
  <span class="p">()</span>
  <span class="o">-&gt;</span>
  <span class="n">do_something</span>
  <span class="p">();</span>
</pre>
```
2013-02-08 01:47:20 +02:00
dave mankoff
d5bfec3a8b update documentation and remove commented out code 2013-01-28 22:25:15 -05:00
dave mankoff
2a3d7d0319 fix python3 support 2013-01-28 22:21:45 -05:00
dave mankoff
7b59b34a73 get tests passing 2013-01-28 22:11:06 -05:00
dave mankoff
5f639b9a3b git rebase master 2013-01-28 21:46:54 -05:00
dave mankoff
357f3a3da2 properly write out charref's 2013-01-28 21:46:23 -05:00
dave mankoff
bc2bc7a330 git merge upstream/master 2013-01-28 21:41:42 -05:00
W. Trevor King
004adfa5cc content: Convert Path.filename to .source_path
Making everything consistent is a bit awkward, since this is a
commonly used attribute, but I've done my best.

Reasons for not consolidating on `filename`:

* It is often used for the "basename" (last component in the path).
  Using `source_path` makes it clear that this attribute can contain
  multiple components.

Reasons for not consolidating on `filepath`:

* It is barely used in the Pelican source, and therefore easy to
  change.
* `path` is more Pythonic.  The only place `filepath` ever show up in
  the documentation for `os`, `os.path`, and `shutil` is in the
  `os.path.relpath` documentation [1].

Reasons for not consolidating on `path`:

* The Page elements have both a source (this attribute) and a
  destination (.save_as).  To avoid confusion for developers not aware
  of this, make it painfully obvious that this attribute is for the
  source.  Explicit is better than implicit ;).

Where I was touching the line, I also updated the string formatting in
StaticGenerator.generate_output to use the forward compatible
'{}'.format() syntax.

[1]: http://docs.python.org/2/library/os.path.html#os.path.relpath
2013-01-18 07:57:35 -05:00