diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index ac9f882e..df6e6f61 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -17,3 +17,5 @@ db241feaa445375dc05e189e69287000ffe5fa8e 4af40e80772a58eac8969360e5caeb99e3e26e78 # Ruff UP031: Use F-string format specifiers instead of percent format 30bde3823f50b9ba8ac5996c1c46bb72031aa6b8 +# Upgrade Ruff to 0.12.x & comply with new rules +4dedf1795831db99d18941c707923ba48cc28ce7 diff --git a/.github/ISSUE_TEMPLATE/---bug-report.md b/.github/ISSUE_TEMPLATE/---bug-report.md index c0f9dec6..6825b61c 100644 --- a/.github/ISSUE_TEMPLATE/---bug-report.md +++ b/.github/ISSUE_TEMPLATE/---bug-report.md @@ -17,11 +17,15 @@ assignees: '' - [ ] I have read the [Filing Issues](https://docs.getpelican.com/en/latest/contribute.html#filing-issues) and subsequent “How to Get Help” sections of the documentation. +- [ ] I can reproduce this problem with stock/default settings file, theme, and sample content (as described in above “How to Get Help” sections of the documentation). - [ ] I have searched the [issues](https://github.com/getpelican/pelican/issues?q=is%3Aissue) (including closed ones) and believe that this is not a duplicate. - **OS version and name**: diff --git a/.github/ISSUE_TEMPLATE/---everything-else.md b/.github/ISSUE_TEMPLATE/---everything-else.md index fd2a58ae..23a3f7bd 100644 --- a/.github/ISSUE_TEMPLATE/---everything-else.md +++ b/.github/ISSUE_TEMPLATE/---everything-else.md @@ -8,7 +8,11 @@ assignees: '' --- - [ ] I have searched the [issues](https://github.com/getpelican/pelican/issues?q=is%3Aissue) (including closed ones) and believe that this is not a duplicate. - [ ] I have searched the [documentation](https://docs.getpelican.com/) and believe that my question is not covered. +- [ ] I have carefully read the [How to Get Help](https://docs.getpelican.com/en/latest/contribute.html#how-to-get-help) section of the documentation. ## Issue diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 9e240bd9..a07de4ab 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,6 +1,6 @@ --- # Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser -blank_issues_enabled: true +blank_issues_enabled: false contact_links: - name: '💬 Pelican IRC Channel' url: https://web.libera.chat/?#pelican diff --git a/.github/dependabot.yml b/.github/dependabot.yml index a0a90b94..4fed5330 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,13 +1,8 @@ # See https://docs.github.com/en/free-pro-team@latest/ # github/administering-a-repository/enabling-and-disabling-version-updates - +--- version: 2 updates: - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "monthly" - open-pull-requests-limit: 10 - package-ecosystem: "github-actions" directory: "/" schedule: diff --git a/.github/workflows/github_pages.yml b/.github/workflows/github_pages.yml index 48ebb2d0..9c279ab1 100644 --- a/.github/workflows/github_pages.yml +++ b/.github/workflows/github_pages.yml @@ -1,4 +1,4 @@ -# Workflow for publishing to GitHub Pages. +# Workflow for building the site and (optionally) publishing it to GitHub Pages. name: Deploy to GitHub Pages on: workflow_call: @@ -37,13 +37,15 @@ on: default: "" description: "The domain to be prepended to feed URLs (Pelican's FEED_DOMAIN setting). If not passed this will default to the URL of your GitHub Pages site, which is correct in most cases." type: string + deploy: + required: false + default: true + description: "Whether to deploy the site. If true then build the site and deploy it. If false then just test that the site builds successfully but don't deploy anything." + type: boolean permissions: contents: read pages: write id-token: write -concurrency: - group: "pages" - cancel-in-progress: false jobs: build: runs-on: ubuntu-latest @@ -88,6 +90,10 @@ jobs: with: path: ${{ inputs.output-path }} deploy: + concurrency: + group: "pages" + cancel-in-progress: false + if: ${{ inputs.deploy }} environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e07caa72..9e5a877b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,10 +15,8 @@ jobs: strategy: matrix: os: [ubuntu, macos, windows] - python: ["3.10", "3.11", "3.12"] + python: ["3.10", "3.11", "3.12", "3.13"] include: - - os: ubuntu - python: "3.8" - os: ubuntu python: "3.9" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9ae674ab..38287df9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ # See https://pre-commit.com/hooks.html for info on hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-added-large-files - id: check-ast @@ -16,14 +16,14 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # ruff version should match the one in pyproject.toml - rev: v0.4.10 + rev: v0.12.2 hooks: - - id: ruff + - id: ruff-check args: [--fix, --exit-non-zero-on-fix] - id: ruff-format - repo: https://github.com/rtts/djhtml - rev: '3.0.6' + rev: '3.0.8' hooks: - id: djhtml - id: djcss diff --git a/docs/changelog.rst b/docs/changelog.rst index cfc290df..b82faaa3 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,22 @@ Release history ############### +4.11.0 - 2025-01-15 +=================== + +- Add setting to selectively omit Typogrify filters `(#3439) `_ +- Add more blocks to the Simple theme’s base template, making it easier to create new themes by inheriting from the Simple theme `(#3405) `_ +- Fix auto-reload behavior upon changes to the theme, content or settings. Make default ``IGNORE_FILES`` recursively ignore all hidden files as well as the `default filters `_ from ``watchfiles.DefaultFilter``. `(#3441) `_ +- Get current year from the ``SOURCE_DATE_EPOCH`` environment variable, if available `(#3430) `_ +- Add Python 3.13 to test matrix and remove Python 3.8 `(#3435) `_ +- Require Typogrify 2.1+ and Pygments <2.19 + +4.10.2 - 2024-11-27 +=================== + +- Change ``IGNORE_FILES`` setting default to ignore all hidden files +- Fix ``SUMMARY_MAX_PARAGRAPHS`` not being respected in some combinations with ``SUMMARY_MAX_LENGTH`` + 4.10.1 - 2024-09-28 =================== diff --git a/docs/conf.py b/docs/conf.py index 2cac97e3..e335e73c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,6 +1,7 @@ import datetime import os import sys +import time if sys.version_info >= (3, 11): import tomllib @@ -30,15 +31,17 @@ extensions = [ source_suffix = ".rst" master_doc = "index" project = project_data.get("name").upper() -year = datetime.datetime.now().date().year -copyright = f"2010–{year}" # noqa: RUF001 +year = datetime.datetime.fromtimestamp( + int(os.environ.get("SOURCE_DATE_EPOCH", time.time())), datetime.timezone.utc +).year +project_copyright = f"2010–{year}" # noqa: RUF001 exclude_patterns = ["_build"] release = project_data.get("version") version = ".".join(release.split(".")[:1]) last_stable = project_data.get("version") rst_prolog = f""" .. |last_stable| replace:: :pelican-doc:`{last_stable}` -.. |min_python| replace:: {project_data.get('requires-python').split(",")[0]} +.. |min_python| replace:: {project_data.get("requires-python").split(",")[0]} """ extlinks = {"pelican-doc": ("https://docs.getpelican.com/en/latest/%s.html", "%s")} diff --git a/docs/contribute.rst b/docs/contribute.rst index 07cf998a..37b90e92 100644 --- a/docs/contribute.rst +++ b/docs/contribute.rst @@ -103,9 +103,14 @@ lines you changed conform to code style guidelines. You can check that via:: invoke lint +If style violations are found, many of them can be addressed automatically via:: + + invoke lint --fix + invoke format + If code style violations are found in lines you changed, correct those lines -and re-run the above lint command until they have all been fixed. You do not -need to address style violations, if any, for code lines you did not touch. +and re-run the ``invoke lint`` command until they have all been fixed. You do +not need to address style violations, if any, for code lines you did not touch. After making your changes and running the tests, you may see a test failure mentioning that "some generated files differ from the expected functional tests @@ -194,6 +199,7 @@ check for code style compliance via:: If style violations are found, many of them can be addressed automatically via:: + invoke lint --fix invoke format If style violations are found even after running the above auto-formatters, diff --git a/docs/faq.rst b/docs/faq.rst index bbf058cd..dc6097c8 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -64,6 +64,19 @@ How do I create my own theme? Please refer to :ref:`theming-pelican`. +Can I override individual templates without forking the whole theme? +==================================================================== + +Yes, you can override existing templates of the theme that you are using, or +add new templates, via the ``THEME_TEMPLATES_OVERRIDES`` variable. For example, +to override the page template, you can define the location for your templates +like this:: + + THEME_TEMPLATES_OVERRIDES = ["templates"] + +You can then define a custom template in ``templates/page.html``. +See :ref:`settings/themes` for details. + I want to use Markdown, but I got an error. =========================================== @@ -105,7 +118,7 @@ How do I make my output folder structure identical to my content hierarchy? Try these settings:: USE_FOLDER_AS_CATEGORY = False - PATH_METADATA = "(?P.*)\..*" + PATH_METADATA = r"(?P.*)\..*" ARTICLE_URL = ARTICLE_SAVE_AS = PAGE_URL = PAGE_SAVE_AS = "{path_no_ext}.html" How do I assign custom templates on a per-page basis? @@ -122,7 +135,8 @@ For content in Markdown format:: Template: template_name Then just make sure your theme contains the relevant template file (e.g. -``template_name.html``). +``template_name.html``). If you just want to add a new custom template to an +existing theme, you can also provide it in a directory specified by ``THEME_TEMPLATES_OVERRIDES`` (see :ref:`settings/themes`). How can I override the generated URL of a specific page or article? =================================================================== diff --git a/docs/install.rst b/docs/install.rst index aa3c92d0..502148ed 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -25,10 +25,10 @@ session and create a new virtual environment for Pelican:: Once the virtual environment has been created and activated, Pelican can be installed via ``python -m pip install pelican`` as noted above. Alternatively, if you -have the project source, you can install Pelican using the distutils method:: +have the project source, you can install Pelican using the setuptools method:: cd path-to-Pelican-source - python setup.py install + python -m pip install . If you have Git installed and prefer to install the latest bleeding-edge version of Pelican rather than a stable release, use the following command:: diff --git a/docs/locale/zh_CN/LC_MESSAGES/changelog.po b/docs/locale/zh_CN/LC_MESSAGES/changelog.po index 18fec089..94392a8d 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/changelog.po +++ b/docs/locale/zh_CN/LC_MESSAGES/changelog.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PELICAN 4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-24 19:06+0800\n" +"POT-Creation-Date: 2025-07-13 11:46+0800\n" "PO-Revision-Date: 2024-06-27 19:00+0800\n" "Last-Translator: GeorgeHu \n" "Language: zh_CN\n" @@ -16,243 +16,356 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../changelog.rst:2 4aeac72dd31d4f34ae17a35dc3dfb6bb +#: ../../changelog.rst:2 0742e96cabd04fc99355bbfa66fcb719 msgid "Release history" msgstr "更新日志" -#: ../../changelog.rst:5 1e1473d7633a41f6bf9b31bdd8b7fe79 +#: ../../changelog.rst:5 2a6b4d6833884393bf6eb0f664f07027 +msgid "4.11.0 - 2025-01-15" +msgstr "" + +#: ../../changelog.rst:7 eb554022ed4445b4886e5fb7b1ffda48 +msgid "" +"Add setting to selectively omit Typogrify filters `(#3439) " +"`_" +msgstr "" + +#: ../../changelog.rst:8 b4296b7abe7a411faedd991310af951f +msgid "" +"Add more blocks to the Simple theme’s base template, making it easier to " +"create new themes by inheriting from the Simple theme `(#3405) " +"`_" +msgstr "" + +#: ../../changelog.rst:9 da7911e453434d5fa2a24bb9bad85d5f +msgid "" +"Fix auto-reload behavior upon changes to the theme, content or settings. " +"Make default ``IGNORE_FILES`` recursively ignore all hidden files as well" +" as the `default filters " +"`_" +" from ``watchfiles.DefaultFilter``. `(#3441) " +"`_" +msgstr "" + +#: ../../changelog.rst:10 ad022a2dbbe74c28ab78757f64791daa +msgid "" +"Get current year from the ``SOURCE_DATE_EPOCH`` environment variable, if " +"available `(#3430) `_" +msgstr "" + +#: ../../changelog.rst:11 c7270f10045541f992ea76f9b8f938bc +msgid "" +"Add Python 3.13 to test matrix and remove Python 3.8 `(#3435) " +"`_" +msgstr "" + +#: ../../changelog.rst:12 c913ff7038e2445e831be08ce7a2d95f +msgid "Require Typogrify 2.1+ and Pygments <2.19" +msgstr "" + +#: ../../changelog.rst:15 47b916504e6c4a33a499718574212ed2 +msgid "4.10.2 - 2024-11-27" +msgstr "" + +#: ../../changelog.rst:17 6ccca5efc34c43fc9e6549ce27d07b1a +msgid "Change ``IGNORE_FILES`` setting default to ignore all hidden files" +msgstr "" + +#: ../../changelog.rst:18 b541de728f0d4480bf6a3cb93a331134 +msgid "" +"Fix ``SUMMARY_MAX_PARAGRAPHS`` not being respected in some combinations " +"with ``SUMMARY_MAX_LENGTH``" +msgstr "" + +#: ../../changelog.rst:21 47b916504e6c4a33a499718574212ed2 +msgid "4.10.1 - 2024-09-28" +msgstr "" + +#: ../../changelog.rst:23 33731d204a8f42d6972a5b41035bf6fa +msgid "Fix error when running ``pelican -r -l``" +msgstr "" + +#: ../../changelog.rst:24 0c82e22bd70f497880747a23445a279e +msgid "Fix symlink handling in ``pelican-themes``" +msgstr "" + +#: ../../changelog.rst:27 2a6b4d6833884393bf6eb0f664f07027 +msgid "4.10.0 - 2024-09-16" +msgstr "" + +#: ../../changelog.rst:29 c5b7388ced0246df9383968b896cee1d +msgid "Add setting to specify summary via paragraph count" +msgstr "" + +#: ../../changelog.rst:30 55bef71482124d7ba15dcc13def666b4 +msgid "Add new status to skip generation of a post" +msgstr "" + +#: ../../changelog.rst:31 74aa099718c64ec3864fb4b54e8c7e7b +msgid "Add setting to append ``ref`` parameter to links in feeds" +msgstr "" + +#: ../../changelog.rst:32 be0d21b2ffd648f9aad935e95fa2e9b2 +msgid "Configure logging handler via ``--log-handler`` CLI option" +msgstr "" + +#: ../../changelog.rst:33 f582b79f9b19462988607337626e92e8 +msgid "Resolve intra-site links in summaries" +msgstr "" + +#: ../../changelog.rst:34 00e8752d88364591a1e7844b3605963c +msgid "Warn when files are not processed due to disabled readers" +msgstr "" + +#: ../../changelog.rst:35 0de52c3ba40b44f0816cc8dabf7913ab +msgid "Add Medium post importer" +msgstr "" + +#: ../../changelog.rst:36 051bf922a7304dd798e894ddcfb64635 +msgid "Improve GitHub Pages workflow" +msgstr "" + +#: ../../changelog.rst:37 7db880406e9540de9b2d5b023cc10147 +msgid "Improve code test coverage" +msgstr "" + +#: ../../changelog.rst:38 c4327d2df9e34af384a4b0c96031e7e1 +msgid "Translate documentation into Simplified Chinese" +msgstr "" + +#: ../../changelog.rst:41 75bd952da32744868b68714fa89d62ec msgid "4.9.1 - 2023-11-15" msgstr "" -#: ../../changelog.rst:7 b8408b62a2644333a6f79c46ed50ae40 +#: ../../changelog.rst:43 f896a982ada348e3bf763a9cf620d432 msgid "Ensure ``tzdata`` dependency is installed on Windows" msgstr "" -#: ../../changelog.rst:10 fd27b54d8bc441ffaad0eed5342e3fb0 +#: ../../changelog.rst:46 f7893a294e2c4c44bd82d68283421096 msgid "4.9.0 - 2023-11-12" msgstr "" -#: ../../changelog.rst:12 d2a96d9c7641406db9b5bbbf1e1591f1 +#: ../../changelog.rst:48 3fc89471c16044349176c6bf58daef61 msgid "Upgrade code to new minimum supported Python version: 3.8" msgstr "" -#: ../../changelog.rst:13 eecb4e70e6d64882a298a68a906aa7e7 +#: ../../changelog.rst:49 361eb8523ae54e6c965c4957d5af9a0b msgid "" "Settings support for ``pathlib.Path`` `(#2758) " "`_" msgstr "" -#: ../../changelog.rst:14 73d4ff7624894557974d1e14072e995e +#: ../../changelog.rst:50 7ea2147f8b6c4bc1af0e926b897fbbc7 msgid "" "Various improvements to Simple theme (`#2976 " "`_ & `#3234 " "`_)" msgstr "" -#: ../../changelog.rst:15 242c2330a6264406a9444beb84da5682 +#: ../../changelog.rst:51 fc0e0bb6fd8a49bca130f352208d4e65 msgid "" "Use Furo as Sphinx documentation theme `(#3023) " "`_" msgstr "" -#: ../../changelog.rst:16 dabb5eb48294457aba25a322ab1d0197 +#: ../../changelog.rst:52 1767e84116304b62bff9c66576c8b530 msgid "" "Default to 100 articles maximum in feeds `(#3127) " "`_" msgstr "" -#: ../../changelog.rst:17 86ddf69ef3e74a5e9633b231762624d3 +#: ../../changelog.rst:53 1f42290cb97f4c22b71b49bfd4e1d763 msgid "" "Add ``period_archives common context`` variable `(#3148) " "`_" msgstr "" -#: ../../changelog.rst:18 2e0c631a1cf04880b862de6b807eff48 +#: ../../changelog.rst:54 8e70999f32d743d8be9d7a09a7b8440e msgid "" "Use ``watchfiles`` as the file-watching backend `(#3151) " "`_" msgstr "" -#: ../../changelog.rst:19 59ca5ac64d244f93abcda99d3544de2a +#: ../../changelog.rst:55 eb554022ed4445b4886e5fb7b1ffda48 msgid "" "Add GitHub Actions workflow for GitHub Pages `(#3189) " "`_" msgstr "" -#: ../../changelog.rst:20 88ed863544e64ea5a09301d25cd80d3e +#: ../../changelog.rst:56 aee78c33fc074a5aa2a3e7b6b074a2d1 msgid "" "Allow dataclasses in settings `(#3204) " "`_" msgstr "" -#: ../../changelog.rst:21 b101d1a2f7c04acfa220a77ccf85dc35 +#: ../../changelog.rst:57 b302dcfa9ab347c7a4190e35a2fec468 msgid "" "Switch build tool to PDM instead of Setuptools/Poetry `(#3220) " "`_" msgstr "" -#: ../../changelog.rst:22 422f54c14c4144b986362c831b56cb86 +#: ../../changelog.rst:58 39c35ce577d6418ebe1bdb8bd83855da msgid "" "Provide a ``plugin_enabled`` Jinja test for themes `(#3235) " "`_" msgstr "" -#: ../../changelog.rst:23 1a85c8e28699430cb4ee54e6b1cda9ba +#: ../../changelog.rst:59 10520c5ebec34d02996410cc1d611162 msgid "" "Preserve connection order in Blinker `(#3238) " "`_" msgstr "" -#: ../../changelog.rst:24 f605f3f56552418d80225548b3bea74c +#: ../../changelog.rst:60 e3e01fbe72ff48578ee636044d930861 msgid "" "Remove social icons from default ``notmyidea`` theme `(#3240) " "`_" msgstr "" -#: ../../changelog.rst:25 de509b7854fe41f986b7ea8c86034ded +#: ../../changelog.rst:61 0e0d4fc6f77947a79bc3864dbcfd3025 msgid "" "Remove unreliable ``WRITE_SELECTED`` feature `(#3243) " "`_" msgstr "" -#: ../../changelog.rst:26 1206eb9fb5c344c0ae2fa5ae405bb29e +#: ../../changelog.rst:62 3945b50f56c849e8b756418a049e8bd5 msgid "" "Importer: Report broken embedded video links when importing from Tumblr " "`(#3177) `_" msgstr "" -#: ../../changelog.rst:27 eeefe71248724cd8928500b64c1d24f0 +#: ../../changelog.rst:63 91a65ac386d64de293807b14a1ee66c1 msgid "" "Importer: Remove newline addition when iterating Photo post types " "`(#3178) `_" msgstr "" -#: ../../changelog.rst:28 d9bbceb0175b42b9be8b19b89546c7fd +#: ../../changelog.rst:64 5965fc057a0a4c94a2507956a2227789 msgid "" "Importer: Force timestamp conversion in Tumblr importer to be UTC with " "offset `(#3221) `_" msgstr "" -#: ../../changelog.rst:29 fcb7a001e25345bda01cc0d7fbdcc0c1 +#: ../../changelog.rst:65 f4a79028bfa946debc9a6924670e5456 msgid "" "Importer: Use tempfile for intermediate HTML file for Pandoc `(#3221) " "`_" msgstr "" -#: ../../changelog.rst:30 c7a0a3a319754ada970b27f9913833bd +#: ../../changelog.rst:66 ac3ff1ef109f49898c54eb75bb9d4bf3 msgid "" "Switch linters to Ruff `(#3223) " "`_" msgstr "" -#: ../../changelog.rst:33 b80948b635ca4ba3bdaf0efedf9e8230 +#: ../../changelog.rst:69 87b5ee37dea84dce9c75361f533e8057 msgid "4.8.0 - 2022-07-11" msgstr "" -#: ../../changelog.rst:35 c95dd083acb34ccea579bed98c19d95b +#: ../../changelog.rst:71 858d9945de86466eb1507d7859efc304 msgid "" "Use JSON values for extra settings in Invoke tasks template `(#2994) " "`_" msgstr "" -#: ../../changelog.rst:36 54acbf33444345efa17b6006650cfff2 +#: ../../changelog.rst:72 ad022a2dbbe74c28ab78757f64791daa msgid "" "Add content tag for links, which can help with things like Twitter social" " cards `(#3001) `_" msgstr "" -#: ../../changelog.rst:37 28a4102c014741ac987ba8be6ff00565 +#: ../../changelog.rst:73 889f590d0fda46dbb6a14336644f265e msgid "" "Improve word count behavior when generating summary `(#3002) " "`_" msgstr "" -#: ../../changelog.rst:40 00956e307c3647078780260ec470f0c4 +#: ../../changelog.rst:76 c6c9bfd44396439c8e3a04b083dfc9b3 msgid "4.7.2 - 2022-02-09" msgstr "" -#: ../../changelog.rst:42 9782bf3d611b4168b76fe33602f13d26 +#: ../../changelog.rst:78 21432dcec96e438c8f21de585540e9b9 msgid "" "Fix incorrect parsing of parameters specified via `-e` / `--extra-" "settings` option flags `(#2938) " "`_" msgstr "" -#: ../../changelog.rst:43 b3ce4b03bd92409ea6aea120cd2d3a4f +#: ../../changelog.rst:79 250cb0b205ea4bc091bcbfa18a688398 msgid "" "Add ``categories.html`` template to default theme `(#2973) " "`_" msgstr "" -#: ../../changelog.rst:44 bdcd1255d2534a5c992a53c2c9640299 +#: ../../changelog.rst:80 f404aaef8abe40d89a8394f71043767b msgid "" "Document how to use plugins to inject content `(#2922) " "`_" msgstr "" -#: ../../changelog.rst:47 9052d76f02fc4509998872f8c650696d +#: ../../changelog.rst:83 ea47463991054e678639e2d5afee8733 msgid "4.7.1 - 2021-10-12" msgstr "" -#: ../../changelog.rst:49 1ddc283dca434367a9eebebb4dc19c55 +#: ../../changelog.rst:85 52f38102dca542dcaa5e901ba9cff484 msgid "" "Extend rich logging to server component `(#2927) " "`_" msgstr "" -#: ../../changelog.rst:50 2ebe1d316cc541eba3ef3d20512c97f0 +#: ../../changelog.rst:86 e2f47cedaac946b6b3877063c1531849 msgid "" "Fix an issue where metadata flagged to be discarded was being cached " "`(#2926) `_" msgstr "" -#: ../../changelog.rst:51 7561e4a903db49bba3c7cb5d22ea25be +#: ../../changelog.rst:87 c7270f10045541f992ea76f9b8f938bc msgid "" "Adjust suffix in server to allow redirection when needed `(#2931) " "`_" msgstr "" -#: ../../changelog.rst:52 369516860be2437b9099796b0b3c7847 +#: ../../changelog.rst:88 25eecc81230442e8be149c26afebcba8 msgid "" "Add MIME types for web fonts `(#2929) " "`_" msgstr "" -#: ../../changelog.rst:53 2a4dd51d3c2d46c1a0a774274436fc74 +#: ../../changelog.rst:89 28bdcfa53bcf4bf5908acd39b88b1264 msgid "" "Distribute sample data used to run tests `(#2935) " "`_" msgstr "" -#: ../../changelog.rst:54 63a08ba90a054e369d1be50c491f094b +#: ../../changelog.rst:90 90855b72a6744760a57195ca0566401c msgid "Add Python 3.10 to test matrix" msgstr "" -#: ../../changelog.rst:57 f07f93ca41894e2ea7de889e68dddd63 +#: ../../changelog.rst:93 a5d1ee359c9a472bac01a3c953358994 msgid "4.7.0 - 2021-10-01" msgstr "" -#: ../../changelog.rst:59 1e0f42b1b76e4eb4a356612459563660 +#: ../../changelog.rst:95 1b28838f5000456aa396f8768c307102 msgid "" "Improve default theme rendering on mobile and other small screen devices " "`(#2914) `_" msgstr "" -#: ../../changelog.rst:60 2ae6e8430fd4421994f330f095111d0e +#: ../../changelog.rst:96 e080e2f741464f92b7d988da7e3dba5d msgid "" "Add support for hidden articles `(#2866) " "`_" msgstr "" -#: ../../changelog.rst:61 eabcc4a0ac764f3991805d2f746cd415 +#: ../../changelog.rst:97 71036c834cc4480ba38566d039d9b50a msgid "" "Improve word count behavior when generating summary CJK & other locales " "`(#2864) `_" msgstr "" -#: ../../changelog.rst:62 9a1b80fe805a4c35960c6cba82d813b2 +#: ../../changelog.rst:98 dad2c8c0f0d84a4db5b0139e8dc4bec8 msgid "" "Add progress spinner during generation `(#2869) " "`_ and richer logging " @@ -260,295 +373,295 @@ msgid "" "`Rich `_" msgstr "" -#: ../../changelog.rst:64 5ea56ecd1a0740a1bc75e6f60515dfa8 +#: ../../changelog.rst:100 ad420f41f0fb44809f0f88d2638ed6b9 msgid "" "Invoke tasks ``serve`` and ``livereload`` now auto-open a web browser " "pointing to the locally-served web site `(#2764) " "`_" msgstr "" -#: ../../changelog.rst:65 60ed0fd02107499ead142c41c827f71a +#: ../../changelog.rst:101 34794ceaec054ec4b47706297e65a498 msgid "" "Support some date format codes used by ISO dates `(#2902) " "`_" msgstr "" -#: ../../changelog.rst:66 fbf7c4ded7af44a6813c0b26432d6905 +#: ../../changelog.rst:102 cd9520f44e004be6a7d7fb27032d37a6 msgid "" "Document how to add a new writer `(#2901) " "`_" msgstr "" -#: ../../changelog.rst:69 fbada9e3ad0845b4a72f9688cf251a6a +#: ../../changelog.rst:105 278990583126431793bd184ef69e4315 msgid "4.6.0 - 2021-03-23" msgstr "" -#: ../../changelog.rst:71 fb814688de1a4df58087cb466d7fa24f +#: ../../changelog.rst:107 a7a02445adbd4dd58d066f6f8fa5810b msgid "" "Add new URL pattern to ``PAGINATION_PATTERNS`` for the last page in the " "list `(#1401) `_" msgstr "" -#: ../../changelog.rst:72 9c5ae9de4b3f4ee7bb54ba0f5fe9194b +#: ../../changelog.rst:108 e5e2fd04bc8a40edb8a0d1c088a95708 msgid "" "Speed up ``livereload`` Invoke task via caching `(#2847) " "`_" msgstr "" -#: ../../changelog.rst:73 ccfa403160e6435990a51f311c059f65 +#: ../../changelog.rst:109 e37a383072324f98a8f5698edab71384 msgid "" "Ignore ``None`` return value from ``get_generators`` signal `(#2850) " "`_" msgstr "" -#: ../../changelog.rst:74 e00f58f952cf473390d2d3a0bff95f26 +#: ../../changelog.rst:110 ea446fad671d4e1e8b3220a35ffe170b msgid "Relax dependency minimum versions and remove upper bounds" msgstr "" -#: ../../changelog.rst:77 7d2fd1353eda4e5cb27a27dae71fda0c +#: ../../changelog.rst:113 3e38341f147e414ba7b10c339d28a0d4 msgid "4.5.4 - 2021-01-04" msgstr "" -#: ../../changelog.rst:79 d40e6e0035144705b52124f970bc3ea3 +#: ../../changelog.rst:115 b4296b7abe7a411faedd991310af951f msgid "" "Replace plugin definitions in settings with string representations after " "registering, so they can be cached correctly `(#2828) " "`_." msgstr "" -#: ../../changelog.rst:82 13f1634fef1f4a65a64ad54159de14fe +#: ../../changelog.rst:118 7fc32eaefef846d28cd834cabfa8dee9 msgid "4.5.3 - 2020-12-01" msgstr "" -#: ../../changelog.rst:84 19753217e0b04230998d9f5c9730a423 +#: ../../changelog.rst:120 5e0db3263ddd42bca058026426cf06e6 msgid "Fix a mistake made in PR #2821" msgstr "" -#: ../../changelog.rst:87 1c8a0889b5de47178fab5b9d5d085c55 +#: ../../changelog.rst:123 1ef29d1cc4de42d1aa3c0c163df3514a msgid "4.5.2 - 2020-11-22" msgstr "" -#: ../../changelog.rst:89 8c30ac8608f54fd48f29f1e48f640ccd +#: ../../changelog.rst:125 c7c77959e6d04be4a6a6c7ace8d64c0d msgid "Improve logging of generators and writer loaders" msgstr "" -#: ../../changelog.rst:92 2673cef2ee1c42bdad7f7a80c77002c6 +#: ../../changelog.rst:128 00572ddf9ed24457aedc3f744b684404 msgid "4.5.1 - 2020-11-02" msgstr "" -#: ../../changelog.rst:94 50a7b8039d1d45b4bf85550da4c40318 +#: ../../changelog.rst:130 85d67c71b8664cf3900c982deba934b5 msgid "" "Refactor intra-site link discovery in order to match more permissively " "`(#2646) `_" msgstr "" -#: ../../changelog.rst:95 009addb3893a4c9b98af8eba13e57e11 +#: ../../changelog.rst:131 0ae962176dac4745a0929eac1cb0a671 msgid "" "Fix plugins running twice in auto-reload mode `(#2817) " "`_" msgstr "" -#: ../../changelog.rst:96 43f7f7e70f3948cdaaa3fb6b7a6ab45d +#: ../../changelog.rst:132 6c9d2b7c8f5c40d9830f38cc39807326 msgid "" "Add notice to use ``from pelican import signals`` instead of ``import " "pelican.signals`` `(#2805) " "`_" msgstr "" -#: ../../changelog.rst:99 ef2a1b597d854881bf89d6240fe59ee0 +#: ../../changelog.rst:135 cc543240f72d4e15bafa37e8cbe86c54 msgid "4.5.0 - 2020-08-20" msgstr "" -#: ../../changelog.rst:101 d6f141fa55fc43cfa36eac89d4ec4a67 +#: ../../changelog.rst:137 3b3db764e63f49c0b00d2b1cc71755f2 msgid "Add namespace plugin support; list plugins via ``pelican-plugins`` command" msgstr "" -#: ../../changelog.rst:102 83d9116dd10b404fb3d978977a91f03a +#: ../../changelog.rst:138 ad62f8bcd989447e97326c5845ec146b msgid "Override settings via ``-e`` / ``--extra-settings`` CLI option flags" msgstr "" -#: ../../changelog.rst:103 772c3e4941e64bc9a5a41ee644e980b3 +#: ../../changelog.rst:139 f12bccb1dc904d0bbffb0d9e5291ad3d msgid "Add settings for custom Jinja globals and tests" msgstr "" -#: ../../changelog.rst:104 cf2bd72795894ce796ae65a26307fa9e +#: ../../changelog.rst:140 c569ff52ef904228971c38b1a958847f msgid "Customize article summary ellipsis via ``SUMMARY_END_SUFFIX`` setting" msgstr "" -#: ../../changelog.rst:105 3494ccef87de4029a51d34e9f6ebac8c +#: ../../changelog.rst:141 733087bf4e14447095fb364a1d5b606f msgid "Customize Typogrify dash handling via new ``TYPOGRIFY_DASHES`` setting" msgstr "" -#: ../../changelog.rst:106 441907e7fc27419cad1f678c3d81fcdd +#: ../../changelog.rst:142 9e0de47310964a99bf1ec0a87f810036 msgid "Support Unicode when generating slugs" msgstr "" -#: ../../changelog.rst:107 0466696922dd4904a9a061c79d9e5d01 +#: ../../changelog.rst:143 c496a287d95b47759425578bc29d4cf3 msgid "Support Asciidoc ``.adoc`` file generation in Pelican importer" msgstr "" -#: ../../changelog.rst:108 0711923af6544d84a09b027877cd7318 +#: ../../changelog.rst:144 1f8597af3f9946129cfb150e9728c25c msgid "Improve user experience when ``pelican --listen`` web server is quit" msgstr "" -#: ../../changelog.rst:109 1736b73cd9354c5fb276263a0158f1d0 +#: ../../changelog.rst:145 418a06eb1d9d4332945b5b1729734579 msgid "Improve Invoke tasks template" msgstr "" -#: ../../changelog.rst:110 a243c2afd72349ebb46076aef63a62af +#: ../../changelog.rst:146 8b63e2e5d29a4cde830ea8c1df058ab1 msgid "Include tests in source distributions" msgstr "" -#: ../../changelog.rst:111 d3659b2430704e179785f6edeea9d975 +#: ../../changelog.rst:147 68105e5e919a43518ac6af8b88957e44 msgid "Switch CI from Travis to GitHub Actions" msgstr "" -#: ../../changelog.rst:112 a9ee05a0579d4153935499a3f3bdcc47 +#: ../../changelog.rst:148 053f40c3741c4d54bc840f2ad32f34eb msgid "Remove support for Python 2.7" msgstr "" -#: ../../changelog.rst:115 eb3830c633c14e63995b8fbcf8e3d29b +#: ../../changelog.rst:151 6190d59940dd4c57a603140e0813f9b5 msgid "4.2.0 - 2019-10-17" msgstr "" -#: ../../changelog.rst:117 5af9b29432a94955813a11932e9e38c8 +#: ../../changelog.rst:153 5f11442743c841ff91d46b643698dfa9 msgid "Support inline SVGs; don't treat titles in SVGs as HTML titles" msgstr "" -#: ../../changelog.rst:118 d776137d56d04320a1a70ced25696379 +#: ../../changelog.rst:154 a68bbd4f2a024c7a84c259aee8fcb621 msgid "Add category to feeds (in addition to tags)" msgstr "" -#: ../../changelog.rst:119 ab3c5b4616544a3d89492ff849de5932 +#: ../../changelog.rst:155 dd3937b7cb38480a84e6a5daed48e113 msgid "Improve content metadata field docs" msgstr "" -#: ../../changelog.rst:120 aa20a63221484e90954aaac555dba376 +#: ../../changelog.rst:156 87030fc248dc46e5902d3e7681702351 msgid "Add docs for including other Markdown/reST files in content" msgstr "" -#: ../../changelog.rst:123 f40de58367e94d50af3e6e700523edc7 +#: ../../changelog.rst:159 85163f7808a64f7cac3dd54f98c2a2fd msgid "4.1.3 - 2019-10-09" msgstr "" -#: ../../changelog.rst:125 910c8615c3224456a42555389c268e4c +#: ../../changelog.rst:161 486947a4cc584437aff9364d721eeb41 msgid "Fix quick-start docs regarding ``pelican --listen``" msgstr "" -#: ../../changelog.rst:126 1c9961cd18bd4d17ae1f9ff0f3f45990 +#: ../../changelog.rst:162 cf68238f21bd40b081eb670527e5ad88 msgid "Set default listen address to 127.0.0.1" msgstr "" -#: ../../changelog.rst:127 7108f2b9c2d8444b8fa1ca32a26e36cc +#: ../../changelog.rst:163 21aed223e69549038ee7b840fe0e45a5 msgid "Add extra/optional Markdown dependency to setup.py" msgstr "" -#: ../../changelog.rst:128 7d9eed3579384908b8ab564a4c358df8 +#: ../../changelog.rst:164 5c5c50a24bf945babe1fea501be5b672 msgid "Use correct SSH port syntax for rsync in tasks.py" msgstr "" -#: ../../changelog.rst:129 3b55feb812b14a1198b04659aa01ecf0 +#: ../../changelog.rst:165 cafa64aa81c94212a964ece5f6d00ea6 msgid "Place all deprecated settings handling together" msgstr "" -#: ../../changelog.rst:130 dc17ca3853c04536a3ade24a93d079ac +#: ../../changelog.rst:166 92ad7248e4d848f5b9955653a132ba1d msgid "Add related project URLs for display on PyPI" msgstr "" -#: ../../changelog.rst:131 c513a9e1fed74fe3ae3c23ffe2f804d9 +#: ../../changelog.rst:167 f97dcb0a8c6f41ca8e6a249f975688ab msgid "Skip some tests on Windows that can't pass due to filesystem differences" msgstr "" -#: ../../changelog.rst:134 ced29508dce44f0eb42c45aedc672fa6 +#: ../../changelog.rst:170 cb1b18c4628a48f3a7b59e4447057291 msgid "4.1.2 - 2019-09-23" msgstr "" -#: ../../changelog.rst:136 c448cf2e59da43248819ddb51f9f9738 +#: ../../changelog.rst:172 1cc7ba6aab5a43e9a3fbb04a8cf4c954 msgid "Fix pelican.settings.load_source to avoid caching issues - PR #2621" msgstr "" -#: ../../changelog.rst:139 98b3a78914f14383858960c37872cec0 +#: ../../changelog.rst:175 808b70fac79147a7a30cb263bfc091d5 msgid "4.1.1 - 2019-08-23" msgstr "" -#: ../../changelog.rst:141 7569ab6dfb9f4f59a4d9414a9ec307ac +#: ../../changelog.rst:177 3515525c09794e3eb685696916e9b4a8 msgid "Add AutoPub to auto-publish releases on PR merge" msgstr "" -#: ../../changelog.rst:142 29b086166a89485e9151534a891c8794 +#: ../../changelog.rst:178 e3958153de2543ab8af7b27e424a5199 msgid "Add CSS classes for reStructuredText figures" msgstr "" -#: ../../changelog.rst:143 3d90d9a7e7f244aeb5ef4bc09624c9d8 +#: ../../changelog.rst:179 469aba039b0e4bb5b08bd7bc9fd455f9 msgid "Pass ``argv`` to Pelican ``main`` entrypoint" msgstr "" -#: ../../changelog.rst:144 33de38d2ec8641ca865cebb06167ec58 +#: ../../changelog.rst:180 08494f27a31149a8a4e662d7160d334a msgid "Set default content status to a blank string rather than ``None``" msgstr "" -#: ../../changelog.rst:147 9ba143abfcdf4a9a86f7866b897c9831 +#: ../../changelog.rst:183 4e7e6da9e1a94e5886de5c7bb90da964 msgid "4.1.0 - 2019-07-14" msgstr "" -#: ../../changelog.rst:149 cc59d3e8f5f64f5a9ec02b56956e4d53 +#: ../../changelog.rst:185 de8697dee456433f8fd5592c79dc1235 msgid "Live browser reload upon changed files (provided via Invoke task)" msgstr "" -#: ../../changelog.rst:150 1013f5e7df5448b5a808743127ed0740 +#: ../../changelog.rst:186 67db4943813d410386e77969e6aea98f msgid "Add ``pyproject.toml``, managed by Poetry" msgstr "" -#: ../../changelog.rst:151 9548fcd5133743259a8e586f69e6453e +#: ../../changelog.rst:187 a6388203f3c44a31b2458bd0961c9e91 msgid "Support for invoking ``python -m pelican``" msgstr "" -#: ../../changelog.rst:152 c1ca4a3bfa27477ebcfd9ac5757cd20b +#: ../../changelog.rst:188 b526c18ddea74343b14a62d3933c31db msgid "Add relative source path attribute to content" msgstr "" -#: ../../changelog.rst:153 14c8367983884cd5913ef4aeaaae2ebe +#: ../../changelog.rst:189 98e5827380d24bb2b640c709ee1fa5bf msgid "Allow directories in ``EXTRA_PATH_METADATA``" msgstr "" -#: ../../changelog.rst:154 493069ecda9345cdab15204358d49856 +#: ../../changelog.rst:190 7372879d036e4c19967f008fed50bcfb msgid "" "Add ``all_articles`` variable to period pages (for recent posts " "functionality)" msgstr "" -#: ../../changelog.rst:155 57597a2f853047128a7f19d871a767cd +#: ../../changelog.rst:191 8b41c0640e9a4c4ca9458eea777c6c72 msgid "Improve debug mode output" msgstr "" -#: ../../changelog.rst:156 c1e2985b649844aface3795c16f24799 +#: ../../changelog.rst:192 00af35668b044b6da9e934104b73eac9 msgid "Remove blank or duplicate summaries from Atom feed" msgstr "" -#: ../../changelog.rst:157 be874126bdaa46ab868e9d5d572973ba +#: ../../changelog.rst:193 97c5594b58d94c45ada8a9efdb2216c8 msgid "" "Fix bugs in pagination, pelican-import, pelican-quickstart, and feed " "importer" msgstr "" -#: ../../changelog.rst:160 3220150f83f64d869d28b2f8abdfae29 +#: ../../changelog.rst:196 496531289a9c446c97d5e1842e5761f9 msgid "4.0.1 (2018-11-30)" msgstr "" -#: ../../changelog.rst:162 55ef92708e464069b85c860f407c44ee +#: ../../changelog.rst:198 48f43697fb824914a518283bab0ab39d msgid "Refactor ``pelican.server`` logging" msgstr "" -#: ../../changelog.rst:163 bbe751997c7541f78979d7885be777ad +#: ../../changelog.rst:199 7f431162613848738f2267518e0f435e msgid "Fix bug in which all static files were processed as \"draft\"" msgstr "" -#: ../../changelog.rst:164 e85f8cfa33124937bff767d633c505e6 +#: ../../changelog.rst:200 7c9866081cc0478aab4bcbb65f241b2b msgid "Bug fixes for Invoke/Makefile automation, Importer, and other miscellanea" msgstr "" -#: ../../changelog.rst:166 aee9e749eaa6417c9d7617678fbd5017 -#, python-format +#: ../../changelog.rst:202 b4f0a6a574f54e8baec02108e3cdf121 +#, python-brace-format, python-format msgid "" "If upgrading from 3.7.x or earlier, please note that slug-related " "settings in 4.0+ use ``{slug}`` and/or ``{lang}`` rather than ``%s``. If " @@ -560,1110 +673,1117 @@ msgid "" "``TAG_FEED_ATOM.format(slug=tag.slug)``" msgstr "" -#: ../../changelog.rst:175 1c9f10c7ca554583840076dd4198471b +#: ../../changelog.rst:211 963535bf97cb4048b11dd47fa7fe5cb1 msgid "4.0.0 (2018-11-13)" msgstr "" -#: ../../changelog.rst:177 2e48c6a93f014447a24f76ec22c56634 +#: ../../changelog.rst:213 be207dbf17cc4c38ab4c8617ece18d43 msgid "Replace ``develop_server.sh`` script with ``pelican --listen``" msgstr "" -#: ../../changelog.rst:178 e9913592f867453ca8eb027547556190 +#: ../../changelog.rst:214 bfeb93e653cc44b4a6e65c1b5978e0d2 msgid "Improved copy/link behavior for large static files (e.g., videos)" msgstr "" -#: ../../changelog.rst:179 7b739431500a4e508b4eddee2944998c +#: ../../changelog.rst:215 0f6be38dbd8942c8a8692c377624a26a +#, python-brace-format msgid "" "New ``{static}`` syntax to link to static content; content linked to by " "``{static}`` and ``{attach}`` is automatically copied over even if not in" " ``STATIC_PATHS``" msgstr "" -#: ../../changelog.rst:182 7d5ec1addb4a49b6825a365c1b28e6b7 +#: ../../changelog.rst:218 6d42f604ef724c72b0d691d52cced384 msgid "Pages can now have ``draft`` status" msgstr "" -#: ../../changelog.rst:183 567c77a6a7c24d999b974ce0ed8ea7f9 +#: ../../changelog.rst:219 c6513f293ae04b9fb1cee4ef355de4bd msgid "Show current settings via new ``--print-settings`` flag" msgstr "" -#: ../../changelog.rst:184 f8206229f89f474990ad86f3670eb6c6 -#, python-format +#: ../../changelog.rst:220 63636f2fc7184030bc83647b4f81d63a +#, python-brace-format, python-format msgid "" "All settings for slugs now use ``{slug}`` and/or ``{lang}`` rather than " "``%s``. If ``%s``-style settings are encountered, Pelican will emit a " "warning and fallback to the default setting." msgstr "" -#: ../../changelog.rst:187 55c29729d5ae42f6931b0af7ea314bcb +#: ../../changelog.rst:223 594a958f9f9c495c86c4eb15ee1d353e msgid "New signals: ``feed_generated`` and ``page_generated_write_page``" msgstr "" -#: ../../changelog.rst:188 fdd81adbccd2499988dda1b8faef1ab3 +#: ../../changelog.rst:224 4c1a13c890d04aea9bdb43ba3a85f98e msgid "Replace Fabric with Invoke and ``fabfile.py`` template with ``tasks.py``" msgstr "" -#: ../../changelog.rst:189 85659c414dad4293b8a0d6ad9350c4d9 +#: ../../changelog.rst:225 05c5bacea3de4d159dc464bb80d3b70d msgid "" "Replace ``PAGINATED_DIRECT_TEMPLATES`` by ``PAGINATED_TEMPLATES``, " "extending control over pagination to all templates and making page size " "variable" msgstr "" -#: ../../changelog.rst:191 2e76745f8fea417fb90052f755372212 +#: ../../changelog.rst:227 d4c57ccd147b409bafd324580546ce89 msgid "" "Replace ``SLUG_SUBSTITUTIONS`` (and friends) by " "``SLUG_REGEX_SUBSTITUTIONS`` for more finegrained control" msgstr "" -#: ../../changelog.rst:193 c477dc73b63646c2bf339afff54a2e5f +#: ../../changelog.rst:229 5fcdd3851c4348ffb6f9f30e21d01cca +#, python-brace-format msgid "" "``'{base_name}'`` value in ``PAGINATION_PATTERNS`` setting no longer " "strips ``'bar'`` from ``'foo/bar.html'`` (unless ``'bar' == 'index'``)." msgstr "" -#: ../../changelog.rst:195 0c9192b9f8c64af491d33f9358694940 +#: ../../changelog.rst:231 f21a405be2434ee78cac35d1f653b6ba msgid "" "``ARTICLE_ORDER_BY`` and ``PAGE_ORDER_BY`` now also affect 1) category, " "tag and author pages 2) feeds 3) draft and hidden articles and pages" msgstr "" -#: ../../changelog.rst:197 6e339043faff4d4a9a718a7571bf9698 +#: ../../changelog.rst:233 781dd286cb154c46a9e2036e697bcf7f msgid "" "New ``ARTICLE_TRANSLATION_ID`` and ``PAGE_TRANSLATION_ID`` settings to " "specify metadata attributes used to identify/disable translations" msgstr "" -#: ../../changelog.rst:199 84e3cebb5adf4c45bda8f132772f2bdd +#: ../../changelog.rst:235 ae7fd53c1d6047eb8027016c4a00bd65 msgid "Make the HTML reader parse multiple occurrences of metadata tags as a list" msgstr "" -#: ../../changelog.rst:200 790b535916b4402e8f3e568a96d208cc +#: ../../changelog.rst:236 dca4b981c67c42a080e5724d65ddf825 msgid "New Blogger XML backup importer" msgstr "" -#: ../../changelog.rst:201 84ba1adba13c4c66a843be015263cc5f +#: ../../changelog.rst:237 f92482bf76ec447186de98f4a471dd55 msgid "" "Wordpress importer now updates file links to point to local copies if the" " files were downloaded with ``--wp-attach``." msgstr "" -#: ../../changelog.rst:203 e40ac2db0d404e3d8b51e350256eb49b +#: ../../changelog.rst:239 0778a52f39704e629fed5df26deeaeb6 msgid "" "Importer no longer inserts extra newlines, to prevent breaking of HTML " "attributes." msgstr "" -#: ../../changelog.rst:205 a026ba70157640f9afdbbfd1c52635ed +#: ../../changelog.rst:241 6b21bcb847014ebcb4e658aaf54fd591 msgid "" "Pelican server now prioritises ``foo.html`` and ``foo/index.html`` over " "``foo/`` when resolving ``foo``." msgstr "" -#: ../../changelog.rst:209 7bd3c3fdc45a4e848499d05fd1a2149a +#: ../../changelog.rst:245 d9c7906de4814a988e96a0f836121773 msgid "3.7.1 (2017-01-10)" msgstr "" -#: ../../changelog.rst:211 a2224771f8184ef2ae2ae19e69ffff95 +#: ../../changelog.rst:247 dee875ace0cf4cf4a84e968613c64f1e msgid "Fix locale issues in Quickstart script" msgstr "" -#: ../../changelog.rst:212 4bc8c9d8dbf24260a84512695081a437 +#: ../../changelog.rst:248 0735e4ab311648fba920ba433eb5c81b msgid "Specify encoding for README and CHANGELOG in setup.py" msgstr "" -#: ../../changelog.rst:215 cdc85601d26440c08ba36b90b241218a +#: ../../changelog.rst:251 713d99ebaa1f446a857751b754b63677 msgid "3.7.0 (2016-12-12)" msgstr "" -#: ../../changelog.rst:217 88cad459481748c385a4d15e5041255c +#: ../../changelog.rst:253 0330d842ba514f58965a9b625db18791 msgid "Atom feeds output ```` in addition to ````" msgstr "" -#: ../../changelog.rst:218 e8f51cd31ea94d1cb0fff327607a5106 +#: ../../changelog.rst:254 7e5d0a914d214dbfb969b4e270f148c5 msgid "" "Atom feeds use ```` for the original publication date and " "```` for modifications" msgstr "" -#: ../../changelog.rst:220 56be71bb20124ccbb10bf502c2158ebd +#: ../../changelog.rst:256 4f0ed4869e00418b8b16a7e692516126 msgid "Simplify Atom feed ID generation and support URL fragments" msgstr "" -#: ../../changelog.rst:221 1ece62b3d5424ec4abd099d5b2bf20e0 +#: ../../changelog.rst:257 cdc742c1ed2c44a1b76a5cf7374c1374 msgid "Produce category feeds with category-specific titles" msgstr "" -#: ../../changelog.rst:222 106c730749474695b90ef8e5ddd31a7e +#: ../../changelog.rst:258 6a89fde3d1084e0d91e8b89b293a851c msgid "" "RSS feeds now default to summary instead of full content; set " "``RSS_FEED_SUMMARY_ONLY = False`` to revert to previous behavior" msgstr "" -#: ../../changelog.rst:224 14f1280956dc466a97042a5a313f9511 +#: ../../changelog.rst:260 dbe1f00b9a114bf6a5e7728eb15cbfd2 msgid "Replace ``MD_EXTENSIONS`` with ``MARKDOWN`` setting" msgstr "" -#: ../../changelog.rst:225 57cec9a1574f40f691b026cd680b681e +#: ../../changelog.rst:261 e8d183ddfb3a4b2bbb4ccc523ff1ce4d msgid "" "Replace ``JINJA_EXTENSIONS`` with more-robust ``JINJA_ENVIRONMENT`` " "setting" msgstr "" -#: ../../changelog.rst:226 9a398118c3d34bb996dc9af2d9c9503a +#: ../../changelog.rst:262 c4044fb542ce4772bc469c06f3606f88 msgid "" "Improve summary truncation logic to handle special characters and tags " "that span multiple lines, using HTML parser instead of regular " "expressions" msgstr "" -#: ../../changelog.rst:228 75ef90817db34f7ea869a68fcc3fb469 +#: ../../changelog.rst:264 6f6a8c2b60324ad6b00feb9f492c4d45 msgid "Include summary when looking for intra-site link substitutions" msgstr "" -#: ../../changelog.rst:229 264f880b25284b01b7135c2a2b9e8dc1 +#: ../../changelog.rst:265 e121d156b37b4f59a8846b700e1769ea +#, python-brace-format msgid "Link to authors and index via ``{author}name`` and ``{index}`` syntax" msgstr "" -#: ../../changelog.rst:230 4c7abfddef0b454882888ba479aea6b7 +#: ../../changelog.rst:266 1d210456ced542c1babb622b06b2c4f4 msgid "Override widget names via ``LINKS_WIDGET_NAME`` and ``SOCIAL_WIDGET_NAME``" msgstr "" -#: ../../changelog.rst:231 2c5e79d0ad6141c9b6a19ee3e65d091e +#: ../../changelog.rst:267 6104e9c05e844436b12e538008947f47 msgid "Add ``INDEX_SAVE_AS`` option to override default ``index.html`` value" msgstr "" -#: ../../changelog.rst:232 6f89cd4a39ec445297f7dbb93e662e45 +#: ../../changelog.rst:268 0f875978cade45889a49f818c6664093 msgid "Remove ``PAGES`` context variable for themes in favor of ``pages``" msgstr "" -#: ../../changelog.rst:233 5b5ca0f599de4532964b3abe99a8c0d7 +#: ../../changelog.rst:269 bd6d148038524dbd8889ef4479115f15 msgid "" "``SLUG_SUBSTITUTIONS`` now accepts 3-tuple elements, allowing URL slugs " "to contain non-alphanumeric characters" msgstr "" -#: ../../changelog.rst:235 159f3122fe94405489ccc20fe78f53b5 +#: ../../changelog.rst:271 84e180ffd01640e39c8a02616d665f92 msgid "" "Tag and category slugs can be controlled with greater precision using the" " ``TAG_SUBSTITUTIONS`` and ``CATEGORY_SUBSTITUTIONS`` settings" msgstr "" -#: ../../changelog.rst:237 e163a8d8d61a4997b4259fcad5005d9c +#: ../../changelog.rst:273 c42874e842584772a9c6abda4cf1d2b2 msgid "" "Author slugs can be controlled with greater precision using the " "``AUTHOR_SUBSTITUTIONS`` setting" msgstr "" -#: ../../changelog.rst:239 f81c1120fcd44bfc9dd76acfb090ca9c +#: ../../changelog.rst:275 c3ad7f1d581d4a848a0d80425732faaa msgid "``DEFAULT_DATE`` can be defined as a string" msgstr "" -#: ../../changelog.rst:240 d79a66c8b8b44b3a93ec70011feae3e4 +#: ../../changelog.rst:276 28824188813542f08ef3546d48faeb4d msgid "Use ``mtime`` instead of ``ctime`` when ``DEFAULT_DATE = 'fs'``" msgstr "" -#: ../../changelog.rst:241 ec0aa5c74458441c9ba450673f5fd2ef +#: ../../changelog.rst:277 4cbfd98d99134eaba723b0a98dd38fdd msgid "Add ``--fatal=errors|warnings`` option for use with continuous integration" msgstr "" -#: ../../changelog.rst:242 13b4ab828a2941dfa8f1418685bb81a0 +#: ../../changelog.rst:278 e0346ee13c104f26a360952f415db7ca msgid "" "When using generator-level caching, ensure previously-cached files are " "processed instead of just new files." msgstr "" -#: ../../changelog.rst:244 d89e5097e9984f3daf4db6e9b929ada0 +#: ../../changelog.rst:280 3faa472e3d4440dfacb1e40b20cdbb36 msgid "Add Python and Pelican version information to debug output" msgstr "" -#: ../../changelog.rst:245 4716f79323444484a70f7fe8c2650e1f +#: ../../changelog.rst:281 7ca51c4375d641d18777b07bedb86f2c msgid "Improve compatibility with Python 3.5" msgstr "" -#: ../../changelog.rst:246 0f44c8d133b84c41a41d850300da1578 +#: ../../changelog.rst:282 cf9b150420fa47369ff0c95e8edc002b msgid "Comply with and enforce PEP8 guidelines" msgstr "" -#: ../../changelog.rst:247 c334d1c279204190893641f5ac313e36 +#: ../../changelog.rst:283 889cf4339a4b4d8daf520a7fb9985d8b msgid "Replace tables in settings documentation with ``data::`` directives" msgstr "" -#: ../../changelog.rst:250 461f1d0f43544a69be1139a9f19fe25a +#: ../../changelog.rst:286 586aeb301e8941fcb2171458f12ad198 msgid "3.6.3 (2015-08-14)" msgstr "" -#: ../../changelog.rst:252 7cff2bfca67f43bcb81338e645c16d6a +#: ../../changelog.rst:288 5499ed424969406c924c504f6f62f63e msgid "Fix permissions issue in release tarball" msgstr "" -#: ../../changelog.rst:255 73ecf430824c4621a9feba3aeb0f0435 +#: ../../changelog.rst:291 da9c552726b940a3b07c45b4233657ce msgid "3.6.2 (2015-08-01)" msgstr "" -#: ../../changelog.rst:257 304aa2b89bdb4d6a9765f92c169eeab7 +#: ../../changelog.rst:293 d29fcc033a634d8aac8f656c5eb9674f msgid "Fix installation errors related to Unicode in tests" msgstr "" -#: ../../changelog.rst:258 8b544b800b20492db937b02285e42065 +#: ../../changelog.rst:294 1276e0c3d1a9447d84e25c3ad9e7abe7 msgid "Don't show pagination in ``notmyidea`` theme if there's only one page" msgstr "" -#: ../../changelog.rst:259 f4aa88761161465faaf260a5b8fd25a9 +#: ../../changelog.rst:295 c12da2ed75d64539af457cd49216fd7b msgid "Make hidden pages available in context" msgstr "" -#: ../../changelog.rst:260 13a3a8e59edc4125afa6dee4ed568e9d +#: ../../changelog.rst:296 22195be7d66d49b5a2536d4125dbb247 msgid "Improve URLWrapper comparison" msgstr "" -#: ../../changelog.rst:263 fa56610009e8407a89af312d093f2aff +#: ../../changelog.rst:299 3fa9c04278aa4a6daaaacf03bcbc86c4 msgid "3.6.0 (2015-06-15)" msgstr "" -#: ../../changelog.rst:265 c4f546492e6447edb4d87c9317bdfb3f +#: ../../changelog.rst:301 743e2686d8584c64bba2ff52de34b282 msgid "Disable caching by default in order to prevent potential confusion" msgstr "" -#: ../../changelog.rst:266 b874f6f5b4734a5c80587442728a7544 +#: ../../changelog.rst:302 5b7083ceed2642178328e7faf6c2e3d7 msgid "Improve caching behavior, replacing ``pickle`` with ``cpickle``" msgstr "" -#: ../../changelog.rst:267 1f5690a0d5b6437e99c0ea9104de979b +#: ../../changelog.rst:303 de23594147fd4549af0d010d938b04b1 msgid "Allow Markdown or reST content in metadata fields other than ``summary``" msgstr "" -#: ../../changelog.rst:268 a1f397d14aca4c879211d95a5ca892db +#: ../../changelog.rst:304 7d11607580c449709f22c3a7f1dd8cf1 msgid "Support semicolon-separated author/tag lists" msgstr "" -#: ../../changelog.rst:269 9926a6f073cc4fa9813df12d652898be +#: ../../changelog.rst:305 1b78213ac5644a09b8d58bac7c132b30 msgid "Improve flexibility of article sorting" msgstr "" -#: ../../changelog.rst:270 e832f800cde5424bb332cc49f30f3f0a +#: ../../changelog.rst:306 24fc473a1dcc409fbceb231cc61bf0db msgid "Add ``--relative-urls`` argument" msgstr "" -#: ../../changelog.rst:271 3d1c82c08deb4a778f807be5b779d381 +#: ../../changelog.rst:307 a56f975051ca406b8ba80ed2b688316e msgid "Support devserver listening on addresses other than localhost" msgstr "" -#: ../../changelog.rst:272 b6ee74584c064fac80c6f0e37d4f1d68 +#: ../../changelog.rst:308 e1c6f89208aa43768200ae0b5cb667e4 msgid "Unify HTTP server handlers to ``pelican.server`` throughout" msgstr "" -#: ../../changelog.rst:273 7e5010e2d8b74a03b694e8fa433fdf98 +#: ../../changelog.rst:309 c2543badc27243f1aadd684351852866 msgid "Handle intra-site links to draft posts" msgstr "" -#: ../../changelog.rst:274 a9afa1c067be459886fd7998d52f59d3 +#: ../../changelog.rst:310 3c111a7e2c7b43c683c7bef6a78058a7 msgid "Move ``tag_cloud`` from core to plugin" msgstr "" -#: ../../changelog.rst:275 432317300d7a4b2f82199c0f275716e4 +#: ../../changelog.rst:311 5e8d38af8ae647ba80edfb065967c18a msgid "Load default theme's external resources via HTTPS" msgstr "" -#: ../../changelog.rst:276 56de44e81ae14997afb15c15e59f36ce +#: ../../changelog.rst:312 8577b7a1315f4c0caa8a68379c7b9da6 msgid "Import drafts from WordPress XML" msgstr "" -#: ../../changelog.rst:277 f1ef4f1c13434d6b9614ebe9ebddfce6 +#: ../../changelog.rst:313 e2debaa9a5224d09af847e937c1446a6 msgid "Improve support for Windows users" msgstr "" -#: ../../changelog.rst:278 0fef1b4c413d491a98aba0c84e082594 +#: ../../changelog.rst:314 b2042bbb92e74fe5ae51df03addf61da msgid "Enhance logging and test suite" msgstr "" -#: ../../changelog.rst:279 432c66ec8584401797ea817ec661c45b +#: ../../changelog.rst:315 373b2ce42e7b4b10b4302660f177b137 msgid "Clean up and refactor codebase" msgstr "" -#: ../../changelog.rst:280 e22e5fb2b5264d1ca6eb78c067c76a32 +#: ../../changelog.rst:316 ad174f831fc7487c9efec8f1b1ebc937 msgid "New signals: ``all_generators_finalized`` and ``page_writer_finalized``" msgstr "" -#: ../../changelog.rst:283 b4d02cf4a5b642dcbb0237738d79bfcb +#: ../../changelog.rst:319 a0e616e94c144183bb7cd8f0d0f9f253 msgid "3.5.0 (2014-11-04)" msgstr "" -#: ../../changelog.rst:285 e9efd7356dc9488aa6f4f20ba995683a +#: ../../changelog.rst:321 d4c1d004789b4cfa9187a2994e2f3613 msgid "" "Introduce ``ARTICLE_ORDER_BY`` and ``PAGE_ORDER_BY`` settings to control " "the order of articles and pages." msgstr "" -#: ../../changelog.rst:287 7cba6f51788f47f391c2eb2c35bff315 +#: ../../changelog.rst:323 8532ec7e6c884d6d886c75690a860810 msgid "Include time zone information in dates rendered in templates." msgstr "" -#: ../../changelog.rst:288 8288271ca2e74d6da347bdce53a3cf59 +#: ../../changelog.rst:324 399b4302a06c4d71853eb69309edaec9 msgid "Expose the reader name in the metadata for articles and pages." msgstr "" -#: ../../changelog.rst:289 0c44eda91d9c4722b8ae87ed75416fd1 +#: ../../changelog.rst:325 03f44d912342475d981539bfc28e893b +#, python-brace-format msgid "" "Add the ability to store static files along with content in the same " "directory as articles and pages using ``{attach}`` in the path." msgstr "" -#: ../../changelog.rst:291 d96ca5c3ced44a7db8997feda6d5c36d +#: ../../changelog.rst:327 aad755538ae5458bb0266537ce3a3488 msgid "" "Prevent Pelican from raising an exception when there are duplicate pieces" " of metadata in a Markdown file." msgstr "" -#: ../../changelog.rst:293 59a2c665716a4d51bdec967e877f86a1 +#: ../../changelog.rst:329 6ccca5efc34c43fc9e6549ce27d07b1a msgid "" "Introduce the ``TYPOGRIFY_IGNORE_TAGS`` setting to add HTML tags to be " "ignored by Typogrify." msgstr "" -#: ../../changelog.rst:295 fa33c1b08c7b4286b25b56b4ea285c5a +#: ../../changelog.rst:331 3a07ce5e47fb446f935a8aef182feda9 #, python-format msgid "" "Add the ability to use ``-`` in date formats to strip leading zeros. For " "example, ``%-d/%-m/%y`` will now result in the date ``9/8/12``." msgstr "" -#: ../../changelog.rst:297 64d61ee9d8ae4414b9b84a8051cd5522 +#: ../../changelog.rst:333 2b9865f51d2c431cad79bb1ad85dcf13 msgid "" "Ensure feed generation is correctly disabled during quickstart " "configuration." msgstr "" -#: ../../changelog.rst:298 85d7dfece0244142a1e486fbae2beb01 +#: ../../changelog.rst:334 900fd70063554c06b56e0c13084c5e56 msgid "" "Fix ``PAGE_EXCLUDES`` and ``ARTICLE_EXCLUDES`` from incorrectly matching " "sub-directories." msgstr "" -#: ../../changelog.rst:300 3acc9c23e76e4b289d9de3705c416913 +#: ../../changelog.rst:336 bef97ccdcc354bf68f7a738fefee44d0 msgid "Introduce ``STATIC_EXCLUDE`` setting to add static file excludes." msgstr "" -#: ../../changelog.rst:301 10dd085e254948f986aa41f9bd5ba73b +#: ../../changelog.rst:337 96218c06cbc84b9884f17d4b3c2782d4 msgid "" "Fix an issue when using ``PAGINATION_PATTERNS`` while ``RELATIVE_URLS`` " "is enabled." msgstr "" -#: ../../changelog.rst:303 f7b355566396425cbd08985d5771e6d4 +#: ../../changelog.rst:339 0c2ccbc6e9e74f69912fecf3a9812535 msgid "" "Fix feed generation causing links to use the wrong language for month " "names when using other locales." msgstr "" -#: ../../changelog.rst:305 28f48794554048308015e2fb52cc4c5b +#: ../../changelog.rst:341 ddc6d5315bfa4dd1888de8ff606e1efe msgid "" "Fix an issue where the authors list in the simple template wasn't " "correctly formatted." msgstr "" -#: ../../changelog.rst:307 5509ab0c156845d1a7f1a59306ccfe6c +#: ../../changelog.rst:343 28013aa7b4734809bd162e47c5bded8f msgid "Fix an issue when parsing non-string URLs from settings." msgstr "" -#: ../../changelog.rst:308 4da2cbc439db416daeb4442a29645664 +#: ../../changelog.rst:344 4fe13830f2ed4449820e4a126e29db74 msgid "Improve consistency of debug and warning messages." msgstr "" -#: ../../changelog.rst:311 2e98c390cf6b4b4b93ddcce23014dbe9 +#: ../../changelog.rst:347 e412e8ca8ce94736a1bd9b64260a17c7 msgid "3.4.0 (2014-07-01)" msgstr "" -#: ../../changelog.rst:313 b3f12ddd82d74409b734a8bd10458173 +#: ../../changelog.rst:349 1153f4eed1394ce3a12d65af79337222 msgid "Speed up content generation via new caching mechanism" msgstr "" -#: ../../changelog.rst:314 c1772deca0344f74aad300e77e2641b2 +#: ../../changelog.rst:350 78911d6e2e8f43ce879ae634815c16a4 msgid "Add selective post generation (instead of always building entire site)" msgstr "" -#: ../../changelog.rst:315 7db419405a1740ef917e19f05015228a +#: ../../changelog.rst:351 4fe3d9df73aa40f986e1a6f7602c3b09 msgid "Many documentation improvements, including switching to prettier RtD theme" msgstr "" -#: ../../changelog.rst:316 a045ce18d5724b888849a2036fdf626d +#: ../../changelog.rst:352 517fbe1c874c48c2ab429e1ea5633fe3 msgid "Add support for multiple content and plugin paths" msgstr "" -#: ../../changelog.rst:317 75ddeed2af5e4a56a83e6b4026807ebf +#: ../../changelog.rst:353 ebcfb3cf3a3a4841a4e144fa186ab023 msgid "" "Add ``:modified:`` metadata field to complement ``:date:``. Used to " "specify the last date and time an article was updated independently from " "the date and time it was published." msgstr "" -#: ../../changelog.rst:320 0049c916daed45a6bcd389ad0c120732 +#: ../../changelog.rst:356 350a9e23a1e24e8d927ea35835b92ca0 msgid "Add support for multiple authors via new ``:authors:`` metadata field" msgstr "" -#: ../../changelog.rst:321 bd572ae6cd4c4783b751a35f4f001ed6 +#: ../../changelog.rst:357 0b0f1d5303444f29990c75b5e071be14 msgid "Watch for changes in static directories when in auto-regeneration mode" msgstr "" -#: ../../changelog.rst:322 b48f6001e36e428491aa05fa2d419cd1 +#: ../../changelog.rst:358 29aafd6e485d45188d102fdb72feaafe msgid "Add filters to limit log output when desired" msgstr "" -#: ../../changelog.rst:323 5d67072828f04eb1a2b8d37aca1706e4 +#: ../../changelog.rst:359 a77cea47df51490595f9ee1b8e05fdd1 msgid "Add language support to drafts" msgstr "" -#: ../../changelog.rst:324 5f6eef6c622a468ab0750bc4fbafffcd +#: ../../changelog.rst:360 4bd686906beb45ddab847c0cdac33be8 msgid "Add ``SLUGIFY_SOURCE`` setting to control how post slugs are generated" msgstr "" -#: ../../changelog.rst:325 f77675fb2cb94589b821eaf0116d5b33 +#: ../../changelog.rst:361 6ce9976300e64d7dadb2048080424994 msgid "Fix many issues relating to locale and encoding" msgstr "" -#: ../../changelog.rst:326 b90206854315449696be45e4d459e5b4 +#: ../../changelog.rst:362 da577863fe4844d9b74218625a26f6ad msgid "Apply Typogrify filter to post summary" msgstr "" -#: ../../changelog.rst:327 86383b9bc16e4b4a9ec3d15e7b727ca1 +#: ../../changelog.rst:363 faa72319441d4e8698e29c1bf829189f msgid "" "Preserve file metadata (e.g. time stamps) when copying static files to " "output" msgstr "" -#: ../../changelog.rst:328 f844db2703af4069830a3fbcbd3841bd +#: ../../changelog.rst:364 d2b92229d5494bea903ad60e6a5c8335 msgid "Move AsciiDoc support from Pelican core into separate plugin" msgstr "" -#: ../../changelog.rst:329 1c30d68d58dc42d9b33c2662f1258bcd +#: ../../changelog.rst:365 61a9b4aa9cb44033b2f4229d2b167c64 msgid "" "Produce inline links instead of reference-style links when importing " "content" msgstr "" -#: ../../changelog.rst:330 fa8944dc8e284fe4bf78ad3a0676af3f +#: ../../changelog.rst:366 d94f8c5cce634cc8ba784a3b59fb4819 msgid "Improve handling of ``IGNORE_FILES`` setting behavior" msgstr "" -#: ../../changelog.rst:331 f4c5805f6879483f9aa25e247f49016e +#: ../../changelog.rst:367 e3d657b677384a4588da385c9b21080a msgid "Properly escape symbol characters in tag names (e.g., ``C++``)" msgstr "" -#: ../../changelog.rst:332 d4c27bbafbd0427e821e301a503eec07 +#: ../../changelog.rst:368 d519c9f50e564647987ec969d7ec0ccf msgid "Minor tweaks for Python 3.4 compatibility" msgstr "" -#: ../../changelog.rst:333 743111e35a0c4303985dcce214e3e29f +#: ../../changelog.rst:369 5ce6f5c727f447c9a432d1fd363e2c29 msgid "Add several new signals" msgstr "" -#: ../../changelog.rst:336 46ee1a42a2ac4f688e20db25231a97cc +#: ../../changelog.rst:372 dae29c0187c44c27972be55b01c69ef8 msgid "3.3.0 (2013-09-24)" msgstr "" -#: ../../changelog.rst:338 d38c96a268fb4928b7884c32f04ea781 +#: ../../changelog.rst:374 17fad8c0afd94ba5a3b660e70b74a282 msgid "Drop Python 3.2 support in favor of Python 3.3" msgstr "" -#: ../../changelog.rst:339 e4b1b4170e3a4daf85bb3e0b4a33d84c +#: ../../changelog.rst:375 ad9c00a4712845a9a13423e6b9b02a92 msgid "" "Add ``Fabfile`` so Fabric can be used for workflow automation instead of " "Make" msgstr "" -#: ../../changelog.rst:340 8f898752127545598c060470ba4ea5a6 +#: ../../changelog.rst:376 cd23162f223245a685ff1a9881b8b195 msgid "" "``OUTPUT_RETENTION`` setting can be used to preserve metadata (e.g., VCS " "data such as ``.hg`` and ``.git``) from being removed from output " "directory" msgstr "" -#: ../../changelog.rst:342 3cef6e0824db42ef8eb2a6db21e018c4 +#: ../../changelog.rst:378 2d4af689970445558506be64942cda4d msgid "Tumblr import" msgstr "" -#: ../../changelog.rst:343 9b35ec96add44773857342682a38fbe9 +#: ../../changelog.rst:379 94cb151962db4a4186070048cf9a52d1 msgid "Improve logic and consistency when cleaning output folder" msgstr "" -#: ../../changelog.rst:344 0e3383e3461a44b590b00a88c8543859 +#: ../../changelog.rst:380 4f24e4305c8f49baba762604f81a009b msgid "Improve documentation versioning and release automation" msgstr "" -#: ../../changelog.rst:345 ab9935d7e2c84ccb852185870f8d1cc9 +#: ../../changelog.rst:381 fd8868d0c4ee4ec5b998c117e60fe784 msgid "Improve pagination flexibility" msgstr "" -#: ../../changelog.rst:346 92bd1ab368544083ac4e64f5d424c151 +#: ../../changelog.rst:382 eb2be9edbc6e470f952a97cac0a8c012 msgid "" "Rename signals for better consistency (some plugins may need to be " "updated)" msgstr "" -#: ../../changelog.rst:347 740eae7ce680434c981b4064809072a3 +#: ../../changelog.rst:383 89f9707a3d1e443389b024a5bc34f87e msgid "" "Move metadata extraction from generators to readers; metadata extraction " "no longer article-specific" msgstr "" -#: ../../changelog.rst:349 d1ae5b5bc77f4bcaa40d5bd86cdc0fcc +#: ../../changelog.rst:385 41bb6f6c43cd493ab89c900de7aa6628 msgid "" "Deprecate ``FILES_TO_COPY`` in favor of ``STATIC_PATHS`` and " "``EXTRA_PATH_METADATA``" msgstr "" -#: ../../changelog.rst:351 806154386d4c45d9b625087bbd8706bd +#: ../../changelog.rst:387 86a7dff5bc8645c3be130a8ae4add149 msgid "Summaries in Markdown posts no longer include footnotes" msgstr "" -#: ../../changelog.rst:352 1e20db19c60442a4ae4c517d5edaac8c +#: ../../changelog.rst:388 009790743d7f42ba8278f18c392db041 msgid "" "Remove unnecessary whitespace in output via ``lstrip_blocks`` Jinja " "parameter" msgstr "" -#: ../../changelog.rst:353 72b17016676643d4863b6da2dc5dd585 +#: ../../changelog.rst:389 38b06c9a766c4c93b6d8e2869a5b3711 msgid "Move PDF generation from core to plugin" msgstr "" -#: ../../changelog.rst:354 c8e9e2beddd242038b0655913de16745 +#: ../../changelog.rst:390 bb68b5bb0de84b9abfcd65987be9c368 msgid "Replace ``MARKUP`` setting with ``READERS``" msgstr "" -#: ../../changelog.rst:355 39124ff576a145e194694060c394ebea +#: ../../changelog.rst:391 4a0c9f70f0f24261a597ce1b155e0800 msgid "Add warning if img tag is missing ``alt`` attribute" msgstr "" -#: ../../changelog.rst:356 039cc780731643f882a0dd52bd7486d9 +#: ../../changelog.rst:392 dcabdeff1f5e4ee69292730bb31c9131 +#, python-brace-format msgid "Add support for ``{}`` in relative links syntax, besides ``||``" msgstr "" -#: ../../changelog.rst:357 9289f5f1c5f04c5894cb8e7e02f9f5c8 +#: ../../changelog.rst:393 9fde536f5fca40e6a620b5f07049a0c3 +#, python-brace-format msgid "Add support for ``{tag}`` and ``{category}`` relative links" msgstr "" -#: ../../changelog.rst:358 a214dc13448b479bb7af0a16825457aa +#: ../../changelog.rst:394 b241cd3f2847484bb7a56631c58d5ba4 msgid "Add a ``content_written`` signal" msgstr "" -#: ../../changelog.rst:361 5249278a96bc437fa297368c8f672404 +#: ../../changelog.rst:397 b6077687c2a64ddeafa187b1448c048f msgid "3.2.1 and 3.2.2" msgstr "" -#: ../../changelog.rst:363 3f9b98d264e048949c389dbe3e260652 +#: ../../changelog.rst:399 bf6c37fc7c2e47f0aee3ee9cb0cb5306 msgid "Facilitate inclusion in FreeBSD Ports Collection" msgstr "" -#: ../../changelog.rst:366 124cc3f3f8924e918bd0789422649535 +#: ../../changelog.rst:402 3e800dbf3fe24766b77a043bc8da3c09 msgid "3.2 (2013-04-24)" msgstr "" -#: ../../changelog.rst:368 fa25abf620e84a568df67473d9b3e20f +#: ../../changelog.rst:404 17cb561f2e184679831d2e3ac7eda3de msgid "Support for Python 3!" msgstr "" -#: ../../changelog.rst:369 b1702663f9ff41e387aa055aa8a80985 +#: ../../changelog.rst:405 faee303362bb40ad952cc4581036f070 msgid "" "Override page save-to location from meta-data (enables using a static " "page as the site's home page, for example)" msgstr "" -#: ../../changelog.rst:371 3d9f1c80f4c74f0fb655aaff98846e2e +#: ../../changelog.rst:407 3fc6523eaace489494b61380def294d1 msgid "Time period archives (per-year, per-month, and per-day archives of posts)" msgstr "" -#: ../../changelog.rst:372 ee27abd30d204213967d190e45bc3cce +#: ../../changelog.rst:408 3eafb73945bf414cbcb903a9695ff8de msgid "Posterous blog import" msgstr "" -#: ../../changelog.rst:373 2614d3717c644bd4b567eb2bbcec9c5b +#: ../../changelog.rst:409 cc3982d7a21146319745d929a38b43d9 msgid "Improve WordPress blog import" msgstr "" -#: ../../changelog.rst:374 8e10fa12d60b4473858214e618f934f3 +#: ../../changelog.rst:410 165fdfe5bfe1415c8b6cd56af637f3d4 msgid "Migrate plugins to separate repository" msgstr "" -#: ../../changelog.rst:375 a4ff557f266149e992884d5bc180f6fd +#: ../../changelog.rst:411 2f62212ada534de6ade55404aae98383 msgid "Improve HTML parser" msgstr "" -#: ../../changelog.rst:376 e9a87539173943dcb76ffff618a205cc +#: ../../changelog.rst:412 66b0bf3a2b4a47c78a5a936c80c0e4fb msgid "" "Provide ability to show or hide categories from menu using " "``DISPLAY_CATEGORIES_ON_MENU`` option" msgstr "" -#: ../../changelog.rst:378 721df0da641444c1a41fe72e38bafa20 +#: ../../changelog.rst:414 d316333413c3459f803d9ec694450dab msgid "Auto-regeneration can be told to ignore files via ``IGNORE_FILES`` setting" msgstr "" -#: ../../changelog.rst:379 2f925e2291c54bc0b6da964d7f17079f +#: ../../changelog.rst:415 7a199ee7396d485aaa55496b32e8a5c0 msgid "Improve post-generation feedback to user" msgstr "" -#: ../../changelog.rst:380 bc36457afeaa449583693dcef652e072 +#: ../../changelog.rst:416 6deb9ccecfab4fcba7157680ce6a35b9 msgid "" "For multilingual posts, use meta-data to designate which is the original " "and which is the translation" msgstr "" -#: ../../changelog.rst:382 8abbe86f8e4a4786886f887bad894983 +#: ../../changelog.rst:418 be2051f4c2304904b3264bd61da6bb3b msgid "Add ``.mdown`` to list of supported Markdown file extensions" msgstr "" -#: ../../changelog.rst:383 84e1d9cee66c4ee3ba779eb697169d35 +#: ../../changelog.rst:419 be4c498c73604b7289bd908490b820fe msgid "Document-relative URL generation (``RELATIVE_URLS``) is now off by default" msgstr "" -#: ../../changelog.rst:386 461aa8ba882c4543980540c6686a69ff +#: ../../changelog.rst:422 26c902ee59b54f5199b53dbd841981ce msgid "3.1 (2012-12-04)" msgstr "" -#: ../../changelog.rst:388 ea4445533819403b8a54af8f62d30dab +#: ../../changelog.rst:424 1dce4c50db964039b0d0b4a27e19ce96 msgid "" "Importer now stores slugs within files by default. This can be disabled " "with the ``--disable-slugs`` option." msgstr "" -#: ../../changelog.rst:390 a00bcb155126439ab341cff0f37ecc5a +#: ../../changelog.rst:426 247f3c4937844361a98a9bbc557774cb msgid "Improve handling of links to intra-site resources" msgstr "" -#: ../../changelog.rst:391 5d47bb0eac84452b829ea7a5a7447bdd +#: ../../changelog.rst:427 baf6646be1424810853be748d7a15129 msgid "" "Ensure WordPress import adds paragraphs for all types of line endings in " "post content" msgstr "" -#: ../../changelog.rst:393 6d41430cf1ae4bbe95c7206bed9fe17c +#: ../../changelog.rst:429 4cefab609bb64186a2f597cedad65b61 msgid "Decode HTML entities within WordPress post titles on import" msgstr "" -#: ../../changelog.rst:394 17121b597e6148768c531523a9b6f955 +#: ../../changelog.rst:430 8b1e222311f749a5b50858f0dc34466d msgid "Improve appearance of LinkedIn icon in default theme" msgstr "" -#: ../../changelog.rst:395 cfc8bfbe89c44ce9a30e230f255d79dd +#: ../../changelog.rst:431 bd4f42ac16a040d6b0e5cb1e9f5d5977 msgid "Add GitHub and Google+ social icons support in default theme" msgstr "" -#: ../../changelog.rst:396 5bd746b4bcc64c7382d492f61d50193c +#: ../../changelog.rst:432 d65513f7ff4d4294a5a4b755f6aa65c4 msgid "Optimize social icons" msgstr "" -#: ../../changelog.rst:397 bdb1513252d54c1f89e9efc11516b368 +#: ../../changelog.rst:433 9c930d0296f9464490df06094597739f msgid "" "Add ``FEED_ALL_ATOM`` and ``FEED_ALL_RSS`` to generate feeds containing " "all posts regardless of their language" msgstr "" -#: ../../changelog.rst:399 6d52c5f3e6e64dcc8b11fb5f80d6df46 +#: ../../changelog.rst:435 c3c18b3ea6ce4a24abb55abd44b7164f msgid "" "Split ``TRANSLATION_FEED`` into ``TRANSLATION_FEED_ATOM`` and " "``TRANSLATION_FEED_RSS``" msgstr "" -#: ../../changelog.rst:401 12c0a402411f47a4a71f64d7f19efd01 +#: ../../changelog.rst:437 9994413cfc6347fd8b9879e117b2b889 msgid "Different feeds can now be enabled/disabled individually" msgstr "" -#: ../../changelog.rst:402 f7ddae2570b34df1b598fa35239449ad +#: ../../changelog.rst:438 ca5c45416f784c87bed555ace354af21 +#, python-brace-format msgid "" "Allow for blank author: if ``AUTHOR`` setting is not set, author won't " "default to ``${USER}`` anymore, and a post won't contain any author " "information if the post author is empty" msgstr "" -#: ../../changelog.rst:405 e12a883add8d41f1b330e51ace547b06 +#: ../../changelog.rst:441 5270ac00aa8f4f2d98f2a3a57a6bf03c msgid "Move LESS and Webassets support from Pelican core to plugin" msgstr "" -#: ../../changelog.rst:406 d2e26f930edf4d68801b4e005ab7cdca +#: ../../changelog.rst:442 a8e64d393d0a4e3195dbdc1215302f9c msgid "" "The ``DEFAULT_DATE`` setting now defaults to ``None``, which means that " "articles won't be generated unless date metadata is specified" msgstr "" -#: ../../changelog.rst:408 c198ce6b37c94d98b358cf8aae3fa1c0 +#: ../../changelog.rst:444 e9d682bcd1de45f3a1a98ae17193aced msgid "" "Add ``FILENAME_METADATA`` setting to support metadata extraction from " "filename" msgstr "" -#: ../../changelog.rst:410 c3a2e1677eab4de3a12963b8c13e4875 +#: ../../changelog.rst:446 fe3a4d2bc15d4b4fba48fc8af3569336 msgid "" "Add ``gzip_cache`` plugin to compress common text files into a ``.gz`` " "file within the same directory as the original file, preventing the " "server (e.g. Nginx) from having to compress files during an HTTP call" msgstr "" -#: ../../changelog.rst:413 666bac4d13ba42d5b61833beb0950beb +#: ../../changelog.rst:449 c44353005d5d4e1293cc9a1878517726 msgid "Add support for AsciiDoc-formatted content" msgstr "" -#: ../../changelog.rst:414 aaf5c771064c4c46975523a15609e6c9 +#: ../../changelog.rst:450 dcdc1aff409544f1b60d7c22a7a41b6b msgid "" "Add ``USE_FOLDER_AS_CATEGORY`` setting so that feature can be toggled " "on/off" msgstr "" -#: ../../changelog.rst:415 71233f0cf0844770a9374a375bce2ed6 +#: ../../changelog.rst:451 f6675e347a114c75a3952ef5ef5f1e29 msgid "Support arbitrary Jinja template files" msgstr "" -#: ../../changelog.rst:416 fa2c3365a6c049bdb69a3215fd4010f7 +#: ../../changelog.rst:452 87ba44c075b144ee8c4734e4f6f4e4c9 msgid "Restore basic functional tests" msgstr "" -#: ../../changelog.rst:417 925cdeb6a5344275a69e3d93ecc88eea +#: ../../changelog.rst:453 0354818a87df49e59ac35a7d738c8e83 msgid "" "New signals: ``generator_init``, ``get_generators``, and " "``article_generate_preread``" msgstr "" -#: ../../changelog.rst:421 a534e61fa0374d0cb03ec9d83b5fe387 +#: ../../changelog.rst:457 1256b71b526e43dbb94823c0604f0bc6 msgid "3.0 (2012-08-08)" msgstr "" -#: ../../changelog.rst:423 7ec504fa35f84ec1b47a86fb9ef3b685 +#: ../../changelog.rst:459 e79ee10015eb41fea71877bff6453a0b msgid "Refactored the way URLs are handled" msgstr "" -#: ../../changelog.rst:424 a268577292d945649ad12e1430ed9eaf +#: ../../changelog.rst:460 f41008aff59344b0a964a38304c8f27d msgid "Improved the English documentation" msgstr "" -#: ../../changelog.rst:425 c694abe18818459d83a25f01c6257d9b +#: ../../changelog.rst:461 9cfcf344ed0d41c0aa20d2e4178de487 msgid "Fixed packaging using ``setuptools`` entrypoints" msgstr "" -#: ../../changelog.rst:426 81b5a9a2740340e6ad48d2baceef5ebd +#: ../../changelog.rst:462 75d4a7f700424bb69bd8fbba899fe5f2 msgid "Added ``typogrify`` support" msgstr "" -#: ../../changelog.rst:427 39d0f35b4ee343259ec7375597a718ec +#: ../../changelog.rst:463 e9e8e0933822437381e4a099118d17a8 msgid "Added a way to disable feed generation" msgstr "" -#: ../../changelog.rst:428 8eb4aa1d17ff406aaf5be093c4310966 +#: ../../changelog.rst:464 c9746121791347a18725b210eb69fca6 msgid "Added support for ``DIRECT_TEMPLATES``" msgstr "" -#: ../../changelog.rst:429 0b43a8fa70db455696e298f4c11ac0c3 +#: ../../changelog.rst:465 84b68057366c4c1eb56502f64a42bb73 msgid "Allow multiple extensions for content files" msgstr "" -#: ../../changelog.rst:430 89b94d339a3f46f882451d1dfac8df08 +#: ../../changelog.rst:466 36450fadc3a1446898365333ebd9a369 msgid "Added LESS support" msgstr "" -#: ../../changelog.rst:431 bb9a3c00bb23405698d39c49b812ec07 +#: ../../changelog.rst:467 1e1d7cc4e8b647c1b9c5be55374c43f0 msgid "Improved the import script" msgstr "" -#: ../../changelog.rst:432 d4b7b6302e4b48b6990484066099dec1 +#: ../../changelog.rst:468 bbb3522bded542c9af30ade57961b005 msgid "Added functional tests" msgstr "" -#: ../../changelog.rst:433 cc8d47d8e96d47c1965b6b721ad32de5 +#: ../../changelog.rst:469 06d82b81708d4234911c4552adb21aa3 msgid "Rsync support in the generated Makefile" msgstr "" -#: ../../changelog.rst:434 10cb71db95504caf9c45928191f650b0 +#: ../../changelog.rst:470 9e0ef37470e4457d91f43b9a7ceb77aa msgid "Improved feed support (easily pluggable with Feedburner for instance)" msgstr "" -#: ../../changelog.rst:435 61c7cb5819f94c89bd6dc3773375048f +#: ../../changelog.rst:471 5a84812ef2d440b5953327383ac064ed msgid "Added support for ``abbr`` in reST" msgstr "" -#: ../../changelog.rst:436 f65624c8dd3f4047be4adc66a8a9d1f4 +#: ../../changelog.rst:472 3e899ccc01a94cca8886244190cf5944 msgid "Fixed a bunch of bugs :-)" msgstr "" -#: ../../changelog.rst:439 d87300bfd91e495286e96a06c76fea5a +#: ../../changelog.rst:475 73ed385ee1c143dcb9d1f5a2aa21a101 msgid "2.8 (2012-02-28)" msgstr "" -#: ../../changelog.rst:441 a96f4e4b17034044a7fad630eba6f6c3 +#: ../../changelog.rst:477 e037cd34f3af4d2c826ccc7a949f2df8 msgid "Dotclear importer" msgstr "" -#: ../../changelog.rst:442 769b7e899fe44b2299b3bc021b23724d +#: ../../changelog.rst:478 994601f5041a465086869af70ae072dc msgid "Allow the usage of Markdown extensions" msgstr "" -#: ../../changelog.rst:443 c11b737547f44ee4b9f206d78fd69034 +#: ../../changelog.rst:479 0830c593481e4e5ea1526f4d1a8848fa msgid "Themes are now easily extensible" msgstr "" -#: ../../changelog.rst:444 22b0eea97e5c4d5ea4615961685ddfda +#: ../../changelog.rst:480 3ff0b224c93e442684a1b686d8666ced msgid "Don't output pagination information if there is only one page" msgstr "" -#: ../../changelog.rst:445 739a53e452714197918fdb7c730685c2 +#: ../../changelog.rst:481 ec4ec66862df420caf61a32c472f972b msgid "Add a page per author, with all their articles" msgstr "" -#: ../../changelog.rst:446 6b9d84b09f954dba8e2ad225e26ad68a +#: ../../changelog.rst:482 864df61f6eef43e4980bf957b14ac26e msgid "Improved the test suite" msgstr "" -#: ../../changelog.rst:447 6099f1c52f7c48adad09f9b84f50f181 +#: ../../changelog.rst:483 285e4cb5a43241558e3d2bf1876c0ee5 msgid "Made the themes easier to extend" msgstr "" -#: ../../changelog.rst:448 e4090cb5f1634fe0b30e498e8f1c0eca +#: ../../changelog.rst:484 7597e818692d42039cffc1fb67513c52 msgid "Removed Skribit support" msgstr "" -#: ../../changelog.rst:449 04ff51eeefd24306804c5a2daa98d59e +#: ../../changelog.rst:485 867bceffc3cf431a919f92d33691870a msgid "Added a ``pelican-quickstart`` script" msgstr "" -#: ../../changelog.rst:450 550158557c904ad8abe330a0b86e6755 +#: ../../changelog.rst:486 bdbf4396e57242af8f2be7c4c20ea455 msgid "Fixed timezone-related issues" msgstr "" -#: ../../changelog.rst:451 f41a6fafa9d548adbae1dfc7276a7f3a +#: ../../changelog.rst:487 2a8752a2c1d14916aa78eaf4878db4f9 msgid "Added some scripts for Windows support" msgstr "" -#: ../../changelog.rst:452 e8b30590d7c64808b604f03d4bf25ffc +#: ../../changelog.rst:488 67d470d30d8d41d38022c6a7024f3c62 msgid "Date can be specified in seconds" msgstr "" -#: ../../changelog.rst:453 bbdf1c456cc3417e876855d8b792753c +#: ../../changelog.rst:489 fcdf6b71286b4951ac69786e590c7649 msgid "Never fail when generating posts (skip and continue)" msgstr "" -#: ../../changelog.rst:454 33545506148f48c7a1f42d12535604ad +#: ../../changelog.rst:490 9cba8ad7120b4ea0bdd385d5facb119f msgid "Allow the use of future dates" msgstr "" -#: ../../changelog.rst:455 1d56de44e22c432eb61fbd23fe27ae88 +#: ../../changelog.rst:491 4ded329080034fac931b6be8f801ce2d msgid "Support having different timezones per language" msgstr "" -#: ../../changelog.rst:456 0002c845a16a4d5bb19eeca4dedb0ce9 +#: ../../changelog.rst:492 5a5f49be18c449fba6a8aeaa2b36b14e msgid "Enhanced the documentation" msgstr "" -#: ../../changelog.rst:459 2dd8c562cd44466cbbc868023bc8eef6 +#: ../../changelog.rst:495 d49c481caef348f59c74d194bcca6579 msgid "2.7 (2011-06-11)" msgstr "" -#: ../../changelog.rst:461 6383d280fbbf47e99be6cbceaaa30245 +#: ../../changelog.rst:497 7d8c241cc73642d8a5214b44dcfe30ca msgid "Use ``logging`` rather than echoing to stdout" msgstr "" -#: ../../changelog.rst:462 80e585445f284f95be38a221068c817d +#: ../../changelog.rst:498 670a6095a13c4970aac3016915813b9c msgid "Support custom Jinja filters" msgstr "" -#: ../../changelog.rst:463 a2431e6f9cd041d7ae9a81ee9ea1f1d3 +#: ../../changelog.rst:499 be2c4c82052b4cb48e02ca0dca49eeb6 msgid "Compatibility with Python 2.5" msgstr "" -#: ../../changelog.rst:464 8cdec91cfae54eef979319ffcd7b2b4b +#: ../../changelog.rst:500 773398476e4d45df89d7d958d2e496e6 msgid "Added a theme manager" msgstr "" -#: ../../changelog.rst:465 53823ba8924f4092a13f30d612b6d147 +#: ../../changelog.rst:501 963c80928b8e4d92a9c549a4daa58cb9 msgid "Packaged for Debian" msgstr "" -#: ../../changelog.rst:466 dcf480ab75f849e78f2e15e0de4880c9 +#: ../../changelog.rst:502 c37c96fad3ad438395e73f2b2fdd5678 msgid "Added draft support" msgstr "" -#: ../../changelog.rst:469 9e46e5ecc5aa48ed9c973f181250bb2d +#: ../../changelog.rst:505 7c215208f8a34f53ae0d22361f9305af msgid "2.6 (2011-03-08)" msgstr "" -#: ../../changelog.rst:471 3b00b44b0dc74320bcc30ac3c3b8d43f +#: ../../changelog.rst:507 deeb4eb9a00547bea54a8f4486cea948 msgid "Changes in the output directory structure" msgstr "" -#: ../../changelog.rst:472 7edd59c2885748b18242900bc717e6f2 +#: ../../changelog.rst:508 5719cd5592b442549b860851c95ace8a msgid "Makes templates easier to work with / create" msgstr "" -#: ../../changelog.rst:473 80ecbc256d074c0ab966b3f8f90b2fa7 +#: ../../changelog.rst:509 a14ed59f0b7d43b7b64033cbda6fa1b3 msgid "Added RSS support (was Atom-only)" msgstr "" -#: ../../changelog.rst:474 6bcd42cb56ae4e52b1fd66833cad6bd3 +#: ../../changelog.rst:510 2b78e48ee5c04ee88a19e82dd5736b08 msgid "Added tag support for the feeds" msgstr "" -#: ../../changelog.rst:475 e8875e8c6317488eb0fa76f5d444763f +#: ../../changelog.rst:511 129c8684dfe34773943a63f7294422dc msgid "Enhance the documentation" msgstr "" -#: ../../changelog.rst:476 feb91b6347cb467ba693cb55a2cd8a00 +#: ../../changelog.rst:512 865503839227447ca15dae5cccbbd7f8 msgid "Added another theme (brownstone)" msgstr "" -#: ../../changelog.rst:477 3e8cd0da99fe408bb66b8db1caaa336b +#: ../../changelog.rst:513 ecbde1d7724c445283ca769b43684207 msgid "Added translations" msgstr "" -#: ../../changelog.rst:478 888218f74f754c209363573264452100 +#: ../../changelog.rst:514 6877cc6c1e92490fab2840698dadba59 msgid "Added a way to use cleaner URLs with a rewrite url module (or equivalent)" msgstr "" -#: ../../changelog.rst:479 5006a51a923042dcabda9843b155d177 +#: ../../changelog.rst:515 4b937b4f363b4bfd86d3447d61ac79e0 msgid "Added a tag cloud" msgstr "" -#: ../../changelog.rst:480 a329ec582419436392aea3556205352c +#: ../../changelog.rst:516 61ebc53121c34b96bb6edf9bd95b385e msgid "" "Added an autoreloading feature: the blog is automatically regenerated " "each time a modification is detected" msgstr "" -#: ../../changelog.rst:482 8b136937ff5c42b6a9d4ca2c09f49399 +#: ../../changelog.rst:518 79b3ebc425c64a60a5e9914da9e43752 msgid "Translate the documentation into French" msgstr "" -#: ../../changelog.rst:483 00b39926200d4f1389445e6f7a25ea34 +#: ../../changelog.rst:519 a1446ce9b3e147ac9926754b1db32746 msgid "Import a blog from an RSS feed" msgstr "" -#: ../../changelog.rst:484 92dd7ebe963e4c3da3dd0b138d8c0cd7 +#: ../../changelog.rst:520 0d427fc4738a447fbdae05b78559171e msgid "Pagination support" msgstr "" -#: ../../changelog.rst:485 45dc61ad8c664e1e84511003c2431e7f +#: ../../changelog.rst:521 d70488ef9cea45db8389a99209fe9d9a msgid "Added Skribit support" msgstr "" -#: ../../changelog.rst:488 17729e7145b04f21b6adef1c94284e4b +#: ../../changelog.rst:524 ee9730d28c0a4e378618499401e1e399 msgid "2.5 (2010-11-20)" msgstr "" -#: ../../changelog.rst:490 44ae6d5ba68944cea82d7b3598be287e +#: ../../changelog.rst:526 41764632aa2a46a9864a41bfa73b3d58 msgid "Import from WordPress" msgstr "" -#: ../../changelog.rst:491 a0af2d8823354b8fa048b456f9d0df25 +#: ../../changelog.rst:527 b3ee93bdd46e4699adea39b8e99ba3c4 msgid "Added some new themes (martyalchin / wide-notmyidea)" msgstr "" -#: ../../changelog.rst:492 ec519864fa79463b8eea11f06934cbc5 +#: ../../changelog.rst:528 1a023f24ad50438c947a0c980213819a msgid "First bug report!" msgstr "" -#: ../../changelog.rst:493 7d38312ffc1f4589ad54b2d019cad3ea +#: ../../changelog.rst:529 573a4f64b2d2486f80416c4f98e5a3e4 msgid "Linkedin support" msgstr "" -#: ../../changelog.rst:494 99a73194501a4469acac9ffdd791502f +#: ../../changelog.rst:530 c3c6ab49cad54f60a2f167abc9888764 msgid "Added a FAQ" msgstr "" -#: ../../changelog.rst:495 49dc1d7af56c43a8b21e3d0e0bf141ad +#: ../../changelog.rst:531 7cf0a7d9c46545dd81397ed03bcd542e msgid "Google Analytics support" msgstr "" -#: ../../changelog.rst:496 59edf76455f2489993739d027964bb63 +#: ../../changelog.rst:532 de467a7c0a654db0a31ec42908c83b39 msgid "Twitter support" msgstr "" -#: ../../changelog.rst:497 9c2d230b25e24b179049dc9e0332401c +#: ../../changelog.rst:533 455af156688d454f8dea6b8dcca0cb48 msgid "Use relative URLs, not static ones" msgstr "" -#: ../../changelog.rst:500 fc4e0772192648cd89baed818dbeb908 +#: ../../changelog.rst:536 12dceabc363e493599eb83725eb0d891 msgid "2.4 (2010-11-06)" msgstr "" -#: ../../changelog.rst:502 d01de90563a94bafae690740613aa682 +#: ../../changelog.rst:538 0d24870c616a4d02a6e23758a1022a0c msgid "Minor themes changes" msgstr "" -#: ../../changelog.rst:503 38a95f8b00684dc3ab279840640a01d8 +#: ../../changelog.rst:539 4d8d6c48d9824e258c6789afe95ffb4e msgid "Add Disqus support (so we have comments)" msgstr "" -#: ../../changelog.rst:504 13dca871c120491a90240c43c7d0f4c7 +#: ../../changelog.rst:540 74cd4df65f8b41a1967033aedead1c87 msgid "Another code refactoring" msgstr "" -#: ../../changelog.rst:505 87ec5e2d8b80482aac6e0a82f31c0d12 +#: ../../changelog.rst:541 a44c01fa1c1242ab86a6ab32851e0284 msgid "Added config settings about pages" msgstr "" -#: ../../changelog.rst:506 30c338ee5d85462588119841675c73f4 +#: ../../changelog.rst:542 c4519c5267eb4606b7f5de643028429e msgid "Blog entries can also be generated in PDF" msgstr "" -#: ../../changelog.rst:509 6d1ebe0620ff46939743b2fe2e9f1683 +#: ../../changelog.rst:545 7164d3eacbd946c8a317dc16929ba48d msgid "2.3 (2010-10-31)" msgstr "" -#: ../../changelog.rst:511 3df14b83afaa446ca893c157189e33fb +#: ../../changelog.rst:547 ca062e8a7c1a43f2a678bbfe22484d6a msgid "Markdown support" msgstr "" -#: ../../changelog.rst:514 91b45ea2e78047ccbbd97c7059930864 +#: ../../changelog.rst:550 fc9a53b1a9034f809688d3c4114b412c msgid "2.2 (2010-10-30)" msgstr "" -#: ../../changelog.rst:516 4b96d6c2c47d463ebb66d1eaeb1f004e +#: ../../changelog.rst:552 121f2a61adc043a79c029fb4acc3ea0d msgid "Prettify output" msgstr "" -#: ../../changelog.rst:517 cd805a3c55c84ddd89080a4912d91633 +#: ../../changelog.rst:553 f6a56a02617e458089148229dd92bd08 msgid "Manages static pages as well" msgstr "" -#: ../../changelog.rst:520 bc8859b0bf4043e09aed54af4b3c6ba7 +#: ../../changelog.rst:556 c4d2a7150f2a46f7a87e1d810777b5be msgid "2.1 (2010-10-30)" msgstr "" -#: ../../changelog.rst:522 3146db5382224eddad41228f6f539e4c +#: ../../changelog.rst:558 739f08f2d6a746199390e3809f4a27f1 msgid "Make notmyidea the default theme" msgstr "" -#: ../../changelog.rst:525 f1bff0048805473d90461c68f8c82f07 +#: ../../changelog.rst:561 2596c0b20ea947a5845cd92f3190f32e msgid "2.0 (2010-10-30)" msgstr "" -#: ../../changelog.rst:527 9c0181b93ed34eaa87a8e323a773a4c9 +#: ../../changelog.rst:563 a023ea05a0864c2085b91526bfa23554 msgid "Refactoring to be more extensible" msgstr "" -#: ../../changelog.rst:528 878c1cc7b2bb4adbb1684439b029cd14 +#: ../../changelog.rst:564 a411e0742c7a4751b1b5d8f7848cbf2b msgid "Change into the setting variables" msgstr "" -#: ../../changelog.rst:531 ca506f63c6474fa4ba68a7b57a840e81 +#: ../../changelog.rst:567 d8933a28653242fc942087162ac6a4c9 msgid "1.2 (2010-09-28)" msgstr "" -#: ../../changelog.rst:533 eef62c1f5bff457eba9733aba004b18d +#: ../../changelog.rst:569 66415309e0d64d06a490ecaef4efb36d msgid "Added a debug option" msgstr "" -#: ../../changelog.rst:534 5c800901f23b4dceac320db21cb1e3db +#: ../../changelog.rst:570 ceaef7c8b0fe4df79600738d71b8d094 msgid "Added per-category feeds" msgstr "" -#: ../../changelog.rst:535 d51b96b46a2b4dc09088ad32fbc61bbb +#: ../../changelog.rst:571 6bac9fd70e104b28bfd06a936d71e32a msgid "Use filesystem to get dates if no metadata is provided" msgstr "" -#: ../../changelog.rst:536 9b6420ecf5fb459d885d70db9190ad3b +#: ../../changelog.rst:572 1f663ceee61b4c0595834cc72a9e3e7d msgid "Add Pygments support" msgstr "" -#: ../../changelog.rst:539 5ccc5d9fa9424ec8896c57c3d62e1b6e +#: ../../changelog.rst:575 1df408a7787943e68de9384710331200 msgid "1.1 (2010-08-19)" msgstr "" -#: ../../changelog.rst:541 a992372f04e345b5b37b6e20891b9b60 +#: ../../changelog.rst:577 7e611ea96d6c4b4db5751229abbfec38 msgid "First working version" msgstr "" diff --git a/docs/locale/zh_CN/LC_MESSAGES/contribute.po b/docs/locale/zh_CN/LC_MESSAGES/contribute.po index 3149fff3..5199f51a 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/contribute.po +++ b/docs/locale/zh_CN/LC_MESSAGES/contribute.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PELICAN 4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-25 20:36+0800\n" +"POT-Creation-Date: 2025-07-13 11:46+0800\n" "PO-Revision-Date: 2024-06-27 19:00+0800\n" "Last-Translator: GeorgeHu \n" "Language: zh_CN\n" @@ -16,93 +16,91 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../contribute.rst:2 e8f9694c47aa44e7944dae800ee528f3 +#: ../../contribute.rst:2 848b6c0ec944440791d56b25e314a8ab msgid "Contributing and feedback guidelines" msgstr "项目贡献与意见反馈" -#: ../../contribute.rst:4 784f37182e78474b960306a5a794ae16 +#: ../../contribute.rst:4 e8b8762778fd461db0934f07e4fc1fc5 msgid "" "There are many ways to contribute to Pelican. You can improve the " "documentation, add missing features, and fix bugs (or just report them). " "You can also help out by reviewing and commenting on `existing issues " "`_." msgstr "" -"有很多渠道可以参与到贡献项目中来,例如帮助改进文档、添加缺失的特性、修复与报告bug。" -"可以从查看 `已有 issues `_ 开始。" +"有很多渠道可以参与到贡献项目中来,例如帮助改进文档、添加缺失的特性、修复与报告bug。可以从查看 `已有 issues " +"`_ 开始。" -#: ../../contribute.rst:9 e17c3ff0fa71469cbe22cb4ad2640ad8 +#: ../../contribute.rst:9 103b2f2862c4469695e4c6aff2321a8d msgid "" "Don't hesitate to fork Pelican and submit an issue or pull request on " "GitHub. When doing so, please consider the following guidelines." -msgstr "" -"随时随地都可以fork Pelican或是在GitHub上提交issue或PR。" +msgstr "随时随地都可以fork Pelican或是在GitHub上提交issue或PR。" -#: ../../../CONTRIBUTING.rst:2 f8bc69070fab4dd7be34e1cc6a42cc02 +#: ../../../CONTRIBUTING.rst:2 5ad44a6fdf0b45eaaa800023139694f8 msgid "Filing issues" msgstr "提出issue" -#: ../../../CONTRIBUTING.rst:4 fe98a059b9c24fcc92358f2c4505174d +#: ../../../CONTRIBUTING.rst:4 c7e2bb966f49419aba7ed7027a977043 msgid "Before you submit a new issue, try `asking for help`_ first." msgstr "在你提交一个新的issue之前,可以先尝试 `请求他人帮助`_ 。" -#: ../../../CONTRIBUTING.rst:5 e9fff7c354614ae28db994c0fcc121c0 +#: ../../../CONTRIBUTING.rst:5 a287bb06699b4db79d6dd7491bbe031b msgid "" "If determined to create a new issue, first search `Pelican Discussions`_ " "and `existing issues`_ (open and closed) to see if your question has " "already been answered previously." msgstr "" -"当你决定要提出新的issue时,先在 `Pelican的讨论版`_ 和 `已有issues`_ 中搜索一下," -"(开放关闭的issue都搜一下),来看看你的问题是不是有人之前已经提出过。" +"当你决定要提出新的issue时,先在 `Pelican的讨论版`_ 和 `已有issues`_ " +"中搜索一下,(开放关闭的issue都搜一下),来看看你的问题是不是有人之前已经提出过。" -#: ../../../CONTRIBUTING.rst:14 84cb74beed564f31810674cacf5c1f97 +#: ../../../CONTRIBUTING.rst:14 d4a600f2338b458e822aba90e54d4cfd msgid "How to get help" msgstr "如何获取帮助" -#: ../../../CONTRIBUTING.rst:16 0557a84947c14606be4fd0565247d85d +#: ../../../CONTRIBUTING.rst:16 db3264afde384c2891d9be7205578556 msgid "Before you ask for help, please make sure you do the following:" msgstr "在寻求帮助之前,请先尝试如下步骤:" -#: ../../../CONTRIBUTING.rst:18 6d59a3356e734dd196ec8a0739556b4c +#: ../../../CONTRIBUTING.rst:18 3581147764244a548cd2898faaa7799a msgid "" "Read the documentation_ thoroughly. If in a hurry, at least use the " "search field that is provided at top-left on the documentation_ pages. " "Make sure you read the docs for the Pelican version you are using." msgstr "" -"完整阅读 documentation_ 。如果你很急,至少先在 documentation_ 左上角的搜索栏" -"中尝试搜索。确保你阅读的文档和使用的Pelican版本相匹配。" +"完整阅读 documentation_ 。如果你很急,至少先在 documentation_ " +"左上角的搜索栏中尝试搜索。确保你阅读的文档和使用的Pelican版本相匹配。" -#: ../../../CONTRIBUTING.rst:21 4b33299936404cf98a66b672fad0e38f +#: ../../../CONTRIBUTING.rst:21 d8e467909ec64ba7900da93b3765bfa6 msgid "" "Use a search engine (e.g., DuckDuckGo, Google) to search for a solution " "to your problem. Someone may have already found a solution, perhaps in " "the form of a ':pelican-doc:`plugins` or a specific combination of " "settings." msgstr "" -"使用搜索引擎(例如 DuckDuckGo、Google)搜索遇到问题的解决方案。互联网上可能" -"已经有人遇到过相同的问题,解决方法可能包括使用某些 :pelican-doc:`plugins` 或配置" -"一系列的设置选项。" +"使用搜索引擎(例如 DuckDuckGo、Google)搜索遇到问题的解决方案。互联网上可能已经有人遇到过相同的问题,解决方法可能包括使用某些 " +":pelican-doc:`plugins` 或配置一系列的设置选项。" -#: ../../../CONTRIBUTING.rst:25 b48195d9ef674566b89aabc38139c301 +#: ../../../CONTRIBUTING.rst:25 2011839b36504c41b307cc9f817c4a46 msgid "Try reproducing the issue in a clean environment, ensuring you are using:" msgstr "尝试在一个尽可能简单的环境中重现问题,并确保以下几点:" -#: ../../../CONTRIBUTING.rst:27 685d2888d2c94ea9a752ec433f8b9f1f +#: ../../../CONTRIBUTING.rst:27 2d64217ea3e54dc58a371fc11a6ece8e msgid "" "latest Pelican release (or an up-to-date Git clone of Pelican ``main`` " "branch)" msgstr "使用最新版本的Pelican(或是用Git克隆Pelican的main分支)" -#: ../../../CONTRIBUTING.rst:28 910a372d95d8448492eafc66eccd1ccf +#: ../../../CONTRIBUTING.rst:28 721ca09c5a9a495b9fbb6aa86df8be28 msgid "latest releases of libraries used by Pelican" msgstr "将Pelican使用的库升级到最新版本" -#: ../../../CONTRIBUTING.rst:29 c44f4dc6b05d4be29eccc889f042702c +#: ../../../CONTRIBUTING.rst:29 bbe722bd2be748219d38c134f29569dd msgid "no plugins or only those related to the issue" msgstr "此环境中没有使用插件或是只使用和问题相关的插件" -#: ../../../CONTRIBUTING.rst:31 3abdf6131cf4412a8205b634a6651b01 +#: ../../../CONTRIBUTING.rst:31 e9f337f01ca546be93bd1d18884a1685 msgid "" "**NOTE:** The most common sources of problems are anomalies in (1) " "themes, (2) plugins, (3) settings files, and (4) ``make``/``invoke`` " @@ -111,93 +109,84 @@ msgid "" "certainly with one of the above-listed elements (and not Pelican " "itself)::" msgstr "" -"**注意:** 最常见的问题基本上都产生于主题、插件、设置文件和自动化工具 " -"``make``/``invoke`` 中。如果按照下述步骤生成站点后无法复现之前的问题,那么" -"几乎可以肯定问题出在这四个地方,而不在Pelican本身:" +"**注意:** 最常见的问题基本上都产生于主题、插件、设置文件和自动化工具 ``make``/``invoke`` " +"中。如果按照下述步骤生成站点后无法复现之前的问题,那么几乎可以肯定问题出在这四个地方,而不在Pelican本身:" -#: ../../../CONTRIBUTING.rst:41 f2331ea165ac4a3c8e70bf98c995f0e8 +#: ../../../CONTRIBUTING.rst:41 1420bb3dd096480289b3da1534d7bf64 msgid "" "If you can generate your site without problems using the steps above, " "then your problem is unlikely to be caused by Pelican itself, and " "therefore please consider reaching out to the maintainers of the " "plugins/theme you are using instead of raising the topic with the Pelican" " core community." -msgstr "" -"如果按照上述步骤能够正常生成站点,那么你的问题不太可能是由Pelican本身导致的," -"请考虑联系对应插件/主题的维护者,而不是在Pelican内核的社区中提出问题。" +msgstr "如果按照上述步骤能够正常生成站点,那么你的问题不太可能是由Pelican本身导致的,请考虑联系对应插件/主题的维护者,而不是在Pelican内核的社区中提出问题。" -#: ../../../CONTRIBUTING.rst:46 d83b0036d4894f3ebc73e657a203d11a +#: ../../../CONTRIBUTING.rst:46 bdb7575fa4c74c0891fd686794cc84fd msgid "" "If despite the above efforts you still cannot resolve your problem, be " "sure to include in your inquiry the following information, preferably in " "the form of links to content uploaded to a `paste service`_, GitHub " "repository, or other publicly-accessible location:" msgstr "" -"经过上面这些努力,若您仍无法解决问题,确保你的提问中包括如下信息,可以以 " -"`paste service`_ 链接、GitHub仓库,或者其他可公开获取的形式提供:" +"经过上面这些努力,若您仍无法解决问题,确保你的提问中包括如下信息,可以以 `paste service`_ " +"链接、GitHub仓库,或者其他可公开获取的形式提供:" -#: ../../../CONTRIBUTING.rst:51 4281f931e9064336b267bd67a35134e9 +#: ../../../CONTRIBUTING.rst:51 b559dc6ca72649baa754cb14d1ac77ca msgid "" "Describe what version of Pelican you are running (output of ``pelican " "--version`` or the HEAD commit hash if you cloned the repo) and how " "exactly you installed it (the full command you used, e.g. ``python -m pip" " install pelican``)." msgstr "" -"描述正在运行的Pelican版本信息(可以通过 ``pelican --version`` 命令得到,如果" -"clone的源仓库则可以查看HEAD commit的哈希值),以及你是如何安装Pelican的" -"(要包括使用到的命令,例如 ``python -m pip install pelican``)" +"描述正在运行的Pelican版本信息(可以通过 ``pelican --version`` 命令得到,如果clone的源仓库则可以查看HEAD " +"commit的哈希值),以及你是如何安装Pelican的(要包括使用到的命令,例如 ``python -m pip install " +"pelican``)" -#: ../../../CONTRIBUTING.rst:54 b1303c98bca840efb895aceb16789eb9 +#: ../../../CONTRIBUTING.rst:54 d09a0393a4c1462b878c1adf31a7537d msgid "" "If you are looking for a way to get some end result, prepare a detailed " "description of what the end result should look like (preferably in the " "form of an image or a mock-up page) and explain in detail what you have " "done so far to achieve it." -msgstr "" -"如果你希望产生某种特定的最终结果,请详细描述此最终结果是什么样的(最好以图片或者" -"伪页面的形式),,并且细致讲述你做了哪些尝试。" +msgstr "如果你希望产生某种特定的最终结果,请详细描述此最终结果是什么样的(最好以图片或者伪页面的形式),,并且细致讲述你做了哪些尝试。" -#: ../../../CONTRIBUTING.rst:58 8fe972c4685140d5bd1c37f4635f6f09 +#: ../../../CONTRIBUTING.rst:58 720ee9dbccc74dccbabb994a2d36638d msgid "" "If you are trying to solve some issue, prepare a detailed description of " "how to reproduce the problem. If the issue cannot be easily reproduced, " "it cannot be debugged by developers or volunteers. Describe only the " "**minimum steps** necessary to reproduce it (no extra plugins, etc.)." msgstr "" -"如果你在尝试解决某些问题,请详细描述如何复现此问题。如果问题很难被复现,其他开发者和志愿者就很难进行调试。" -"尽量只写出复现该问题的 **最少步骤** (无额外插件)。" +"如果你在尝试解决某些问题,请详细描述如何复现此问题。如果问题很难被复现,其他开发者和志愿者就很难进行调试。尽量只写出复现该问题的 **最少步骤**" +" (无额外插件)。" -#: ../../../CONTRIBUTING.rst:62 1f3874f308e64281b910dc716180ebcf +#: ../../../CONTRIBUTING.rst:62 34bdc49c617643d8ae7adb6a433a88fe msgid "" "Upload your settings file or any other custom code that would enable " "people to reproduce the problem or to see what you have already tried to " "achieve the desired end result." -msgstr "" -"上传你的配置文件以及所有自定义过的代码,这可以使得大家能够重现问题或者看到你已经" -"做出的尝试。" +msgstr "上传你的配置文件以及所有自定义过的代码,这可以使得大家能够重现问题或者看到你已经做出的尝试。" -#: ../../../CONTRIBUTING.rst:65 1fdc6c63f1b141c7a35233607ec0d922 +#: ../../../CONTRIBUTING.rst:65 03c88e23c7b54117aa69e003c8bbef6e msgid "" "Upload detailed and **complete** output logs and backtraces (remember to " "add the ``--debug`` flag: ``pelican --debug content [...]``)" msgstr "" -"上传详细 **完整** 的输出日志以及backtraces信息(记得在执行pelican命令时加上 " -"``--debug`` 标记: ``pelican --debug content [...]`` )" +"上传详细 **完整** 的输出日志以及backtraces信息(记得在执行pelican命令时加上 ``--debug`` 标记: " +"``pelican --debug content [...]`` )" -#: ../../../CONTRIBUTING.rst:71 8741dba5da1a4990ae9c30531d05dc19 +#: ../../../CONTRIBUTING.rst:71 953240a12cd64be7b9375a4571193314 msgid "" "Once the above preparation is ready, you can post your query as a new " "thread in `Pelican Discussions`_. Remember to include all the information" " you prepared." -msgstr "" -"一旦做好了上述准备,就可以在 `Pelican Discussions`_ 中发起你的问题了。记得在请求" -"中附上收集好的信息。" +msgstr "一旦做好了上述准备,就可以在 `Pelican Discussions`_ 中发起你的问题了。记得在请求中附上收集好的信息。" -#: ../../../CONTRIBUTING.rst:75 b34a3031f5d1427e92a9d1969d7b5274 +#: ../../../CONTRIBUTING.rst:75 e9f48bdfc6c744f282c70da3ac581052 msgid "Contributing code" msgstr "贡献代码" -#: ../../../CONTRIBUTING.rst:77 e29672c736554ebbbd6efd441af19df7 +#: ../../../CONTRIBUTING.rst:77 888be6bde2de42a49705f29443a519c1 msgid "" "Before you submit a contribution, please ask whether it is desired so " "that you don't spend a lot of time working on something that would be " @@ -205,32 +194,28 @@ msgid "" " be better suited as a ':pelican-doc:`plugins` — you can `ask for help`_" " to make that determination." msgstr "" -"在提交代码修改前,请先询问是否需要此修改,以免你做的工作因为已知原因而被拒绝。" -"想想要添加的新特性是否更适合以 :pelican-doc:`插件` 形式完成。可以通过 " -"`如何获取帮助`_ 来帮助你作出决定。" +"在提交代码修改前,请先询问是否需要此修改,以免你做的工作因为已知原因而被拒绝。想想要添加的新特性是否更适合以 :pelican-doc:`插件` " +"形式完成。可以通过 `如何获取帮助`_ 来帮助你作出决定。" -#: ../../../CONTRIBUTING.rst:82 e263c09fb6e5471eb0c2c3e97994322d +#: ../../../CONTRIBUTING.rst:82 6e1329bbd8354c30b8ffa07f18894d3f msgid "" "Also, if you intend to submit a pull request to address something for " "which there is no existing issue, there is no need to create a new issue " "and then immediately submit a pull request that closes it. You can submit" " the pull request by itself." -msgstr "" -"另外,如果你的PR是为了解决一个目前没有在issue中出现过的问题,那么就没有必要先创建" -"一个新的issue,而是可以直接提起PR。" +msgstr "另外,如果你的PR是为了解决一个目前没有在issue中出现过的问题,那么就没有必要先创建一个新的issue,而是可以直接提起PR。" -#: ../../../CONTRIBUTING.rst:87 9b08ef3e5fe4474e9306e4bfe9662fff +#: ../../../CONTRIBUTING.rst:87 bca476812a33487c98d6aa840820671b msgid "Using Git and GitHub" msgstr "使用Git与GitHub" -#: ../../../CONTRIBUTING.rst:89 7ad95f82b7d04c0ca97bb958d2425e27 +#: ../../../CONTRIBUTING.rst:89 51f8df6063a544baabf35ef3bae28e83 msgid "" "`Create a new branch`_ specific to your change (as opposed to making your" " commits in the ``main`` branch)." -msgstr "" -"`创建一个新的分支`_ 来标记你做的修改(而不是直接在主分支中提交)。" +msgstr "`创建一个新的分支`_ 来标记你做的修改(而不是直接在主分支中提交)。" -#: ../../../CONTRIBUTING.rst:91 8a31c5d7ae4045cdbf2aa67e79be3f9c +#: ../../../CONTRIBUTING.rst:91 6c419972402444d5976574902311e2d7 msgid "" "**Don't put multiple unrelated fixes/features in the same branch / pull " "request.** For example, if you're working on a new feature and find a " @@ -239,27 +224,25 @@ msgid "" " to code style formatting should be in a completely separate pull " "request." msgstr "" -"**不要把多个无关联的修复/特性修改放在同一个分支/拉去请求中。** 如果当你在做新特性的时候" -"发现了一个bug可以修复,但修复这个bug *不需要用到* 这个新特性, **那么请另外创建" -"一个分支并拉取请求。** 类似的,任何对代码风格的格式化都应该在单独的请求中拉取。" +"**不要把多个无关联的修复/特性修改放在同一个分支/拉去请求中。** 如果当你在做新特性的时候发现了一个bug可以修复,但修复这个bug " +"*不需要用到* 这个新特性, **那么请另外创建一个分支并拉取请求。** 类似的,任何对代码风格的格式化都应该在单独的请求中拉取。" -#: ../../../CONTRIBUTING.rst:96 ef2e10f7ec5e4fbbb0f977dd09b7be49 +#: ../../../CONTRIBUTING.rst:96 ced35621749d426a8e39fdeb9b0f7c90 msgid "" "Add a ``RELEASE.md`` file in the root of the project that contains the " "release type (major, minor, patch) and a summary of the changes that will" " be used as the release changelog entry. For example::" msgstr "" -"在项目根目录下添加 ``RELEASE.md`` 文件,在其中包含release的类型(主要、次要、补丁)," -"以及对项目改变的概述,这些内容会作为该release发布日志的一部分。下面是一个例子:" +"在项目根目录下添加 ``RELEASE.md`` " +"文件,在其中包含release的类型(主要、次要、补丁),以及对项目改变的概述,这些内容会作为该release发布日志的一部分。下面是一个例子:" -#: ../../../CONTRIBUTING.rst:104 24a4d63624f44f63a0ce809901455c02 +#: ../../../CONTRIBUTING.rst:104 ca6b2bf54f5248cbb7d90edb678478fc msgid "" "Check for unnecessary whitespace via ``git diff --check`` before " "committing." -msgstr "" -"在提交前使用 ``git diff --check`` 来检查是否有无意义的空白字符。" +msgstr "在提交前使用 ``git diff --check`` 来检查是否有无意义的空白字符。" -#: ../../../CONTRIBUTING.rst:105 11c5b82604fe4638bf9ee6e9ef0a401b +#: ../../../CONTRIBUTING.rst:105 48776b48e4924398b7632b8f05141e78 msgid "" "First line of your commit message should start with present-tense verb, " "be 50 characters or less, and include the relevant issue number(s) if " @@ -268,82 +251,73 @@ msgid "" "``Fixes #585`` or ``Fix #585`` syntax (so the relevant issue is " "automatically closed upon PR merge)." msgstr "" -"commit信息的第一行应该以现在时动词开头,并且第一行尽量保持在50字以下,并且包含相关联" -"issue的编号(如果有的话)。 例如: ``Ensure proper PLUGIN_PATH behavior. " -"Refs #428.`` 如果此项提交 *完全修复* 了某项已报告的bug,请使用例如 ``Fixes #585`` " -"或 ``Fix #585`` 的语法(这样的话相关的issue会在PR合并后自动关闭)。" +"commit信息的第一行应该以现在时动词开头,并且第一行尽量保持在50字以下,并且包含相关联issue的编号(如果有的话)。 例如: " +"``Ensure proper PLUGIN_PATH behavior. Refs #428.`` 如果此项提交 *完全修复* " +"了某项已报告的bug,请使用例如 ``Fixes #585`` 或 ``Fix #585`` " +"的语法(这样的话相关的issue会在PR合并后自动关闭)。" -#: ../../../CONTRIBUTING.rst:110 0c1ff9d0738440e1bce853fc830278af +#: ../../../CONTRIBUTING.rst:110 75acb68d9eaa4230ae230f016bf77b6c msgid "" "After the first line of the commit message, add a blank line and then a " "more detailed explanation (when relevant)." -msgstr "" -"在第一行commit信息后添加一行空白行,再进行更多相关的细节描述。" +msgstr "在第一行commit信息后添加一行空白行,再进行更多相关的细节描述。" -#: ../../../CONTRIBUTING.rst:112 d817ad5d9e35488eb45d88828ee9f053 +#: ../../../CONTRIBUTING.rst:112 51e3a16f76364d91a9abf219c731ff80 msgid "" "`Squash your commits`_ to eliminate merge commits and ensure a clean and " "readable commit history." -msgstr "" -"`压缩commit`_ 来消除合并commits,确保你的commit历史记录是干净可读的。" +msgstr "`压缩commit`_ 来消除合并commits,确保你的commit历史记录是干净可读的。" -#: ../../../CONTRIBUTING.rst:114 b7064f44923a499da3c3ce078470e269 +#: ../../../CONTRIBUTING.rst:114 01ddd9df01024d38a8de79122a91cc07 msgid "" "After you have issued a pull request, the continuous integration (CI) " "system will run the test suite on all supported Python versions and check" " for code style compliance. If any of these checks fail, you should fix " "them. (If tests fail on the CI system but seem to pass locally, ensure " "that local test runs aren't skipping any tests.)" -msgstr "" -"在你发出PR后,持续集成(CI)系统会在所有支持的Python版本上运行测试套件,并且" -"检查代码风格的合规性。如果出现了错误,你应该将其修复。(如果没有通过CI系统上的" -"测试但是本地测试通过了,请再检查一下,确保在本地进行了所有CI系统中的检查)" +msgstr "在你发出PR后,持续集成(CI)系统会在所有支持的Python版本上运行测试套件,并且检查代码风格的合规性。如果出现了错误,你应该将其修复。(如果没有通过CI系统上的测试但是本地测试通过了,请再检查一下,确保在本地进行了所有CI系统中的检查)" -#: ../../../CONTRIBUTING.rst:121 342f2e6c14b9441caaf3f9b6d2eb764b +#: ../../../CONTRIBUTING.rst:121 bc27587df397410a9bb272f0851756a3 msgid "Contribution quality standards" msgstr "贡献的质量标准" -#: ../../../CONTRIBUTING.rst:123 842514f115634a5d821d48490d4aed7b +#: ../../../CONTRIBUTING.rst:123 2cf100b3e98b43e5b841493887a1d8be msgid "" "Adhere to the project's code style standards. See: `Development " "Environment`_" -msgstr "" -"遵循项目的代码风格标准。详见 `开发环境`_" +msgstr "遵循项目的代码风格标准。详见 `开发环境`_" -#: ../../../CONTRIBUTING.rst:124 4719590d89be4a5e94817902cc424be5 +#: ../../../CONTRIBUTING.rst:124 fffad000d6ca490291bd09cb18fcc75a msgid "" "Ensure your code is compatible with the `officially-supported Python " "releases`_." -msgstr "" -"确保你的代码可以兼容 `python的官方发布版本`_" +msgstr "确保你的代码可以兼容 `python的官方发布版本`_" -#: ../../../CONTRIBUTING.rst:125 fa0ad5dd93e149fa8a12dd339bef9056 +#: ../../../CONTRIBUTING.rst:125 907e4426cbc643fb9075e32be169ba42 msgid "" "Add docs and tests for your changes. Undocumented and untested features " "will not be accepted." -msgstr "" -"请为你修改的内容添加文档与测试。未注有文档或没有对应测试的特性会被拒绝。" +msgstr "请为你修改的内容添加文档与测试。未注有文档或没有对应测试的特性会被拒绝。" -#: ../../../CONTRIBUTING.rst:127 dc4db53c2ce34e5490a0c57ea800a4da +#: ../../../CONTRIBUTING.rst:127 d2bcbeeb9c0541c2a5ac5ec589a16ca4 msgid "" ":pelican-doc:`Run all the tests ` **on all versions of Python" " supported by Pelican** to ensure nothing was accidentally broken." msgstr "" -"**在Pelican支持的所有Python版本上** :pelican-doc:`执行所有测试 ` ," -"以确保没有意料之外的问题。" +"**在Pelican支持的所有Python版本上** :pelican-doc:`执行所有测试 ` " +",以确保没有意料之外的问题。" -#: ../../../CONTRIBUTING.rst:130 3a88c2e8326a4acd896d0ac75d4c9ccb +#: ../../../CONTRIBUTING.rst:130 26daa76aea674039be278882a95422f5 msgid "" "Check out our `Git Tips`_ page or `ask for help`_ if you need assistance " "or have any questions about these guidelines." -msgstr "" -"若需要帮助或对以上指南有任何疑惑,还可以查看我们的 `Git提示`_ 页面和 `请求帮助`_ 部分。" +msgstr "若需要帮助或对以上指南有任何疑惑,还可以查看我们的 `Git提示`_ 页面和 `请求帮助`_ 部分。" -#: ../../contribute.rst:15 daead9e8fb804eb6acd152b85d837182 +#: ../../contribute.rst:15 b4a94275e9c14d8795fa54473ee2f05b msgid "Setting up the development environment" msgstr "配置开发环境" -#: ../../contribute.rst:17 1ab6df98bcb141f49e278d153cc96e22 +#: ../../contribute.rst:17 a0eb6948883742d2a00665a576ef6aba msgid "" "While there are many ways to set up one's development environment, the " "following instructions will utilize Pip_ and PDM_. These tools facilitate" @@ -351,71 +325,67 @@ msgid "" "isolated from one another, so you can use different packages (and package" " versions) for each." msgstr "" -"在配置开发环境时往往有很多种方式,但下面的指南会使用 Pip_ 和 PDM_ 完成配置。这两个工具" -"都可以用于管理虚拟环境,使得不同的Python项目相互隔离,这样就可以很方便的在不同的项目中" -"使用不同的库(以及不同的库版本)。" +"在配置开发环境时往往有很多种方式,但下面的指南会使用 Pip_ 和 PDM_ " +"完成配置。这两个工具都可以用于管理虚拟环境,使得不同的Python项目相互隔离,这样就可以很方便的在不同的项目中使用不同的库(以及不同的库版本)。" -#: ../../contribute.rst:22 6a9c8f6ddb1d495f8a9bd1b8a131cabd +#: ../../contribute.rst:22 4c5c4d91e6964d709d01102e32310642 msgid "Please note that Python |min_python| is required for Pelican development." msgstr "请注意,要进行Pelican的开发,至少需要Python |min_python|" -#: ../../contribute.rst:24 3d994e2a522141d7ada0a8fe13eb4c64 +#: ../../contribute.rst:24 5419157e28984a618fc1f0df81deb620 msgid "" "*(Optional)* If you prefer to `install PDM " "`_ once for use with multiple" " projects, you can install it via::" msgstr "" -"*(可选)* 若您想要 `安装PDM `_ ," -"可以使用下面这条命令:" +"*(可选)* 若您想要 `安装PDM `_ " +",可以使用下面这条命令:" -#: ../../contribute.rst:29 dbaa532c292048cb87926dd8b6e3141a +#: ../../contribute.rst:29 a9d08dc294cb4857a58d2c63eae98a15 msgid "" "Point your web browser to the `Pelican repository`_ and tap the **Fork** " "button at top-right. Then clone the source for your fork and add the " "upstream project as a Git remote::" msgstr "" -"在Web浏览器中进入 `Pelican的代码仓库`_ ,点击右上角的 **Fork** 按钮。然后克隆" -"你自己的这份fork,最后添加项目的原仓库为远程仓库upstream:" +"在Web浏览器中进入 `Pelican的代码仓库`_ ,点击右上角的 **Fork** " +"按钮。然后克隆你自己的这份fork,最后添加项目的原仓库为远程仓库upstream:" -#: ../../contribute.rst:38 adbe5d876f114645a3e1b489b2a34bd9 +#: ../../contribute.rst:38 4c8ebbf9839441ca9364eeb1d25b180f msgid "" "While PDM can dynamically create and manage virtual environments, we're " "going to manually create and activate a virtual environment::" -msgstr "" -"通过下面的命令可以手动创建并激活一个虚拟环境:" +msgstr "通过下面的命令可以手动创建并激活一个虚拟环境:" -#: ../../contribute.rst:45 ../../contribute.rst:181 -#: 6ede38ac05174bc19df4198e735342e0 f6d42cdd70384eaebbe115aefd0d01ec +#: ../../contribute.rst:45 ../../contribute.rst:186 +#: 2afe046c20814fe5b3de9a65606505f1 6ec60e6a37b642edb68af7ed1bc82c0b msgid "Install the needed dependencies and set up the project::" msgstr "安装必需的依赖并配置项目:" -#: ../../contribute.rst:50 d863bf4dc76e4b18b933f2635a6a3af3 +#: ../../contribute.rst:50 59d5dabaab1d409c8873187e5664fe67 msgid "Your local environment should now be ready to go!" msgstr "现在,你的本地开发环境就配置完成了!" -#: ../../contribute.rst:57 dc19edf71c914f48a953b379efa076c0 +#: ../../contribute.rst:57 6fdce76f8ec64275b24366ff03cc6340 msgid "Development" msgstr "开发" -#: ../../contribute.rst:59 6082eb5afbf14f86a031ed4f53d2943c +#: ../../contribute.rst:59 1d1a814a5dba40bcb84ce824d6312805 msgid "" "Once Pelican has been set up for local development, create a topic branch" " for your bug fix or feature::" -msgstr "" -"在配置好Pelican的本地开发环境后,请先为你的bug修复或特性增加创建一个分支:" +msgstr "在配置好Pelican的本地开发环境后,请先为你的bug修复或特性增加创建一个分支:" -#: ../../contribute.rst:64 1cafbaea6ec04597b62e871c0f0793b2 +#: ../../contribute.rst:64 773cdd3a48894e11a62cb24b25ef4829 msgid "" "Now you can make changes to Pelican, its documentation, and/or other " "aspects of the project." -msgstr "" -"在切换到新建的分支后,就可以开始对Pelican的文档或其他内容做更改了。" +msgstr "在切换到新建的分支后,就可以开始对Pelican的文档或其他内容做更改了。" -#: ../../contribute.rst:68 e0f5da1e216f499d86427e21c23557d4 +#: ../../contribute.rst:68 bb120553218b4d0699998fbaf00d32c0 msgid "Setting up ``git blame`` (optional)" msgstr "配置 ``git blame`` (可选)" -#: ../../contribute.rst:70 2906e116c2dc4a2c8db78fa64820af56 +#: ../../contribute.rst:70 644fae63e5ea4e66a24e35a7ada3524c msgid "" "``git blame`` annotates lines in a file with information about the pull " "request that last modified it. Sweeping shallow changes (like formatting)" @@ -424,61 +394,59 @@ msgid "" "repository, adding ``--global`` if you want this setting to apply to all " "repositories::" msgstr "" -"``git blame`` 会在文件中的行上标注有关最后一次修改该行的PR信息。对浅层变化(如格式化)" -"进行批量更改可能会使这些信息变得不那么有用,因此我们维护一个包含此类更改的列表," -"以便忽略它们。运行以下命令在您的存储库中设置此配置,如果希望此设置适用于所有存储库," -"请添加 ``--global`` :" +"``git blame`` " +"会在文件中的行上标注有关最后一次修改该行的PR信息。对浅层变化(如格式化)进行批量更改可能会使这些信息变得不那么有用,因此我们维护一个包含此类更改的列表,以便忽略它们。运行以下命令在您的存储库中设置此配置,如果希望此设置适用于所有存储库,请添加" +" ``--global`` :" -#: ../../contribute.rst:78 36f257406a294713835841cf549e0f67 +#: ../../contribute.rst:78 68b7031047e94e03b0e1b0ea39d0355e msgid "" "As noted in a `useful article`_ about ``git blame``, there are other " "related settings you may find to be beneficial::" -msgstr "" -"就像在 `这篇文章`_ 中提到的,还可以进行一些可能有用的额外设置:" +msgstr "就像在 `这篇文章`_ 中提到的,还可以进行一些可能有用的额外设置:" -#: ../../contribute.rst:89 37a3a813eeb84f408546bf6a83fdafd6 +#: ../../contribute.rst:89 c33fd6178fb044dda7073f1fc2cce979 msgid "Running the test suite" msgstr "运行测试套件" -#: ../../contribute.rst:91 44276ab045104e5c9ab3d2425172d7ac +#: ../../contribute.rst:91 5b51e49bc1ca42c6916c4dceed476057 msgid "" "Each time you make changes to Pelican, there are two things to do " "regarding tests: check that the existing tests pass, and add tests for " "any new features or bug fixes. The tests are located in " "``pelican/tests``, and you can run them via::" msgstr "" -"每次对Pelican做出修改后,在测试方面需要做两个工作:检查是否能通过已有的测试、" -"为新增特性或bug修复创建测试。请将自动化测试文件放在 ``pelican/tests`` 中," -"接着执行以下命令:" +"每次对Pelican做出修改后,在测试方面需要做两个工作:检查是否能通过已有的测试、为新增特性或bug修复创建测试。请将自动化测试文件放在 " +"``pelican/tests`` 中,接着执行以下命令:" -#: ../../contribute.rst:98 9557eb87ac4945ccbaf8775aa7768f6e +#: ../../contribute.rst:98 0e03b29d89cc408e9374cb51f7147611 msgid "" "(For more on Invoke, see ``invoke -l`` to list tasks, or " "https://pyinvoke.org for documentation.)" -msgstr "" -"(执行 ``invoke -l`` 会列出可以调用的测试任务,关于此的更多文档请参阅 " -"https://pyinvoke.org )" +msgstr "(执行 ``invoke -l`` 会列出可以调用的测试任务,关于此的更多文档请参阅 https://pyinvoke.org )" -#: ../../contribute.rst:101 d1cebbdf4fcf4be5b918613c5050d638 +#: ../../contribute.rst:101 70aad8c721c64d2b8d32488dd9da851e msgid "" "In addition to running the test suite, it is important to also ensure " "that any lines you changed conform to code style guidelines. You can " "check that via::" -msgstr "" -"除了运行测试套件外,还要确保修改了的部分遵循代码风格指南。可以通过下面的命令" -"检查代码风格:" +msgstr "除了运行测试套件外,还要确保修改了的部分遵循代码风格指南。可以通过下面的命令检查代码风格:" -#: ../../contribute.rst:106 7a0b9ebf408f472aa786f6c3ac639240 +#: ../../contribute.rst:106 ../../contribute.rst:200 +#: b0ff008dde5e4e0b892e0fc2fa959b6a +msgid "" +"If style violations are found, many of them can be addressed " +"automatically via::" +msgstr "若存在不合规范风格的代码,大多数情况下可以通过下述命令自动纠正:" + +#: ../../contribute.rst:111 ebad1e2cb63a45d999d2d3e510711972 msgid "" "If code style violations are found in lines you changed, correct those " -"lines and re-run the above lint command until they have all been fixed. " -"You do not need to address style violations, if any, for code lines you " -"did not touch." -msgstr "" -"如果在修改过的代码中有地方违反了代码风格规范,请纠正并再次运行上述命令,直到全部纠正。" -"但是若是发现违反代码风格的地方并不是你修改的,请忽略之,不要进行纠正。" +"lines and re-run the ``invoke lint`` command until they have all been " +"fixed. You do not need to address style violations, if any, for code " +"lines you did not touch." +msgstr "如果在修改过的代码中有地方违反了代码风格规范,请纠正并再次运行上述命令,直到全部纠正。但是若是发现违反代码风格的地方并不是你修改的,请忽略之,不要进行纠正。" -#: ../../contribute.rst:110 74ec20f2daf74ad18cc083ad48b89dfe +#: ../../contribute.rst:115 e208ada16ab8425e9fbbcd5f135f6574 msgid "" "After making your changes and running the tests, you may see a test " "failure mentioning that \"some generated files differ from the expected " @@ -489,94 +457,83 @@ msgid "" " have both** ``en_EN.utf8`` **and** ``fr_FR.utf8`` **locales installed**," " and then run the following command::" msgstr "" -"在修改完代码,运行测试的过程中,你可能会看到测试失败中有提到“some generated files " -"differ from the expected functional tests output” 。这可能是由于你对代码的修改" -"影响到了Pelican的HTML输出,若输出的结果确实是你想要的,请更新功能测试所用的输出用例。" -"请确保你安装了 ``en_EN.utf8`` 和 ``fr_FR.utf8`` ,然后执行下述命令:" +"在修改完代码,运行测试的过程中,你可能会看到测试失败中有提到“some generated files differ from the " +"expected functional tests output” " +"。这可能是由于你对代码的修改影响到了Pelican的HTML输出,若输出的结果确实是你想要的,请更新功能测试所用的输出用例。请确保你安装了 " +"``en_EN.utf8`` 和 ``fr_FR.utf8`` ,然后执行下述命令:" -#: ../../contribute.rst:120 4299259dadd748238f9465eefb84727c +#: ../../contribute.rst:125 a4a3e16c3e0345c99cb2d8b674627afa msgid "" "You may also find that some tests are skipped because some dependency " "(e.g., Pandoc) is not installed. This does not automatically mean that " "these tests have passed; you should at least verify that any skipped " "tests are not affected by your changes." -msgstr "" -"你还可能会发现有一些测试由于缺少依赖(例如 Pandoc)而被跳过。这并不意味着通过" -"了这些测试,请至少确保对代码的修改不会影响到这些被跳过的测试。" +msgstr "你还可能会发现有一些测试由于缺少依赖(例如 Pandoc)而被跳过。这并不意味着通过了这些测试,请至少确保对代码的修改不会影响到这些被跳过的测试。" -#: ../../contribute.rst:125 a8835ccddf624fc1994c618ded8cc5ba +#: ../../contribute.rst:130 dd6db784c2534b0ea0842cb736dca7c3 msgid "" "You should run the test suite under each of the supported versions of " "Python. This is best done by creating a separate Python environment for " "each version. Tox_ is a useful tool to automate running tests inside " "``virtualenv`` environments." msgstr "" -"你应该在Pelican支持的所有Python版本下运行测试套件。一般会通过为每一个Python版本" -"创建一个虚拟环境来实现这一点。Tox_ 是一个用于在 ``virtualenv`` 环境中自动运行" -"测试的工具。" +"你应该在Pelican支持的所有Python版本下运行测试套件。一般会通过为每一个Python版本创建一个虚拟环境来实现这一点。Tox_ " +"是一个用于在 ``virtualenv`` 环境中自动运行测试的工具。" -#: ../../contribute.rst:133 b8b8c16b0d0743b98de5d759f79d07ba +#: ../../contribute.rst:138 58fd644b4b7248ebb9c8ff899a2f90b1 msgid "Running a code coverage report" msgstr "运行代码测试覆盖报告" -#: ../../contribute.rst:135 674a92a42d924931801c9f9c02463cd5 +#: ../../contribute.rst:140 abe50ab68fef48dea42aa269743fc172 msgid "" "Code is more likely to stay robust if it is tested. Coverage_ is a " "library that measures how much of the code is tested. To run it::" -msgstr "" -"经过测试的代码往往具有更好的健壮性。 Coverage_ 是一个用于衡量代码测试覆盖率的库" -"执行下面的命令以调取之:" +msgstr "经过测试的代码往往具有更好的健壮性。 Coverage_ 是一个用于衡量代码测试覆盖率的库执行下面的命令以调取之:" -#: ../../contribute.rst:140 ecb5e7f9e83c4243ba04b58764e573b6 +#: ../../contribute.rst:145 9d5ba28c240f464c92db9869c01e3917 msgid "" "This will show overall coverage, coverage per file, and even line-by-line" " coverage. There is also an HTML report available::" -msgstr "" -"该命令会展示总体覆盖率以及在每个文件上的覆盖率,甚至还会展示每一行的覆盖情况。" -"同样也会有一份HTML格式的报告供您查看:" +msgstr "该命令会展示总体覆盖率以及在每个文件上的覆盖率,甚至还会展示每一行的覆盖情况。同样也会有一份HTML格式的报告供您查看:" -#: ../../contribute.rst:148 bad31d4cb0b644ac8ecb7885b22072a7 +#: ../../contribute.rst:153 45e095f0c0fd4a5b9f75027d12dd891f msgid "Building the docs" msgstr "构建文档" -#: ../../contribute.rst:150 47e1f1caa594462d9b3b4403645abf3b +#: ../../contribute.rst:155 e1e8bb56a9c8449a8da8e10fcf45da2a msgid "" "If you make changes to the documentation, you should build and inspect " "your changes before committing them::" -msgstr "" -"若你对文档进行过修改,请在commit前完成构建和检查:" +msgstr "若你对文档进行过修改,请在commit前完成构建和检查:" -#: ../../contribute.rst:155 a4961ae22c2c4de9bbc8bb98d3a3ec81 +#: ../../contribute.rst:160 9482dc5bee484f0c9f05af197b49ed70 msgid "" "Open http://localhost:8000 in your browser to review the documentation. " "While the above task is running, any changes you make and save to the " "documentation should automatically appear in the browser, as it live-" "reloads when it detects changes to the documentation source files." msgstr "" -"执行上述命令后,请在Web浏览器中打开 http://localhost:8000 来查看文档。" -"在上述命令执行时,对文档做的任何修改应该会自动反映在浏览器中。" +"执行上述命令后,请在Web浏览器中打开 http://localhost:8000 " +"来查看文档。在上述命令执行时,对文档做的任何修改应该会自动反映在浏览器中。" -#: ../../contribute.rst:161 7740ec477ad747ebaa2dde2b2aef45d5 +#: ../../contribute.rst:166 82343c9684bb440eb260110d98bb0e59 msgid "Plugin development" msgstr "插件开发" -#: ../../contribute.rst:163 9505da5fcac24d718f59c797061d2b0f +#: ../../contribute.rst:168 8697f547344e4973ad34f9c619ddf22e msgid "" "To create a *new* Pelican plugin, please refer to the `plugin template`_ " "repository for detailed instructions." -msgstr "" -"要创建一个 *新的* Pelican插件,请参阅 `插件模板`_ 仓库以获得更为详细的指导。" +msgstr "要创建一个 *新的* Pelican插件,请参阅 `插件模板`_ 仓库以获得更为详细的指导。" -#: ../../contribute.rst:166 5fdae4611a6949b9a4c3bc82c52d3bc6 +#: ../../contribute.rst:171 3c505e3035c143c89efd3e648fe00e8e msgid "" "If you want to contribute to an *existing* Pelican plugin, follow the " "steps above to set up Pelican for local development, and then create a " "directory to store cloned plugin repositories::" -msgstr "" -"若你想在 *已有* Pelican插件中做贡献,请先按前文所述步骤配置Pelican的本地开发环境," -"然后创建一个文件夹来存放克隆下来的插件仓库:" +msgstr "若你想在 *已有* Pelican插件中做贡献,请先按前文所述步骤配置Pelican的本地开发环境,然后创建一个文件夹来存放克隆下来的插件仓库:" -#: ../../contribute.rst:172 0f50b12aaf3b4049999130a92fa6b670 +#: ../../contribute.rst:177 5523421ea2664b1ab0859216a1c8a463 msgid "" "Assuming you wanted to contribute to the Simple Footnotes plugin, you " "would first browse to the `Simple Footnotes`_ repository on GitHub and " @@ -586,129 +543,111 @@ msgstr "" "假设想要为Simple Footnotes插件做贡献,你应该先查看并fork `Simple Footnotes`_ " "的Github仓库,然后克隆你自己fork的那一份,再添加原仓库作为Git远程仓库upstream:" -#: ../../contribute.rst:185 2efe992372f149c3b63ca22016f8501b +#: ../../contribute.rst:190 e5178eb4654a44919c743d37f00ff4c3 msgid "Create a topic branch for your plugin bug fix or feature::" msgstr "同样地,为你想要进行的bug修复或特性添加创建一个分支:" -#: ../../contribute.rst:189 40f3c07d12cc4630bc75355c3449196d +#: ../../contribute.rst:194 af04dad9f528473caa4c4c0f4c33042a msgid "" "After writing new tests for your plugin changes, run the plugin test " "suite and check for code style compliance via::" -msgstr "" -"完成修改并添加测试后,运行测试套件,并检查代码风格:" +msgstr "完成修改并添加测试后,运行测试套件,并检查代码风格:" -#: ../../contribute.rst:195 ba97ce962daa437cbcf2d09897394aed -msgid "" -"If style violations are found, many of them can be addressed " -"automatically via::" -msgstr "" -"若存在不合规范风格的代码,大多数情况下可以通过下述命令自动纠正:" - -#: ../../contribute.rst:199 a0ee1e11aaea4f5c8ba4c4704678bbaf +#: ../../contribute.rst:205 06d00f61d5c344d587baa85116b3c1e0 msgid "" "If style violations are found even after running the above auto-" "formatters, you will need to make additional manual changes until " "``invoke lint`` no longer reports any code style violations." -msgstr "" -"如果在自动格式化后仍存在代码风格上的问题,请手动修正这些问题,直到执行 " -"``invoke lint`` 时不再报告问题。" +msgstr "如果在自动格式化后仍存在代码风格上的问题,请手动修正这些问题,直到执行 ``invoke lint`` 时不再报告问题。" -#: ../../contribute.rst:207 e9d1e344bb0d4b2fb9d08c2d71d9a342 +#: ../../contribute.rst:213 9a0831b06abd494fad469b7df71c489f msgid "Submitting your changes" msgstr "提交更改" -#: ../../contribute.rst:209 716c9f94166d42299d9ee58eed4f9b53 +#: ../../contribute.rst:215 23b5d147059b4cea99a213f50d63097a msgid "" "Assuming linting validation and tests pass, add a ``RELEASE.md`` file in " "the root of the project that contains the release type (major, minor, " "patch) and a summary of the changes that will be used as the release " "changelog entry. For example::" msgstr "" -"通过了风格检查和所有测试后,请在项目的根目录下添加一个 ``RELEASE.md`` 文件," -"其中应包含发布的类型(major、minor、patch)以及代码变更的摘要,这份摘要会被用作" -"更新日志的条目。下面是一个例子:" +"通过了风格检查和所有测试后,请在项目的根目录下添加一个 ``RELEASE.md`` " +"文件,其中应包含发布的类型(major、minor、patch)以及代码变更的摘要,这份摘要会被用作更新日志的条目。下面是一个例子:" -#: ../../contribute.rst:218 656309283e5642b99981c84da9b04c86 +#: ../../contribute.rst:224 6794c41ebe2c4937ba4f3f8e16e7a9d9 msgid "Commit your changes and push your topic branch::" msgstr "commit你的更改,并push对应分支:" -#: ../../contribute.rst:224 16617b687db94783b5488884e4c9be1b +#: ../../contribute.rst:230 daa69b097fc14739be924714f8070cf6 msgid "" "Finally, browse to your repository fork on GitHub and submit a pull " "request." -msgstr "" -"最后,前往Github,从你fork的仓库向原仓库提出PR。" +msgstr "最后,前往Github,从你fork的仓库向原仓库提出PR。" -#: ../../contribute.rst:228 629ae326bd4e4718a8865d3925c02c3e +#: ../../contribute.rst:234 b71524be74c84517a12fcdecb51bc55e msgid "Logging tips" msgstr "日志技巧" -#: ../../contribute.rst:230 486bb6ae6c484431923a96b7a7aff0c5 +#: ../../contribute.rst:236 a0b70f864ce144eabe0f89d78844c395 msgid "Try to use logging with appropriate levels." msgstr "请仔细斟酌合适的日志等级。" -#: ../../contribute.rst:232 fbe2aed8f0f5412081461fce5d36e51e +#: ../../contribute.rst:238 3b44fa3ec9b3493e97c310207e5dce91 msgid "For logging messages that are not repeated, use the usual Python way::" msgstr "对于不重复的日志消息,使用一般的方式即可:" -#: ../../contribute.rst:241 bab220240a0744f5b1170783098b5eac +#: ../../contribute.rst:247 49d4e407310348838660e8c74c6e3fb6 #, python-format msgid "" "Do not format log messages yourself. Use ``%s`` formatting in messages " "and pass arguments to logger. This is important, because the Pelican " "logger will preprocess some arguments, such as exceptions." msgstr "" -"请不要自己格式化日志消息,而是使用在日志消息中使用 ``%s`` 并向logger传入参数。请务必" -"遵循这一规则,因为Pelican的logger会自动预处理一些特殊的参数,例如exception。" +"请不要自己格式化日志消息,而是使用在日志消息中使用 ``%s`` " +"并向logger传入参数。请务必遵循这一规则,因为Pelican的logger会自动预处理一些特殊的参数,例如exception。" -#: ../../contribute.rst:246 a760419565b8440ebc8b4dc8898520db +#: ../../contribute.rst:252 4ac501dff8bc4554998d3f03486cce0e msgid "Limiting extraneous log messages" msgstr "限制低关联日志消息" -#: ../../contribute.rst:248 dcf900d9f7d0424fabff4a9c5a7e5dc8 +#: ../../contribute.rst:254 c4dfb487945341cda6c0858954a2ed40 msgid "" "If the log message can occur several times, you may want to limit the log" " to prevent flooding. In order to do that, use the ``extra`` keyword " "argument for the logging message in the following format::" -msgstr "" -"如果同一日志消息会重复多次,你会希望限制这些多余的内容。使用 ``extra`` " -"命名参数来实现这一点:" +msgstr "如果同一日志消息会重复多次,你会希望限制这些多余的内容。使用 ``extra`` 命名参数来实现这一点:" -#: ../../contribute.rst:255 1ca7d769fc9348f8a5f9eef7b614522b +#: ../../contribute.rst:261 4090a3bc71e3441e8a7efd639d36ec1e msgid "" "Optionally, you can also set ``'limit_args'`` as a tuple of arguments in " "``extra`` dict if your generic message needs formatting." -msgstr "" -"可选的,如果通用日志消息需要格式化,可以添加 ``'limit_args'`` 参数并将其对应值" -"设为一个元组。" +msgstr "可选的,如果通用日志消息需要格式化,可以添加 ``'limit_args'`` 参数并将其对应值设为一个元组。" -#: ../../contribute.rst:258 85328a267c464f9aaacb1b0ef289d624 +#: ../../contribute.rst:264 dd6530ceb29d4a91902046a3d4e63af6 msgid "" "Limit is set to ``5``, i.e, first four logs with the same ``'limit_msg'``" " are outputted normally but the fifth one will be logged using " "``'limit_msg'`` (and ``'limit_args'`` if present). After the fifth, " "corresponding log messages will be ignored." msgstr "" -"限制数默认设为了 ``5`` ,即前四个有相同 ``'limit_msg'`` 参数的日志消息会正常输出," -"但第五条这样的日志消息会呈现为 ``'limit_msg'`` 参数值本身( ``'limit_args'`` 同理)。" -"第六条及之后的日志消息会被直接忽略。" +"限制数默认设为了 ``5`` ,即前四个有相同 ``'limit_msg'`` 参数的日志消息会正常输出,但第五条这样的日志消息会呈现为 " +"``'limit_msg'`` 参数值本身( ``'limit_args'`` 同理)。第六条及之后的日志消息会被直接忽略。" -#: ../../contribute.rst:263 7a51dbb9559d4a579654b2ab0938d09b +#: ../../contribute.rst:269 50bdb3405a964740aeb91a7d559ba9b5 msgid "" "For example, if you want to log missing resources, use the following " "code::" -msgstr "" -"例如,如果你想要用日志记录资源缺失的信息,可以使用下面的代码:" +msgstr "例如,如果你想要用日志记录资源缺失的信息,可以使用下面的代码:" -#: ../../contribute.rst:271 8db05f7332f3475b940fb79d24e74ce7 +#: ../../contribute.rst:277 0303387eccd842f9aa57eb3192252dba msgid "The log messages will be displayed as follows::" msgstr "最终的日志消息看起来会像这样:" -#: ../../contribute.rst:281 93d618c58e6e4688bebb999ddf591eaa +#: ../../contribute.rst:287 281637c4520d4755993e8bfa46b0326b msgid "Outputting traceback in the logs" msgstr "在日志中输出traceback信息" -#: ../../contribute.rst:283 3d56bb4bc804499a8d3c8f14dc614916 +#: ../../contribute.rst:289 8bd9319a7a6c4f77bd651057d1cc7c75 msgid "" "If you're logging inside an ``except`` block, you may want to provide the" " traceback information as well. You can do that by setting ``exc_info`` " @@ -716,9 +655,8 @@ msgid "" " can be undesired because tracebacks are long and can be confusing to " "regular users. Try to limit them to ``--debug`` mode like the following::" msgstr "" -"当在 ``except`` 块中进行日志记录时,你可能会希望同时输出traceback信息。可以" -"简单地将 ``exc_info`` 参数设为 ``True`` 来实现这一功能。但是通过此方法输出的" -"traceback信息会非常长,不便于理解。可以像下述代码一样将这些信息限制在 " +"当在 ``except`` 块中进行日志记录时,你可能会希望同时输出traceback信息。可以简单地将 ``exc_info`` 参数设为 " +"``True`` 来实现这一功能。但是通过此方法输出的traceback信息会非常长,不便于理解。可以像下述代码一样将这些信息限制在 " "``--debug`` 模式中:" #~ msgid "latest Pelican release (or an up-to-date Git clone of Pelican master)" diff --git a/docs/locale/zh_CN/LC_MESSAGES/faq.po b/docs/locale/zh_CN/LC_MESSAGES/faq.po index 81712a82..f63513ea 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/faq.po +++ b/docs/locale/zh_CN/LC_MESSAGES/faq.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PELICAN 4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-31 22:54+0800\n" +"POT-Creation-Date: 2024-11-07 16:25+0800\n" "PO-Revision-Date: 2024-06-27 19:00+0800\n" "Last-Translator: GeorgeHu \n" "Language: zh_CN\n" @@ -16,29 +16,29 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.16.0\n" -#: ../../faq.rst:2 87acb7c16d974b4eb060949b8ce40914 +#: ../../faq.rst:2 84467b3ab4b8411589855b3130e14406 msgid "Frequently Asked Questions (FAQ)" msgstr "常见问题解答" -#: ../../faq.rst:4 76aee892f7f14d0590db2d76c7cc0123 +#: ../../faq.rst:4 54c28b1640fd4939b5f196fa377292eb msgid "Here are some frequently asked questions about Pelican." msgstr "以下是一些Pelican的常见问题解答。" -#: ../../faq.rst:7 c98549fdd5814984bfa3a6eaf4631d37 +#: ../../faq.rst:7 a95f8f3dcb6741949ba9d4761199dd0a msgid "What's the best way to communicate a problem, question, or suggestion?" msgstr "交流问题、疑问或提建议的最佳方式是什么?" -#: ../../faq.rst:9 dbecb306adeb482ba3b9bd68483bc372 +#: ../../faq.rst:9 d93f8424407d42b2b3ce37b39baecd8a msgid "Please read our :doc:`feedback guidelines `." msgstr "请参阅文档 :doc:`项目贡献与意见反馈 ` 。" -#: ../../faq.rst:12 8fe91d51140946f1b2cb131d786c1814 +#: ../../faq.rst:12 9fea72b4670c4fe6a3d67e1ddb158f47 msgid "How can I help?" msgstr "我可以帮上什么忙?" -#: ../../faq.rst:14 d8477da414c446b3936e73931eb4f63a +#: ../../faq.rst:14 3f4b88cf5b814e678a552c821ae4b450 msgid "" "There are several ways to help out. First, you can communicate any " "Pelican suggestions or problems you might have via `Pelican Discussions " @@ -50,7 +50,7 @@ msgstr "" "`_ " "中提出任何关于Pelican的建议或是问题。在提问或建议之前,请先查看已关闭或开放的issues中是否已有相关内容,以避免内容上的重复。" -#: ../../faq.rst:20 95a29a97e08a452f89aa4eaad191b698 +#: ../../faq.rst:20 ca9e66682caf43a481ca91ecace43ed0 msgid "" "If you want to contribute, please fork `the Git repository " "`_, create a new feature branch, " @@ -62,17 +62,17 @@ msgstr "" ",创建一个新的功能分支,并在其中进行修改,在修改完成后提出一个PR。项目组会尽快审核你的PR。关于此的更多内容,请参见 " ":doc:`项目贡献与意见反馈 ` 一节。" -#: ../../faq.rst:26 bf7a6828eec74dc588c18e185bdd7090 +#: ../../faq.rst:26 f05e9b722b084a439cd6d99b3155910d msgid "" "You can also contribute by creating themes and improving the " "documentation." msgstr "你可以发起的贡献当然也包括创建主题和改进文档。" -#: ../../faq.rst:29 2ce846241ce744fd81981a376d3f5fe2 +#: ../../faq.rst:29 d40c58aeafe54bdaa389c3c05a0fd721 msgid "Is the Pelican settings file mandatory?" msgstr "Pelican配置文件是必要的吗?" -#: ../../faq.rst:31 527720062339422095e2c95755af5584 +#: ../../faq.rst:31 96ef0c57471d4a669bd7f2a7f493c23b msgid "" "Configuration files are optional and are just an easy way to configure " "Pelican. For basic operations, it's possible to specify options while " @@ -82,11 +82,11 @@ msgstr "" "配置文件是可选的,其本质是使您可以更方便地配置Pelican。对于一些基本的配置操作,完全可以在命令行中指定,调用 ``pelican " "--help`` 可以查看pelican命令的更多信息。" -#: ../../faq.rst:36 d0ca19a2e40c4ecaa9ecba6cc677f142 +#: ../../faq.rst:36 e3752aec18514ce292ee4ebd0d95db37 msgid "Changes to the settings file take no effect" msgstr "修改后的配置文件没有生效" -#: ../../faq.rst:38 5b741cbb28854893818826c593f8e323 +#: ../../faq.rst:38 3f5c632fd20446cf8dd70a5eb88dbbcf msgid "" "When experimenting with different settings (especially the metadata ones)" " caching may interfere and the changes may not be visible. In such cases," @@ -96,11 +96,11 @@ msgstr "" "在尝试不同的配置时(尤其是尝试不同元数据时),缓存很可能会产生干扰,使得修改不可见。此时,确保配置了 ``LOAD_CONTENT_CACHE =" " False`` 或在命令行中加上 ``--ignore-cache`` 以禁用缓存。" -#: ../../faq.rst:44 439f2221927b42f7a4c219ab1a76f849 +#: ../../faq.rst:44 067892211d0d4f4bae85d65a0132eb1d msgid "I'm creating my own theme. How do I use Pygments for syntax highlighting?" msgstr "在自己创建主题时,如何使用Pygments来调整语法高亮?" -#: ../../faq.rst:46 3475c1550e584c84a118ac061461f9f6 +#: ../../faq.rst:46 b1e6ed1bea2e4b3cb3798131f30a828c msgid "" "Pygments adds some classes to the generated content. These classes are " "used by themes to style code syntax highlighting via CSS. Specifically, " @@ -114,30 +114,49 @@ msgstr "" "``.highlight pre`` 类来自定义语法高亮的外观。在 `Pygments 项目的demo网站 " "`_ 上可以预览能够渲染的代码类型。" -#: ../../faq.rst:53 ecffb1f9501f46c88f799b79fc0ba343 +#: ../../faq.rst:53 5dccc8ae367545b08bdce61e008e0a20 msgid "" "You can use the following example commands to generate a starting CSS " "file from a Pygments built-in style (in this case, \"monokai\") and then " "copy the generated CSS file to your new theme::" msgstr "你可以使用下面的命令来让Pygments使用内置风格(此处为“monokai”)生成一个初始CSS文件,然后将此文件拷贝到新主题中:" -#: ../../faq.rst:60 8fc71763c5c243339c9e737cc55b99da +#: ../../faq.rst:60 027edae1ebdf4d52b59171a26915c1ac msgid "Don't forget to import your ``pygment.css`` file from your main CSS file." msgstr "不要忘了在你的CSS主文件中引入 ``pygment.css`` 文件。" -#: ../../faq.rst:63 ad118f1f46db423fab19f570cd789798 +#: ../../faq.rst:63 164af3be4dce45879963c5d3ee0cd264 msgid "How do I create my own theme?" msgstr "如何创建我自己的主题?" -#: ../../faq.rst:65 1674585960e742cbade644b63d3bb32a +#: ../../faq.rst:65 7b1db6528b0a4735894868a229a5969d msgid "Please refer to :ref:`theming-pelican`." msgstr "请参阅 :ref:`theming-pelican` 。" -#: ../../faq.rst:68 b06c6a8df1634d20b988515af6536e2c +#: ../../faq.rst:68 b8e21f837e0744c49cfe8f0cb3a1d5ee +msgid "Can I override individual templates without forking the whole theme?" +msgstr "我只需要覆盖主题中单独的几个模板文件,可不可以不fork整个主题?" + +#: ../../faq.rst:70 70fd7b5c55c246a6a25b20304bfdb616 +msgid "" +"Yes, you can override existing templates of the theme that you are using," +" or add new templates, via the ``THEME_TEMPLATES_OVERRIDES`` variable. " +"For example, to override the page template, you can define the location " +"for your templates like this::" +msgstr "当然可以,覆盖部分模板文件或是添加一些模板文件都是可以的,使用 ``THEME_TEMPLATES_OVERRIDES`` 变量即可。" +"例如,若需要覆盖page的模板,可以向这样定义你自己的模板文件位置:" + +#: ../../faq.rst:77 a96870f0cad74996bec2469ea0c2e9e1 +msgid "" +"You can then define a custom template in ``templates/page.html``. See " +":ref:`settings/themes` for details." +msgstr "自定义的模板可以为 ``templates/page.html`` 。详情请参看 :ref:`settings/themes` 。" + +#: ../../faq.rst:81 b832cd952cf44a0097f383825f0f295f msgid "I want to use Markdown, but I got an error." msgstr "我想要使用Markdown,但是出错了。" -#: ../../faq.rst:70 c0a89314dbdf4368b2e32d781c0ae95b +#: ../../faq.rst:83 32d9dbde7029412d852ab8e710112573 msgid "" "If you try to generate Markdown content without first installing the " "Markdown library, you may see a message that says ``No valid files found " @@ -151,77 +170,79 @@ msgstr "" "。虽然Markdown并不是必需依赖,但如果你写的内容中含有Markdown格式,就需要安装Markdown库了。输入下面的命令以安装Markdown库,如果需要权限,请在前面添加" " ``sudo`` :" -#: ../../faq.rst:80 a4c93b71eb914652b3f05357067f87b3 +#: ../../faq.rst:93 46728a367ffe47d9afeb7608e9c0db5f msgid "Can I use arbitrary metadata in my templates?" msgstr "在模板中可以使用任意元数据吗?" -#: ../../faq.rst:82 6ac1579e5d8842f5bf97b87745848c6a +#: ../../faq.rst:95 9b7fbafc6d29429a88a079bfb74e3af5 msgid "" "Yes. For example, to include a modified date in a Markdown post, one " "could include the following at the top of the article::" msgstr "当然可以。例如,可以在Markdown帖子中包含一个“修改日期”,加在文章开头即可:" -#: ../../faq.rst:87 d1ad8fa8e07c4500ab754962064749a8 +#: ../../faq.rst:100 ce62442a4c9d4347bd6ae8a59476fcee msgid "" "For reStructuredText, this metadata should of course be prefixed with a " "colon::" msgstr "对于reStructuredText,此元数据也应当以冒号为前缀:" -#: ../../faq.rst:91 e3c9814b5b3849a7957f964565038e45 +#: ../../faq.rst:104 bf869a6da43e448a9cc512843aa4a183 msgid "" "This metadata can then be accessed in templates such as ``article.html`` " "via::" msgstr "此元数据可以在模板中获取到,例如在 ``article.html`` 中,可以像这样获取:" -#: ../../faq.rst:97 11d953b5718c4baeb7f7fbbb9538c763 +#: ../../faq.rst:110 b9c9a648b30942b996b124af9fd5a84c msgid "" "If you want to include metadata in templates outside the article context " "(e.g., ``base.html``), the ``if`` statement should instead be::" msgstr "如果您想在其他模板(例如 ``base.html`` )中获取此元数据,则 ``if`` 语句应改为:" -#: ../../faq.rst:103 99ca0aeea6d14c159cf1f1b8d9cf016d +#: ../../faq.rst:116 b78a678a165d40f4823fac2b19bcafc1 msgid "" "How do I make my output folder structure identical to my content " "hierarchy?" msgstr "如何使得输出目录的结构和content目录的结构保持一致?" -#: ../../faq.rst:105 e97223e6c7c94c08a1d42f783fd67f7e +#: ../../faq.rst:118 851d1019c070482991667cc024063d29 msgid "Try these settings::" msgstr "可以尝试如下配置:" -#: ../../faq.rst:112 d35f11a227ba421596458ea8f26ecde0 +#: ../../faq.rst:125 5195876e3f364a838d72b16c568263bc msgid "How do I assign custom templates on a per-page basis?" msgstr "如何为某个页面指定某个模板?" -#: ../../faq.rst:114 287bac0946dc47feab068bdb76d0bc2e +#: ../../faq.rst:127 2ddd3cf1fbf048b1819bcfc9b3691a12 msgid "" "It's as simple as adding an extra line of metadata to any page or article" " that you want to have its own template. For example, this is how it " "would be handled for content in reST format::" msgstr "这非常简单,在任何页面或者文章中,都可以通过多添加一行元数据来指定特定模板。例如,在reST中,使用:" -#: ../../faq.rst:120 b845784299bf47629e616505000724c1 +#: ../../faq.rst:133 6f5eb40b4a5e4f83ab9d1cb48fefad57 msgid "For content in Markdown format::" msgstr "对于Markdown,则使用:" -#: ../../faq.rst:124 fa734dbb540e4cda8a5be5fb1b2da124 +#: ../../faq.rst:137 2e28d1bf074c437eb5017bf6f345bf71 msgid "" "Then just make sure your theme contains the relevant template file (e.g. " -"``template_name.html``)." -msgstr "确保对应的模板文件在主题中存在即可(例如 ``template_name.html`` )。" +"``template_name.html``). If you just want to add a new custom template to" +" an existing theme, you can also provide it in a directory specified by " +"``THEME_TEMPLATES_OVERRIDES`` (see :ref:`settings/themes`)." +msgstr "" -#: ../../faq.rst:128 bdee9be4397f4839855295ee1a0fdd12 +#: ../../faq.rst:142 675e77f99f3c42bb8715c84a97c7a064 msgid "How can I override the generated URL of a specific page or article?" msgstr "如何重写某一个页面或文章生成的URL?" -#: ../../faq.rst:130 ed91b5bdcbe24473a6fed738784311b8 +#: ../../faq.rst:144 7e518b99b29d4787addc732d57e94ed1 msgid "" "Include ``url`` and ``save_as`` metadata in any pages or articles that " "you want to override the generated URL. Here is an example page in reST " "format::" msgstr "在任意页面或文章中都可以添加 ``url`` 和 ``save_as`` 元数据,这样就可以重写URL了。下面以reST格式为例:" -#: ../../faq.rst:139 5aa733d8d3bd4d86920e7e142715b1f4 +#: ../../faq.rst:153 903306ecaed3483591b4ed2dcba3d183 msgid "" "With this metadata, the page will be written to " "``override/url/index.html`` and Pelican will use the URL " @@ -230,18 +251,18 @@ msgstr "" "有了这样的元数据,此页面会保存为 ``override/url/index.html`` ,Pelican会将 ``override/url/``" " 作为链接到此页面的URL。" -#: ../../faq.rst:143 04d9890aa34d4c1e86bc7a49cd64938a +#: ../../faq.rst:157 d80d84fcb6844e25a8452e29c4113181 msgid "How can I use a static page as my home page?" msgstr "如何使用一个静态页面作为主页?" -#: ../../faq.rst:145 d3e8a4e2d453446f9037fa46e6775080 +#: ../../faq.rst:159 e17a2e2dd9014109888bab9286ee607c msgid "" "The override feature mentioned above can be used to specify a static page" " as your home page. The following Markdown example could be stored in " "``content/pages/home.md``::" msgstr "上一个问题中提到的特性可以用于实现此需求。下面例子中的Markdown文件保存为 ``content/pages/home.md`` :" -#: ../../faq.rst:155 739da75e7ce946af99c9f577e8a284ff +#: ../../faq.rst:169 b99ba0ca8656416cbdc38f3fa263b7eb msgid "" "If the original blog index is still wanted, it can then be saved in a " "different location by setting ``INDEX_SAVE_AS = 'blog_index.html'`` for " @@ -250,11 +271,11 @@ msgstr "" "如果仍需要原来的博客主页(即 ``'index'`` 直接模板),可以通过设置 ``INDEX_SAVE_AS = " "'blog_index.html'`` 将其存储在其他位置。" -#: ../../faq.rst:160 5224f09821d24e4a8db6870da1266a20 +#: ../../faq.rst:174 fca4725a57dd451fb3b0fb9df78f69b5 msgid "What if I want to disable feed generation?" msgstr "可以禁用订阅源生成吗?" -#: ../../faq.rst:162 8f014ffab3c44b0ebf2b0d9872bfbfa7 +#: ../../faq.rst:176 e9c08140e2ed44f189a7a156db027a3e msgid "" "To disable feed generation, all feed settings should be set to ``None``. " "All but three feed settings already default to ``None``, so if you want " @@ -264,19 +285,19 @@ msgstr "" "要禁用订阅源,所有订阅源相关的配置都应被设为 ``None`` 。其中有三项设置默认为 ``None`` " ",因此如果要彻底不生成订阅源,你只需要指定下面这些设置:" -#: ../../faq.rst:172 9ab29ccca83c4ecfabcb3ad4dd17c751 +#: ../../faq.rst:186 7820a481af4c4f44a40fb3ae80768a1d msgid "" "The word ``None`` should not be surrounded by quotes. Please note that " "``None`` and ``''`` are not the same thing." msgstr "``None`` 两侧不需要加引号。请注意 ``None`` 和 ``''`` 不是同一个东西。" -#: ../../faq.rst:176 fd8cbe4962d145ccadfd480419dbea9e +#: ../../faq.rst:190 4fa2ffbf1c274ec396a0d756762c260d msgid "" "I'm getting a warning about feeds generated without SITEURL being set " "properly" msgstr "Pelican警告说由于SITEURL设置不正确,无法正常生成订阅源" -#: ../../faq.rst:178 e3135e5903ec422f8d7895866ca6f365 +#: ../../faq.rst:192 8d52f14f6b03476897dfb15c188a961a msgid "" "`RSS and Atom feeds require all URL links to be absolute " "`_. In order to " @@ -287,17 +308,17 @@ msgstr "" "`_ " "。为了使得Pelican能正确生成链接,你需要将站点的 ``SITEURL`` 设置为完整路径。" -#: ../../faq.rst:183 4f2cd929dda7464cbd577d1249969920 +#: ../../faq.rst:197 1412ceb735d44a30b58db3241248e7ec msgid "" "Feeds are still generated when this warning is displayed, but links " "within may be malformed and thus the feed may not validate." msgstr "虽然Pelican提出了警告,但是仍会生成订阅源,但其中的链接可能是无效的,这会导致订阅源不可用。" -#: ../../faq.rst:187 a9f3465fda8c4a0d9395b2d6d9d5478f +#: ../../faq.rst:201 20cadccc527e4ebda08eac9ed34f5055 msgid "Can I force Atom feeds to show only summaries instead of article content?" msgstr "可以让Atom订阅源只显示摘要,不显示文章内容吗?" -#: ../../faq.rst:189 baf140533501453aa8caeddfc276d8fb +#: ../../faq.rst:203 9c45ba2ec5c6402e86e89661b943d1ad msgid "" "Instead of having to open a separate browser window to read articles, the" " overwhelming majority of folks who use feed readers prefer to read " @@ -314,11 +335,11 @@ msgstr "" " ``content`` " "字段,因此Pelican在发布RSS时默认只包含摘要(当然也可以设置为包含文章内容)。Pelican在订阅源生成上的如此行为就可以让用户自行选择订阅类型:包含了完整内容的Atom或是只包含摘要的RSS。" -#: ../../faq.rst:200 850ac093f2764547a7df74d5d055cbd4 +#: ../../faq.rst:214 bf0d4ca837f74d9ab6618db6306c6a70 msgid "Is Pelican only suitable for blogs?" msgstr "Pelican只适合用于博客吗?" -#: ../../faq.rst:202 1fb5d92096b242d09da5e0e490b34685 +#: ../../faq.rst:216 49697f375cfc49b08f5d0c2297d15028 msgid "" "No. Pelican can be easily configured to create and maintain any type of " "static site. This may require a little customization of your theme and " @@ -328,13 +349,13 @@ msgid "" "tag-related pages via::" msgstr "不是的。Pelican可以方便地用于创建维护任何静态站点,为此你需要对主题和配置做一些定制。例如,如果要为你的产品构建一个宣传网站,即不需要使用标签特性,从主题中移除与标签相关的HTML代码即可。另外,还可以通过下面的设置来禁用标签相关页面的生成:" -#: ../../faq.rst:212 5452959b3b694cbc89bb8e91bfbef840 +#: ../../faq.rst:226 0a59dd7209554237912579b362d07788 msgid "" "Why does Pelican always write all HTML files even with content caching " "enabled?" msgstr "启用内容缓存后,为什么Pelican仍会每次都写入所有HTML文件?" -#: ../../faq.rst:214 b27b4b7256f749f1bc5970b95fa742ab +#: ../../faq.rst:228 6291b82d02fc4450a79d1200b5d04f62 msgid "" "In order to reliably determine whether the HTML output is different " "before writing it, a large part of the generation environment including " @@ -347,7 +368,7 @@ msgid "" "reliable." msgstr "为了确定HTML输出确实和之前的不同,模板上下文、插件等很多生成环境都需要保存并比较某种哈希值(对于不可哈希的内容类型还需要进行一些额外处理)。另外,由于插件、分页等内容的存在,输出的HTML很可能会与之前不同。因此,考虑到处理时间和存储空间,每次都重新写入全部HTML会更快更可靠。" -#: ../../faq.rst:223 dcb5b1cf0e1b413bb7c04f6deb4ad5d7 +#: ../../faq.rst:237 5cc5e1361f914c92b0670030f0c83f5d msgid "" "However, this means that the modification time of the files changes every" " time, so a ``rsync`` based upload will transfer them even if their " @@ -359,11 +380,11 @@ msgstr "" "上传时会把没有变化的内容也进行上传。一个简便的解决方法就是给 ``rsync`` 加上 ``--checksum`` " "选项,这会比Pelican在生成时进行校验更快。" -#: ../../faq.rst:230 628a1180f3fd4c0b8301b33e0728d2c2 +#: ../../faq.rst:244 b24c40be89b94f3b980cbbda38d46115 msgid "How to process only a subset of all articles?" msgstr "如何只处理一部分文章?" -#: ../../faq.rst:232 c2bfe768775342bb8386255ea1bbbe4e +#: ../../faq.rst:246 fa34a90481f44ace83ee16401543ce09 msgid "" "It is often useful to process only e.g. 10 articles for debugging " "purposes. This can be achieved by explicitly specifying only the " @@ -374,11 +395,11 @@ msgstr "" "简便起见,在调试时可能只需要处理几篇文章。可以直接在配置项 ``ARTICLE_PATHS`` 中添加需要处理文章的文件名。可以通过像 ``cd " "content; find -name '*.md' | head -n 10`` 这样的命令获取文章文件名的列表。" -#: ../../faq.rst:238 72d30cb7a6e348c483cba0c6b6de8d3a +#: ../../faq.rst:252 0fa566e3aa084cb9b04e0cee32684222 msgid "My tag cloud is missing/broken since I upgraded Pelican" msgstr "在升级Pelican后,标签云消失或不可用了" -#: ../../faq.rst:240 7d07dcddab5d42d1aab6a8dbd27ce36c +#: ../../faq.rst:254 0bd1304a12c24f048b227c68391b148c msgid "" "In an ongoing effort to streamline Pelican, tag cloud generation has been" " moved out of Pelican core and into a separate `plugin " @@ -389,11 +410,11 @@ msgstr "" "`_ 中。查看 :ref:`plugins` " "文档获取更多关于Pelican插件系统的信息。" -#: ../../faq.rst:246 51c727bc21f946b8915f958312369e0f +#: ../../faq.rst:260 1833dfba94c74f4bb9e9f0a112ed3e0f msgid "Since I upgraded Pelican my pages are no longer rendered" msgstr "升级Pelican后,一些页面没有被渲染" -#: ../../faq.rst:248 4a0d962bc2d844cbab3d0b3e7f6f7bba +#: ../../faq.rst:262 576e5c2338ba4c43a51bb562301ad0c2 msgid "" "Pages were available to themes as lowercase ``pages`` and uppercase " "``PAGES``. To bring this inline with the :ref:`templates-variables` " @@ -405,15 +426,15 @@ msgstr "" "variables` 一节中的内容保持一致,大写的 ``PAGES`` 被删除了。只要将主题中的 ``PAGES`` 替换为 ``pages`` " ",问题即可解决。例如将原先的:" -#: ../../faq.rst:255 6167ad6b52db43d384247747db1884ca +#: ../../faq.rst:269 355512b9f6b34ece9b6baed128b2ca4d msgid "with something like::" msgstr "替换为:" -#: ../../faq.rst:260 a7a04eb9e8e549fa8a2a72db3f35b532 +#: ../../faq.rst:274 99ef769943fe41c4a37ca951e905b2ba msgid "How can I stop Pelican from trying to parse my static files as content?" msgstr "如何避免让Pelican将我的静态文件解析为内容文件?(译者注:例如要将一个HTML文件作为静态文件)?" -#: ../../faq.rst:262 6baaf265738d4acaa26f7829c64a0ac5 +#: ../../faq.rst:276 4efb20c5b82d41afb07151599fa189dd msgid "" "Pelican's article and page generators run before it's static generator. " "That means if you use a setup similar to the default configuration, where" @@ -426,7 +447,7 @@ msgstr "" "配置项中,所有以有效内容文件后缀结尾的文件( ``.html`` 、 ``.rst`` 、 ``.md`` " "等)都会被视为文章或者页面,而不是静态文件。" -#: ../../faq.rst:268 e4591dd94ddd4199900b9a451d12929e +#: ../../faq.rst:282 d959eb6a67fe440caa70105e1692bf93 msgid "" "To circumvent this issue either use the appropriate ``*_EXCLUDES`` " "setting or disable the offending reader via ``READERS`` if you don't need" @@ -435,11 +456,11 @@ msgstr "" "为了避免这个问题,使用合适的 ``*_EXCLUDES`` 配置,在必要时还可以通过 ``READERS`` " "配置项来直接禁用产生问题的reader。" -#: ../../faq.rst:272 ca927fe2be10411ab365bcc3e4fa4dbd +#: ../../faq.rst:286 5e64dc4b6fad4e7ea07278f5a2529e89 msgid "Why is [arbitrary Markdown syntax] not supported?" msgstr "为什么不是所有的Markdown语法都支持?" -#: ../../faq.rst:274 5c9cc929a6bf4f1db9d4eed5f37fc0af +#: ../../faq.rst:288 6872a70ec1434c41a78d465271761c69 msgid "" "Pelican does not directly handle Markdown processing and instead " "delegates that task to the Python-Markdown_ project, the core of which " @@ -455,3 +476,9 @@ msgstr "" "项目,此项目的核心有意只遵循原始的Markdown语法规则,而不服从之后传播开的大量Markdown风格。另外, Python-Markdown_" " 是相当模块化的,你想要使用的语法可能已经有现成的 `Markdown扩展`_ " "进行了实现。或者,也有人创建了支持Markdown变体的Pelican插件,如果你想要用某种Markdown变体,可以在这些地方寻找支持。" + +#~ msgid "" +#~ "Then just make sure your theme " +#~ "contains the relevant template file " +#~ "(e.g. ``template_name.html``)." +#~ msgstr "确保对应的模板文件在主题中存在即可(例如 ``template_name.html`` )。" diff --git a/docs/locale/zh_CN/LC_MESSAGES/install.po b/docs/locale/zh_CN/LC_MESSAGES/install.po index 4bc2c10f..f77ccab5 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/install.po +++ b/docs/locale/zh_CN/LC_MESSAGES/install.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PELICAN 4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-24 19:06+0800\n" +"POT-Creation-Date: 2025-07-13 11:46+0800\n" "PO-Revision-Date: 2024-06-25 19:00+0800\n" "Last-Translator: GeorgeHu \n" "Language: zh_CN\n" @@ -16,38 +16,35 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../install.rst:2 32d9c99d9171418c89daafbe7260daa9 +#: ../../install.rst:2 e735e1393d63466092c9fc0a5ee4117d msgid "Installing Pelican" msgstr "安装Pelican" -#: ../../install.rst:4 73ec02b650044be6bb17951f4a915075 +#: ../../install.rst:4 e34bdf7c1bbb4c75a47f8bd16e626c67 msgid "" "Pelican currently runs best on |min_python|; earlier versions of Python " "are not supported." -msgstr "" -"Pelican需要 |min_python| 以上版本的Python,不支持更低版本。" +msgstr "Pelican需要 |min_python| 以上版本的Python,不支持更低版本。" -#: ../../install.rst:6 9134a5a1bd9a4f54a36a3da163d859d8 +#: ../../install.rst:6 ff98ade47da6403e84dd1b2209896d9c msgid "" "You can install Pelican via several different methods. The simplest is " "via Pip_::" -msgstr "" -"有多种方法可以安装Pelican,最简单的就是通过 Pip_:" +msgstr "有多种方法可以安装Pelican,最简单的就是通过 Pip_:" -#: ../../install.rst:10 22d5948b07d14a13bc45aa14ef11e856 +#: ../../install.rst:10 ae2fcb82534e4a3f81980f69ed94c9ad msgid "Or, if you plan on using Markdown::" msgstr "如果您需要使用Markdown,请使用下面的命令安装:" -#: ../../install.rst:14 b910f7faa2c84e5eb62fbd0fae2544d3 +#: ../../install.rst:14 ed597b1eb47949efba0f1781ef7bbd1f msgid "" "(Keep in mind that some operating systems will require you to prefix the " "above command with ``sudo`` in order to install Pelican system-wide.)" -msgstr "" -"(在某些操作系统中,需要在命令前加 ``sudo`` 才能在整个系统上安装Pelican)" +msgstr "(在某些操作系统中,需要在命令前加 ``sudo`` 才能在整个系统上安装Pelican)" -#: ../../install.rst:17 afb018b5d42e433e8107ca38dfcb545f +#: ../../install.rst:17 04d6784f06dd40e7bff76bf6476aaba1 msgid "" "While the above is the simplest method, the recommended approach is to " "create a virtual environment for Pelican via virtualenv_ before " @@ -55,43 +52,40 @@ msgid "" " open a new terminal session and create a new virtual environment for " "Pelican::" msgstr "" -"尽管上面是最简单的安装方法,但我们推荐使用虚拟环境 virtualenv_ 完成" -"Pelican的安装。当您安装好 virtualenv_ 后,打开一个新的命令行并" -"为Pelican创建一个虚拟环境:" +"尽管上面是最简单的安装方法,但我们推荐使用虚拟环境 virtualenv_ 完成Pelican的安装。当您安装好 virtualenv_ " +"后,打开一个新的命令行并为Pelican创建一个虚拟环境:" -#: ../../install.rst:26 7d981233f13e42b6b07fbd5fa58f69fc +#: ../../install.rst:26 08aae819315e48a194a065a3fc3dddad msgid "" "Once the virtual environment has been created and activated, Pelican can " "be installed via ``python -m pip install pelican`` as noted above. " "Alternatively, if you have the project source, you can install Pelican " -"using the distutils method::" +"using the setuptools method::" msgstr "" "当创建并激活虚拟环境后,使用之前提到过的命令 ``python -m pip install pelican`` " -"就可以安装Pelican了。或者,如果您想要从源码安装,可以使用distutils方式:" +"就可以安装Pelican了。或者,如果您想要从源码安装,可以使用setuptools:" -#: ../../install.rst:33 c8109ae3e44541e18e713e39690009ae +#: ../../install.rst:33 368febf14ca740e19fa470b0f832dea1 msgid "" "If you have Git installed and prefer to install the latest bleeding-edge " "version of Pelican rather than a stable release, use the following " "command::" -msgstr "" -"如果安装过Git,并且您希望安装Pelican的最最新版本(而不是稳定版)," -"请使用下面的命令:" +msgstr "如果安装过Git,并且您希望安装Pelican的最最新版本(而不是稳定版),请使用下面的命令:" -#: ../../install.rst:38 2ba389e93d084dea8b702336479a0470 +#: ../../install.rst:38 2498d09099194317a62e67b907bdd5d3 msgid "" "Once Pelican is installed, you can run ``pelican --help`` to see basic " "usage options. For more detail, refer to the :doc:`Publish` " "section." msgstr "" -"当您安装好Pelican,可以执行 ``pelican --help`` 命令来查看一些基本用法。" -"在 :doc:`发布站点` 章节中可以了解更多信息。" +"当您安装好Pelican,可以执行 ``pelican --help`` 命令来查看一些基本用法。在 :doc:`发布站点` " +"章节中可以了解更多信息。" -#: ../../install.rst:42 d1850a31cca24c5281cc7c9fd748b56b +#: ../../install.rst:42 4ef93669753e4bb89252a8c9852e7a71 msgid "Optional packages" msgstr "可选包" -#: ../../install.rst:44 8428281e15354c71a5aec92e9e0041b9 +#: ../../install.rst:44 190eabcd8f3a437cbf895ecee25aff4d msgid "" "If you plan on using `Markdown `_ as " "a markup format, you can install Pelican with Markdown support::" @@ -99,7 +93,7 @@ msgstr "" "如您希望使用 `Markdown `_ " "来写作,执行下面的命令来安装Markdown支持:" -#: ../../install.rst:49 6dcdacecb0874afd8c88cbf814c522ba +#: ../../install.rst:49 fa8fc8ff397a412f839bc2805696aa45 msgid "" "Typographical enhancements can be enabled in your settings file, but " "first the requisite `Typogrify `_ " @@ -108,108 +102,94 @@ msgstr "" "Pelican还支持排版增强,若您需要使用,请先安装 `Typogrify " "`_ 库,稍后您可以在设置文件中启用它。" -#: ../../install.rst:56 d3ff6383ae9745bc9bfed85654086311 +#: ../../install.rst:56 74911273a6934154bad4fadbc0d1f28b msgid "Dependencies" msgstr "依赖" -#: ../../install.rst:58 2dc22a3fa6c242bdb5b61005e1910d79 +#: ../../install.rst:58 77d44b11ae7e4945b119fd473bb53e67 msgid "" "When Pelican is installed, the following dependent Python packages should" " be automatically installed without any action on your part:" -msgstr "" -"当Pelican安装完成后,下面的所有Python依赖应该都会自动安装," -"无需另外做任何操作:" +msgstr "当Pelican安装完成后,下面的所有Python依赖应该都会自动安装,无需另外做任何操作:" -#: ../../install.rst:61 4c7a644a29b540869d69acd10e032039 +#: ../../install.rst:61 22bdf13ed0a3482fb66f10486518261c msgid "" "`feedgenerator `_, to generate " "the Atom feeds" -msgstr "" -"`feedgenerator `_," -"用于生成Atom feeds" +msgstr "`feedgenerator `_,用于生成Atom feeds" -#: ../../install.rst:63 365c8fb0938e4d9fbf78d110b05cb99f +#: ../../install.rst:63 21ddc5ce3bed4f9cab2a454e8319a8c4 msgid "`jinja2 `_, for templating support" msgstr "`jinja2 `_,用于模板系统" -#: ../../install.rst:64 5db63207e60c4997924c3baf8aec8524 +#: ../../install.rst:64 9302b2919a4f4de0927060911f69f5ed msgid "`pygments `_, for syntax highlighting" msgstr "`pygments `_,用于语法高亮" -#: ../../install.rst:65 72bfb5fc2b514031a42952502746c100 +#: ../../install.rst:65 c6e45ac0f3ea4f91953fb2dfc66d29d9 msgid "" "`docutils `_, for supporting " "reStructuredText as an input format" -msgstr "" -"`docutils `_," -"用于reStructuredText格式" +msgstr "`docutils `_,用于reStructuredText格式" -#: ../../install.rst:67 d00ac0c26d884a2d9d7f02fa89491892 +#: ../../install.rst:67 aea17a424f3c4e8eab50172b6653fe16 msgid "" "`blinker `_, an object-to-object and " "broadcast signaling system" -msgstr "" -"`blinker `_," -"对象-对象的信号广播系统" +msgstr "`blinker `_,对象-对象的信号广播系统" -#: ../../install.rst:69 0d317b007acf49fc879203fa8ffb4048 +#: ../../install.rst:69 5da4c8d1fdf349c2afe23ffc9d832816 msgid "" "`unidecode `_, for ASCII " "transliterations of Unicode text utilities" msgstr "" -"`unidecode `_," -"用于将Unicode文本转为ASCII字符的音译" +"`unidecode " +"`_,用于将Unicode文本转为ASCII字符的音译" -#: ../../install.rst:72 ded0aae575854f149bcf2ea9efa4ba21 +#: ../../install.rst:72 ff81051def5544e1b5d66532453aed25 msgid "" "`MarkupSafe `_, for a markup-safe " "string implementation" -msgstr "" -"`MarkupSafe `_," -"用于转义字符的安全处理" +msgstr "`MarkupSafe `_,用于转义字符的安全处理" -#: ../../install.rst:74 eae7d8f6f84040339ccfef98e20502d8 +#: ../../install.rst:74 0222b4cdfdcb48839f5f6b092071db99 msgid "" "`python-dateutil `_, to read " "the date metadata" msgstr "" -"`python-dateutil `_," -"用于读取日期相关的元数据" +"`python-dateutil `_,用于读取日期相关的元数据" -#: ../../install.rst:78 cd33ec4583574c5bb879f08813b9932c +#: ../../install.rst:78 49117127302b49b39bd5b86abae18709 msgid "Upgrading" msgstr "更新升级" -#: ../../install.rst:80 1513dd1e43564cb29da0a14988e0791d +#: ../../install.rst:80 93962c7d303f4c9fa5ad9d43f86ea50a msgid "" "If you installed a stable Pelican release via Pip_ and wish to upgrade to" " the latest stable release, you can do so by adding ``--upgrade``::" -msgstr "" -"若是通过 Pip_ 安装了稳定版本的Pelican,可以通过在安装命令中" -"添加 ``--upgrade`` 来升级到最新版:" +msgstr "若是通过 Pip_ 安装了稳定版本的Pelican,可以通过在安装命令中添加 ``--upgrade`` 来升级到最新版:" -#: ../../install.rst:85 fae6900b3acc41d4b7bb34c192fe4c08 +#: ../../install.rst:85 1ac1fa009f9e4245ae7f975bda7d5a22 msgid "" "If you installed Pelican via distutils or the bleeding-edge method, " "simply perform the same step to install the most recent version." -msgstr "" -"若是通过distutils安装或是通过Git安装了测试版的Pelican" -"重新进行一遍和安装时同样的步骤即可。" +msgstr "若是通过distutils安装或是通过Git安装了测试版的Pelican重新进行一遍和安装时同样的步骤即可。" -#: ../../install.rst:89 89392d36f81f4c7eb75e9a74d1795faa +#: ../../install.rst:89 7845fa285f0b4dcd8e881c9edd61f80c msgid "Kickstart your site" msgstr "启动网站" -#: ../../install.rst:91 a8517a0fbbb1420297df214f50d8792d +#: ../../install.rst:91 488ad84175cb45f6a6bb26cec24c1f10 msgid "" "Once Pelican has been installed, you can create a skeleton project via " "the ``pelican-quickstart`` command, which begins by asking some questions" " about your site::" msgstr "" -"Pelican安装完成后,通过 ``pelican-quickstart`` 命令创建项目的整体框架," -"在运行这个命令时,您需要输入一些与站点相关的信息:" +"Pelican安装完成后,通过 ``pelican-quickstart`` " +"命令创建项目的整体框架,在运行这个命令时,您需要输入一些与站点相关的信息:" -#: ../../install.rst:97 50231ba4b02d4e868995bdacbd02b27d +#: ../../install.rst:97 63a773d35b91455b944206337e527a3a msgid "" "If run inside an activated virtual environment, ``pelican-quickstart`` " "will look for an associated project path inside " @@ -219,26 +199,22 @@ msgid "" "project path on initial invocation, use: ``pelican-quickstart --path " "/your/desired/directory``" msgstr "" -"如果是在虚拟环境中执行 ``pelican-quickstart`` ,系统会自动在 " -"``$VIRTUAL_ENV/.project`` 目录中查找这个命令。若这个这个命令存在" -"并且路径是正确的,一个新的Pelican项目就会在目标位置创建。否则," -"会默认在当前的工作目录下创建这个项目。若要在初始化时指定项目路径,请使用 " -"``pelican-quickstart --path /your/desired/directory``。" +"如果是在虚拟环境中执行 ``pelican-quickstart`` ,系统会自动在 ``$VIRTUAL_ENV/.project`` " +"目录中查找这个命令。若这个这个命令存在并且路径是正确的,一个新的Pelican项目就会在目标位置创建。否则,会默认在当前的工作目录下创建这个项目。若要在初始化时指定项目路径,请使用" +" ``pelican-quickstart --path /your/desired/directory``。" -#: ../../install.rst:104 ea893addf15c47f182384509b1a3a2f7 +#: ../../install.rst:104 b7cdf15328074880bb4fc69dcb7bd26f msgid "" "Once you finish answering all the questions, your project will consist of" " the following hierarchy (except for *pages* — shown in parentheses below" " — which you can optionally add yourself if you plan to create non-" "chronological content)::" msgstr "" -"当您回答完所有问题后,项目就会成功创建。项目中会包含下述的一些层级结构" -"(除了用括号括起来的 *pages*)。如果有一些内容不需要按时间排序," -"您可以将它们放在(pages)所在的位置:" +"当您回答完所有问题后,项目就会成功创建。项目中会包含下述的一些层级结构(除了用括号括起来的 " +"*pages*)。如果有一些内容不需要按时间排序,您可以将它们放在(pages)所在的位置:" -#: ../../install.rst:118 7d13a0cc5ebd44159fddc8de68993fc7 +#: ../../install.rst:118 05e4fe3b0d0a4c998fba451692a68725 msgid "" "The next step is to begin to adding content to the *content* folder that " "has been created for you." -msgstr "" -"接下来就可以开始往 *content* 目录中添加自己创作的内容了。" +msgstr "接下来就可以开始往 *content* 目录中添加自己创作的内容了。" diff --git a/docs/locale/zh_CN/LC_MESSAGES/plugins.po b/docs/locale/zh_CN/LC_MESSAGES/plugins.po index 7b62744d..123117b8 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/plugins.po +++ b/docs/locale/zh_CN/LC_MESSAGES/plugins.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PELICAN 4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-24 19:06+0800\n" +"POT-Creation-Date: 2025-07-13 11:46+0800\n" "PO-Revision-Date: 2024-06-26 19:00+0800\n" "Last-Translator: GeorgeHu \n" "Language: zh_CN\n" @@ -16,26 +16,24 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../plugins.rst:4 b1b40bca7d3748008eefe26806d5d5ef +#: ../../plugins.rst:4 3df58bcad1a64350a8e763d87d7470e3 msgid "Plugins" msgstr "插件" -#: ../../plugins.rst:6 42ca486828e4442a9d74216d0d8bb37d +#: ../../plugins.rst:6 5e0f2aa517254778a71d1e742b051645 msgid "" "Beginning with version 3.0, Pelican supports plugins. Plugins are a way " "to add features to Pelican without having to directly modify the Pelican " "core." -msgstr "" -"Pelican从3.0版本开始支持插件。通过插件,不必直接修改Pelican的核心代码就可以给" -"Pelican添加新功能。" +msgstr "Pelican从3.0版本开始支持插件。通过插件,不必直接修改Pelican的核心代码就可以给Pelican添加新功能。" -#: ../../plugins.rst:10 6bb8ab4cb7eb44ddb1ed4734f47f6781 +#: ../../plugins.rst:10 40ad4aad1dc54b929f6059031edae0d9 msgid "How to use plugins" msgstr "如何使用插件" -#: ../../plugins.rst:12 822e0bd7ce2f4433a7c39b3accde01a1 +#: ../../plugins.rst:12 8fc9f8cba76b4bb9930d80b5b985885a msgid "" "Starting with version 4.5, Pelican moved to a new plugin structure " "utilizing namespace packages that can be easily installed via Pip_. " @@ -44,12 +42,11 @@ msgid "" "Pelican. To see a list of Pip-installed namespace plugins that are active" " in your environment, run::" msgstr "" -"Pelican从4.5版本开始使用了一种全新的插件结构,利用了命名空间包," -"并且可以轻松地通过 Pip_ 进行安装。支持此结构地插件都会被安装在命名空间包 " -"``pelican.plugins`` 下,因此Pelican可以自动发现他们。下面的命令可以用于" -"查看环境中用Pip安装的所有插件:" +"Pelican从4.5版本开始使用了一种全新的插件结构,利用了命名空间包,并且可以轻松地通过 Pip_ " +"进行安装。支持此结构地插件都会被安装在命名空间包 ``pelican.plugins`` " +"下,因此Pelican可以自动发现他们。下面的命令可以用于查看环境中用Pip安装的所有插件:" -#: ../../plugins.rst:20 2b59c5d107dc4b118dc76116910e9495 +#: ../../plugins.rst:20 de052285e7f645a9ab551433f3c07d46 msgid "" "If you leave the ``PLUGINS`` setting as default (``None``), Pelican will " "automatically discover namespace plugins and register them. If, on the " @@ -58,132 +55,122 @@ msgid "" "specify will be registered, and you must explicitly list any namespace " "plugins as well." msgstr "" -"若将 ``PLUGINS`` 配置项设为默认的 ``None`` ,Pelican会自动发现命名空间中的" -"插件并且将他们全部加载;若你在 ``PLUGINS`` 设置项中指定了一系列的插件," -"Pelican就不会去自动发现插件,也就是说,你需要显式地指定所有要使用的插件。" +"若将 ``PLUGINS`` 配置项设为默认的 ``None`` ,Pelican会自动发现命名空间中的插件并且将他们全部加载;若你在 " +"``PLUGINS`` 设置项中指定了一系列的插件,Pelican就不会去自动发现插件,也就是说,你需要显式地指定所有要使用的插件。" -#: ../../plugins.rst:26 52d1968196294569a478931f7022e686 +#: ../../plugins.rst:26 a9675be841b84df584e67087cd23ab34 msgid "" "If you are using the ``PLUGINS`` setting, you can specify plugins in two " "ways. The first method specifies plugins as a list of strings. Namespace " "plugins can be specified either by their full names " "(``pelican.plugins.myplugin``) or by their short names (``myplugin``)::" msgstr "" -"在配置 ``PLUGINS`` 时,有两种方式。一是用字符串列表指定插件的名称,可以是包含" -"命名空间的完整名称(例如 ``pelican.plugins.myplugin`` ),也可以是简短名称" -"( ``myplugin``):" +"在配置 ``PLUGINS`` 时,有两种方式。一是用字符串列表指定插件的名称,可以是包含命名空间的完整名称(例如 " +"``pelican.plugins.myplugin`` ),也可以是简短名称( ``myplugin``):" -#: ../../plugins.rst:35 b2c75e52e66e4000968e744ffa4b89a9 +#: ../../plugins.rst:35 188bf617180b4a7b9bc09f3fb1c201ae msgid "" "Alternatively, you can import them in your settings file and pass the " "modules::" -msgstr "" -"二是在设置文件中先import进来,再将import进的模块放在 ``PLUGINS`` 设置项中:" +msgstr "二是在设置文件中先import进来,再将import进的模块放在 ``PLUGINS`` 设置项中:" -#: ../../plugins.rst:43 88af9139373f4cd89fa5b958196c9448 +#: ../../plugins.rst:43 2d5db874810245a98b59ab080a0df1a5 msgid "" "When experimenting with different plugins (especially the ones that deal " "with metadata and content) caching may interfere and the changes may not " "be visible. In such cases disable caching with ``LOAD_CONTENT_CACHE = " "False`` or use the ``--ignore-cache`` command-line switch." msgstr "" -"在尝试不同的插件时(尤其是那些处理元数据和内容的插件),缓存可能会相互干扰," -"一些更改不会生效。发生这种情况时,就需要通过设置 ``LOAD_CONTENT_CACHE = False`` " -"或使用 ``--ignore-cache`` 命令行选项禁用缓存。" +"在尝试不同的插件时(尤其是那些处理元数据和内容的插件),缓存可能会相互干扰,一些更改不会生效。发生这种情况时,就需要通过设置 " +"``LOAD_CONTENT_CACHE = False`` 或使用 ``--ignore-cache`` 命令行选项禁用缓存。" -#: ../../plugins.rst:48 d0e3cd59052c4a7d995fb5e1e15d9799 +#: ../../plugins.rst:48 7421f93c1d714c9c853fc9311681515a msgid "" "If your plugins are not in an importable path, you can specify a list of " "paths via the ``PLUGIN_PATHS`` setting. As shown in the following " "example, paths in the ``PLUGIN_PATHS`` list can be absolute or relative " "to the settings file::" msgstr "" -"如果插件处于无法直接进行import的路径,可以在 ``PLUGIN_PATHS`` 配置项中指定这些路径。" -"如下例所示, ``PLUGIN_PATHS`` 中的路径可以是绝对的,也可以是相对于设置文件的:" +"如果插件处于无法直接进行import的路径,可以在 ``PLUGIN_PATHS`` 配置项中指定这些路径。如下例所示, " +"``PLUGIN_PATHS`` 中的路径可以是绝对的,也可以是相对于设置文件的:" -#: ../../plugins.rst:56 4c3de952a8514e5caea402392b911f0b +#: ../../plugins.rst:56 b8406038d0284d3fbef9d3de1fa7fd9f msgid "Where to find plugins" msgstr "在哪儿下载插件" -#: ../../plugins.rst:57 16173c9dceb0409f89964412dd7e71e9 +#: ../../plugins.rst:57 b07653ce77194a998630a55ae9511de5 msgid "" "Namespace plugins can be found in the `pelican-plugins organization`_ as " "individual repositories. Legacy plugins are located in the `pelican-" "plugins repository`_ and will be gradually phased out in favor of the " "namespace versions." msgstr "" -"新的命名空间插件可以在GitHub的 `pelican-plugins 组织`_ 中找到,每个插件都是" -"一个独立的仓库。而老的插件则可以在GitHub的 `pelican-plugins 仓库`_ 中找到。" -"这些老的插件会逐步淘汰并转移到新的命名空间版本。" +"新的命名空间插件可以在GitHub的 `pelican-plugins 组织`_ " +"中找到,每个插件都是一个独立的仓库。而老的插件则可以在GitHub的 `pelican-plugins 仓库`_ " +"中找到。这些老的插件会逐步淘汰并转移到新的命名空间版本。" -#: ../../plugins.rst:65 a30a9862112b47128f6e7b28c6836f27 +#: ../../plugins.rst:65 5c55fa6f3d664be2a49b8256dc2f6a2e msgid "" "Please note that while we do our best to review and maintain these " "plugins, they are submitted by the Pelican community and thus may have " "varying levels of support and interoperability." -msgstr "" -"请注意,尽管我们尽全力审查和维护这些插件,但这些插件是Pelican社区提交的," -"因此支持性和互操作性程度各不相同。" +msgstr "请注意,尽管我们尽全力审查和维护这些插件,但这些插件是Pelican社区提交的,因此支持性和互操作性程度各不相同。" -#: ../../plugins.rst:70 f4e140c61c0f45ed8ac53dca3b05b1f1 +#: ../../plugins.rst:70 25339a713a97492c88b0e60024ac34b8 msgid "How to create plugins" msgstr "如何创建插件" -#: ../../plugins.rst:72 43013c6cf4f34ca09205e8dab0b9fa6d +#: ../../plugins.rst:72 62b6b4a1a5f0486e8b3a39d6a7050f0a msgid "" "Plugins are based on the concept of signals. Pelican sends signals, and " "plugins subscribe to those signals. The list of available signals is " "documented in a subsequent section." -msgstr "" -"插件是基于信号这一概念的。Pelican会发送信号,插件则订阅这些信号。可用的信号" -"在下一节会贴出来。" +msgstr "插件是基于信号这一概念的。Pelican会发送信号,插件则订阅这些信号。可用的信号在下一节会贴出来。" -#: ../../plugins.rst:76 5377a966ab114a29acb61f79eadc632b +#: ../../plugins.rst:76 f8f74b0257be46a1878e72e126166bd0 msgid "" "The only rule to follow for plugins is to define a ``register`` callable," " in which you map the signals to your plugin logic. Let's take a simple " "example::" msgstr "" -"对于插件来说,唯一需要遵循的规则就是一定要定义一个可调用的 ``register`` ," -"在 ``register`` 中需要将信号映射到插件逻辑上。下面是一个简单的例子:" +"对于插件来说,唯一需要遵循的规则就是一定要定义一个可调用的 ``register`` ,在 ``register`` " +"中需要将信号映射到插件逻辑上。下面是一个简单的例子:" -#: ../../plugins.rst:93 2217318326524c62804ec94e55a4ca20 +#: ../../plugins.rst:93 163eebc74421416da2ad497830c42771 msgid "" "Signal receivers are weakly-referenced and thus must not be defined " "within your ``register`` callable or they will be garbage-collected " "before the signal is emitted." -msgstr "" -"信号接收器在Pelican中是弱引用的,因此不能将它定义在可调用的 ``register`` 中," -"否则接收器在信号发送之前就会被回收。" +msgstr "信号接收器在Pelican中是弱引用的,因此不能将它定义在可调用的 ``register`` 中,否则接收器在信号发送之前就会被回收。" -#: ../../plugins.rst:97 6731cc78478a46c5a0cb51a8cd477318 +#: ../../plugins.rst:97 bb63bd2d24e341a1a4f7dfa118648d9a msgid "" -"If multiple plugins connect to the same signal, plugins will be executed " -"in the order they are connected. With ``PLUGINS`` setting, order will be " -"as defined in the setting. If you rely on auto-discovered namespace " -"plugins, no ``PLUGINS`` setting, they will be connected in the same order" -" they are discovered (same order as ``pelican-plugins`` output). If you " -"want to specify the order explicitly, disable auto-discovery by defining " +"If multiple plugins connect to the same signal, plugins will be invoked " +"in the order they are registered. When the ``PLUGINS`` setting is " +"defined, plugin invocation order will be the order in which the plugins " +"are listed in the ``PLUGINS`` setting. If you rely on auto-discovered " +"namespace plugins and have no ``PLUGINS`` setting defined, plugins will " +"be invoked in the same order that they are discovered (the same order as " +"listed in the output of the ``pelican-plugins`` command). If you want to " +"specify the order explicitly, disable auto-discovery by defining " "``PLUGINS`` in the desired order." msgstr "" -"如果多个插件关联到同一个信号,插件将按照它们关联的前后顺序执行。但若设置了 " -"``PLUGINS`` 配置项会以此配置项中的顺序为准。如果您使用了无需PLUGINS设置的新版" -"命名空间插件,它们将按照被探测到的顺序进行连接(与 pelican-plugins 输出的顺序相同)。" +"对于关联到同一个信号的多个插件,将按照它们注册的前后顺序执行。但若设置了 ``PLUGINS`` " +"配置项,则会以此配置项中的顺序为准。如果您使用了无需PLUGINS设置的新版命名空间插件,它们将按照被探测到的顺序进行连接(与 pelican-" +"plugins 输出的顺序相同)。若您此时仍想要显式指定顺序,设置 ``PLUGINS`` 配置项即可。" -#: ../../plugins.rst:105 6dad534cc0014b78a3638a91cc4a1120 +#: ../../plugins.rst:107 062aa3a3402141cfbd376d4fee1b5b34 msgid "Namespace plugin structure" msgstr "命名空间插件的结构" -#: ../../plugins.rst:107 aa6f290c3f4d42558b684d0e3487af95 +#: ../../plugins.rst:109 e6968290620d4de3b71ff62d5abba91f msgid "" "Namespace plugins must adhere to a certain structure in order to function" " properly. They need to be installable (i.e. contain ``setup.py`` or " "equivalent) and have a folder structure as follows::" -msgstr "" -"命名空间插件必须遵循特定的结构才能正常工作。这些插件需要是可安装的" -"(即包含 ``setup.py`` 或其他等效文件),并且遵循下述文件夹结构:" +msgstr "命名空间插件必须遵循特定的结构才能正常工作。这些插件需要是可安装的(即包含 ``setup.py`` 或其他等效文件),并且遵循下述文件夹结构:" -#: ../../plugins.rst:120 b8d73cfdb5f042cca1705f97d693263d +#: ../../plugins.rst:122 b9782f71fae14bce9854b8b5056407d8 msgid "" "It is crucial that ``pelican`` or ``pelican/plugins`` folder **not** " "contain an ``__init__.py`` file. In fact, it is best to have those " @@ -192,373 +179,357 @@ msgid "" "``pelican/plugins/myplugin`` folder to avoid any issues." msgstr "" "非常关键的一点就是, ``pelican`` 和 ``pelican/plugins`` 文件夹下都 **不能** 包含 " -"``__init__.py`` 文件。事实上,这两个文件夹下最好是只有上面列出的文件夹," -"并且保证与插件相关的文件都仅包含在 ``pelican/plugins/myplugin`` 文件夹中," -"以避免奇奇怪怪的问题。" +"``__init__.py`` 文件。事实上,这两个文件夹下最好是只有上面列出的文件夹,并且保证与插件相关的文件都仅包含在 " +"``pelican/plugins/myplugin`` 文件夹中,以避免奇奇怪怪的问题。" -#: ../../plugins.rst:126 c3f08ae8c0d7415098157bbd1c99ce08 +#: ../../plugins.rst:128 8440bc91329c498c90fadab556391a84 msgid "" "To easily set up the proper structure, a `cookiecutter template for " "plugins`_ is provided. Refer to that project's README for instructions on" " how to use it." -msgstr "" -"为了让大家更容易就能建立正确的结构,我们为插件提供了一个 `cookiecutter模板`_ ," -"使用方法参考此项目README文件中的指示即可。" +msgstr "为了让大家更容易就能建立正确的结构,我们为插件提供了一个 `cookiecutter模板`_ ,使用方法参考此项目README文件中的指示即可。" -#: ../../plugins.rst:132 c2321eec3dc84224918172c5040a259f +#: ../../plugins.rst:134 bb029c6c9ea14a2dac684d516fb9a1eb msgid "List of signals" msgstr "信号列表" -#: ../../plugins.rst:134 78c4cfefae7e412f8f6287da2e3c8d34 +#: ../../plugins.rst:136 968d92d9b3bb4491ad9c0e4a015e73f9 msgid "Here is the list of currently implemented signals:" msgstr "下面是目前已经实现了的信号:" -#: ../../plugins.rst:137 7a3c3b8b0f114d54b497ab77b09dc558 +#: ../../plugins.rst:139 f2db011f146d40bf9f07ec6b09c7c6d0 msgid "Signal" msgstr "信号" -#: ../../plugins.rst:137 781b5c11f87f43b9ba4b3e75bee696d0 +#: ../../plugins.rst:139 32f683cb25c74315ac803c62868bd7b2 msgid "Arguments" msgstr "参数" -#: ../../plugins.rst:137 df7d14950fed44f4a4b93908aed36060 +#: ../../plugins.rst:139 d02ae4c30dec40ae8bd894fda051562d msgid "Description" msgstr "描述" -#: ../../plugins.rst:139 598901e7cb5b49ac9acb5f148bf7c0e7 +#: ../../plugins.rst:141 d526b9cb6c3c409f9b2d243082dfbdc3 msgid "initialized" msgstr "initialized" -#: ../../plugins.rst:139 ../../plugins.rst:140 ../../plugins.rst:158 -#: ../../plugins.rst:161 4cedbf9ee7fb4c7abe20e15e4ee1c7fb -#: 704ff7e1ddfc4eb3bd7798d25df1e668 bc98001ef73d419b8f811bbb3d3a571a -#: c9104ccaf84c48d98fafca001ec187e2 +#: ../../plugins.rst:141 ../../plugins.rst:142 ../../plugins.rst:160 +#: ../../plugins.rst:163 0ab3e30cf009477980c4c619e0a7dc5e +#: 8cf4a2d70a234250a4d9f63e4e8cb49f a600f769faef42d99333442745c7b498 +#: a69e7ba2df7a47658b2f0e4ade60d455 msgid "pelican object" msgstr "pelican object" -#: ../../plugins.rst:140 6f1a09178e2c44c9bda76ed0c0025bef +#: ../../plugins.rst:142 3aff44965eec41269a45fd0b84b8b5d7 msgid "finalized" msgstr "finalized" -#: ../../plugins.rst:140 175a1d1ab8374325812a00cfd581e54e +#: ../../plugins.rst:142 6a3bd6c773b245af9151ff5669ef7f84 msgid "" "invoked after all the generators are executed and just before pelican " "exits useful for custom post processing actions, such as: - minifying " "js/css assets. - notify/ping search engines with an updated sitemap." -msgstr "" -"所有generator执行完成后调用,即pelican退出之前。这对于自定义后处理操作是" -"非常有用的,例如可以简化js/css资源、向搜索引擎告知更新后的sitemap。" +msgstr "所有generator执行完成后调用,即pelican退出之前。这对于自定义后处理操作是非常有用的,例如可以简化js/css资源、向搜索引擎告知更新后的sitemap。" -#: ../../plugins.rst:144 8d390b6db281423d92a4d7bd4921b4b4 +#: ../../plugins.rst:146 eecb5a5dc1b84f94a830db617122f365 msgid "generator_init" msgstr "generator_init" -#: ../../plugins.rst:144 fef4d6e70a4c4365be408a5f1579135c +#: ../../plugins.rst:146 b01311f8da704b55b38e23149c60bc22 msgid "generator" msgstr "generator" -#: ../../plugins.rst:144 dbe5ff1590dc4df38cb8fd234708c7bd +#: ../../plugins.rst:146 a3c477e7a8d04e94af4ee7a82c873ef2 msgid "invoked in the Generator.__init__" msgstr "在Generator.__init__中调用" -#: ../../plugins.rst:145 0324812d14d9452fbf28c286c2a10834 +#: ../../plugins.rst:147 246a49eb99d34589ac409e5613f27069 msgid "all_generators_finalized" msgstr "all_generators_finalized" -#: ../../plugins.rst:145 f6170ebf34b247868d149f0efca462b3 +#: ../../plugins.rst:147 0dafe1a8f7224b1bbe1af3ebeeac0b31 msgid "generators" msgstr "generators" -#: ../../plugins.rst:145 d67dff93c28146498074abbf3aeb5103 +#: ../../plugins.rst:147 9d5130f91ac748e58d96cfba7711e8f6 msgid "invoked after all the generators are executed and before writing output" msgstr "在所有generator执行完后,写入输出内容前调用," -#: ../../plugins.rst:146 0e9feed7804b4bbdb23711f9d6ad4f40 +#: ../../plugins.rst:148 3a7f543549164bb684f47daa5b1b9bd1 msgid "readers_init" msgstr "readers_init" -#: ../../plugins.rst:146 f0de00423c104ecd8e60fb3450b534b4 +#: ../../plugins.rst:148 0946829014734c53a0b1e389df853daf msgid "readers" msgstr "readers" -#: ../../plugins.rst:146 b554b35806e34e51bc5ab974fb517541 +#: ../../plugins.rst:148 380ba486fff24555b3c312bee4645d23 msgid "invoked in the Readers.__init__" msgstr "在Readers.__init__中调用" -#: ../../plugins.rst:147 ../../plugins.rst:201 003cdeb23b67433e8cf70c600a42e8e4 -#: 7f4a2f6665064a16bcd1b7ea347f5b49 +#: ../../plugins.rst:149 ../../plugins.rst:203 04aa2b44a0b84da9b62b952b627a2b5c +#: e725d629327b48e3a7dffad1d07d81d2 msgid "article_generator_context" msgstr "article_generator_context" -#: ../../plugins.rst:147 8997b3fd1a8d4efb86245916e50c31b9 +#: ../../plugins.rst:149 f0c440ead7fc46e2a90685c3fdffb5d4 msgid "article_generator, metadata" msgstr "article_generator, metadata" -#: ../../plugins.rst:148 ../../plugins.rst:203 4496df152e48410995ae35f73e3ce0e9 -#: f46672e3f919441ba2486f9641752913 +#: ../../plugins.rst:150 ../../plugins.rst:205 2ed41de1aaed481195aeacbc841459be +#: e9e159b6d49d4cd29ebbe6eb6e0bb3b1 msgid "article_generator_preread" msgstr "article_generator_preread" -#: ../../plugins.rst:148 ../../plugins.rst:150 ../../plugins.rst:151 -#: ../../plugins.rst:154 3408ba823f14463196f2296480e25c7d -#: 43b073d3f3ad4a2ba3d0c18447cb7cf6 c776a7323f0a41babb44daf3abfd6b85 -#: f47ca0a3f9654ed4b7653fd946b2d9b6 +#: ../../plugins.rst:150 ../../plugins.rst:152 ../../plugins.rst:153 +#: ../../plugins.rst:156 37277bd83e254f47b6df91ba6790f79e +#: 9d3b745b96114ff7931cbcc372901c3e b89f87d254984ec59e25045227c708bf +#: d38f0e2931b84b82adcc5aca5a4c2233 msgid "article_generator" msgstr "article_generator" -#: ../../plugins.rst:148 94e2a57c5b074d068f051d5de850060c +#: ../../plugins.rst:150 7a45243569e84c1e9d5d49b5c1a7b86a msgid "" "invoked before a article is read in ArticlesGenerator.generate_context; " "use if code needs to do something before every article is parsed" -msgstr "" -"在ArticlesGenerator.generate_context读取文章之前调用;若代码需要在解析每篇文章前" -"执行某些操作,就可以使用此信号。" +msgstr "在ArticlesGenerator.generate_context读取文章之前调用;若代码需要在解析每篇文章前执行某些操作,就可以使用此信号。" -#: ../../plugins.rst:150 c58f32123f234e6cafa42aa4ede5bf73 +#: ../../plugins.rst:152 87c8e4ad4a104cb889172025f1b0229b msgid "article_generator_init" msgstr "article_generator_init" -#: ../../plugins.rst:150 10d3585dc8f94d978643a9c2dc9219a9 +#: ../../plugins.rst:152 46c1e5fbb90a4668afda3d66e4520689 msgid "invoked in the ArticlesGenerator.__init__" msgstr "在ArticlesGenerator.__init__中调用" -#: ../../plugins.rst:151 93ec423e266b4ba9b941a5826e290fec +#: ../../plugins.rst:153 de4b631d41e946c485ebb813e3dd6b62 msgid "article_generator_pretaxonomy" msgstr "article_generator_pretaxonomy" -#: ../../plugins.rst:151 27290d55819e4bfabe1624059956258f +#: ../../plugins.rst:153 697a45a251fe4188b1f32cec631427b9 msgid "" "invoked before categories and tags lists are created useful when e.g. " "modifying the list of articles to be generated so that removed articles " "are not leaked in categories or tags" -msgstr "" -"在创建类别和标签列表之前调用。例如,当需要变更要生成的文章列表时可以使用," -"如此可以避免一些已移除文章在分类或标签列表中泄露。" +msgstr "在创建类别和标签列表之前调用。例如,当需要变更要生成的文章列表时可以使用,如此可以避免一些已移除文章在分类或标签列表中泄露。" -#: ../../plugins.rst:154 ../../plugins.rst:202 12c99acda2ac45debe4fc574a246fc63 -#: f3bfb220e59d473bb27601c16f5a1625 +#: ../../plugins.rst:156 ../../plugins.rst:204 051dcac75cbf4f5ea3a665e6da642324 +#: 2360e283fdd142ab8d65792581522e72 msgid "article_generator_finalized" msgstr "article_generator_finalized" -#: ../../plugins.rst:154 4cb8ed5b4701426b8e1707c6c6b0d48f +#: ../../plugins.rst:156 0c3c808d5b7044018f8566ccc6dd3010 msgid "invoked at the end of ArticlesGenerator.generate_context" msgstr "在ArticlesGenerator.generate_context的最后调用" -#: ../../plugins.rst:155 c19a632018d44ad2b72d5cf6b7cc9c14 +#: ../../plugins.rst:157 60d78048da4843a7a0307218c078d151 msgid "article_generator_write_article" msgstr "article_generator_write_article" -#: ../../plugins.rst:155 9da20e77d40b45e292ae994fb0fbe97c +#: ../../plugins.rst:157 2ac0d0e7306a4d5086bb2e8b7b17ffb1 msgid "article_generator, content" msgstr "article_generator, content" -#: ../../plugins.rst:155 a2d5bc3f72b64e47bcaccff3bf27dec2 +#: ../../plugins.rst:157 565551e010964925b10a3b5734913119 msgid "invoked before writing each article, the article is passed as content" msgstr "在写入每篇文章前调用,文章以内容的形式作为参数传入。" -#: ../../plugins.rst:156 0db965f5b99f49e48fc1db531c139f13 +#: ../../plugins.rst:158 fd7918c3200f4714b028c8d0a200df98 msgid "article_writer_finalized" msgstr "article_writer_finalized" -#: ../../plugins.rst:156 c6af98478be14eb283bb95e7b6a3118c +#: ../../plugins.rst:158 e54633543dbf4e5fb2dd4c1bfc09b1c1 msgid "article_generator, writer" msgstr "article_generator, writer" -#: ../../plugins.rst:156 c48e1152864c4249886f3c7ed4ece85b +#: ../../plugins.rst:158 965e61a0fd6347faa2d7224a50a98b76 msgid "" "invoked after all articles and related pages have been written, but " "before the article generator is closed." -msgstr "" -"在所有文章及相关联页面写入完成后,在文章generator关闭前调用。" +msgstr "在所有文章及相关联页面写入完成后,在文章generator关闭前调用。" -#: ../../plugins.rst:158 f6af27fc844d43779d581cb4383b97ed +#: ../../plugins.rst:160 30df01c5c11a4ed58b006d78b007c68d msgid "get_generators" msgstr "get_generators" -#: ../../plugins.rst:158 b41e27f19c47478a8ece4f43a685f6be +#: ../../plugins.rst:160 758447f5e55a4738a14486b0e962034d msgid "" "invoked in Pelican.get_generator_classes, can return a Generator, or " "several generators in a tuple or in a list." -msgstr "" -"在Pelican.get_generator_classes中调用,可以返回一个Generator,也可以以一个" -"元组或列表的形式返回多个generator。" +msgstr "在Pelican.get_generator_classes中调用,可以返回一个Generator,也可以以一个元组或列表的形式返回多个generator。" -#: ../../plugins.rst:161 f23075094c4f46958de609a44850eb6d +#: ../../plugins.rst:163 730e948388a24435be216830e0af5be6 msgid "get_writer" msgstr "get_writer" -#: ../../plugins.rst:161 365671a73e17434f90973ee8e632fa32 +#: ../../plugins.rst:163 df9f9fef24984c4bad07b8834e79352f msgid "invoked in Pelican.get_writer, can return a custom Writer." msgstr "在Pelican.get_writer前调用,可以返回一个自定义Writer。" -#: ../../plugins.rst:163 ../../plugins.rst:204 299eef53e530489a9e7366042919059f -#: 917cc78965d84285bc832cecf181ce55 +#: ../../plugins.rst:165 ../../plugins.rst:206 1c172b26e92543d2be488a88cceaf576 +#: 252231854c504621b28243dfba9d88ab msgid "page_generator_context" msgstr "page_generator_context" -#: ../../plugins.rst:163 26f64e1dbe854ca287aa0f59b269477c +#: ../../plugins.rst:165 a830e240c6564552ba4952bc657120a9 msgid "page_generator, metadata" msgstr "page_generator, metadata" -#: ../../plugins.rst:164 ../../plugins.rst:205 c2ec4e60dda142569cdcfe5a311b21a5 -#: fcd417f63054406ea7869a2a945dc819 +#: ../../plugins.rst:166 ../../plugins.rst:207 09add2ea39344ad8936296a07cfd8e82 +#: 0fc3cf365d9d418b8225e8f1f5da76d0 msgid "page_generator_preread" msgstr "page_generator_preread" -#: ../../plugins.rst:164 ../../plugins.rst:166 ../../plugins.rst:167 -#: 89c2d7a279604926a290c2665fe8082a 98ab9a5bc2804442a217233f4ab8a003 -#: fca779509f1742e99e3d10a6602561c9 +#: ../../plugins.rst:166 ../../plugins.rst:168 ../../plugins.rst:169 +#: 3c31cfe2f4744cd987f1638a4b82e5de a80ec8c388cb477abbcfc4f558d34df7 +#: d485c4f9c2c443748234827727cc887e msgid "page_generator" msgstr "page_generator" -#: ../../plugins.rst:164 295fe11e61ba4f80a145ce06a1ffc777 +#: ../../plugins.rst:166 4d8b96aa6ebf47d885cd978c336679ff msgid "" "invoked before a page is read in PageGenerator.generate_context; use if " "code needs to do something before every page is parsed." -msgstr "" -"在PageGenerator.generate_context读取页面前调用,若代码需要在解析每个页面前" -"执行某些操作,就可以使用此信号。" +msgstr "在PageGenerator.generate_context读取页面前调用,若代码需要在解析每个页面前执行某些操作,就可以使用此信号。" -#: ../../plugins.rst:166 ../../plugins.rst:207 4f2b1db9b6054af2b0fd0545082bcafd -#: db8ee3e356d84758b427d9f29d034000 +#: ../../plugins.rst:168 ../../plugins.rst:209 06adf06d2b204100b9f80850b84bdff0 +#: c0988434a401410e8cf6b4528e6d2870 msgid "page_generator_init" msgstr "page_generator_init" -#: ../../plugins.rst:166 1d4e2e940e0f4dd5a151519aea710454 +#: ../../plugins.rst:168 d359da10912949fa999dc3ad5215be66 msgid "invoked in the PagesGenerator.__init__" msgstr "在PagesGenerator.__init__中调用" -#: ../../plugins.rst:167 ../../plugins.rst:206 319e921c48474a43bbdac4bf43a688f2 -#: 5e9b33a48c51417fb5211824b0ad008d +#: ../../plugins.rst:169 ../../plugins.rst:208 0994b38b87704caea04ef0671a7b1c67 +#: a97cf5f236a64959aa09838dbe03dfdc msgid "page_generator_finalized" msgstr "page_generator_finalized" -#: ../../plugins.rst:167 019fa3fddf2e4725b978326f221c80bd +#: ../../plugins.rst:169 4cfdfe952daf4e3ea5ea1c8b2cf7a664 msgid "invoked at the end of PagesGenerator.generate_context" msgstr "在PagesGenerator.generate_context的最后调用" -#: ../../plugins.rst:168 0f77c3c609594768a0aaed6529260b97 +#: ../../plugins.rst:170 7e2504584a1b4fa4ae88c5002bcbb26f msgid "page_generator_write_page" msgstr "page_generator_write_page" -#: ../../plugins.rst:168 0ca5fb200a254cff8529cb5d95e8e26e +#: ../../plugins.rst:170 ea204a5fe703472ea5afea283135b94d msgid "page_generator, content" msgstr "page_generator, content" -#: ../../plugins.rst:168 164d45dac5ab4df8abd898c1466e186d +#: ../../plugins.rst:170 22dd198fe6dc498f944e2c0e2c595c6c msgid "invoked before writing each page, the page is passed as content" msgstr "在写入每个页面前调用,页面以内容形式作为参数传入" -#: ../../plugins.rst:169 4780473ba6ae47998f891232f122b34a +#: ../../plugins.rst:171 84d5def2c4fc4a2489d2b4fc1fa445df msgid "page_writer_finalized" msgstr "page_writer_finalized" -#: ../../plugins.rst:169 6c516a5ae777406ca9ed7bf27b7124c7 +#: ../../plugins.rst:171 c55d65276a4e49c58c34d12cc062c90d msgid "page_generator, writer" msgstr "page_generator, writer" -#: ../../plugins.rst:169 e8978d0fb878427cbf686608c593aa67 +#: ../../plugins.rst:171 b2a3d1c7c2864a08829833bc16b3223e msgid "" "invoked after all pages have been written, but before the page generator " "is closed." msgstr "调用于所有页面写入完成后,在页面generator关闭前。" -#: ../../plugins.rst:171 ../../plugins.rst:208 47bf9969c38b4fef9e15e9d7ea67630e -#: d9a3d5d939d4499b9320ea15dbd3f26e +#: ../../plugins.rst:173 ../../plugins.rst:210 097c5b3dc1d34a5eb7c1b4ae67179b3e +#: a420152f887e4977bdd26a5fa7230915 msgid "static_generator_context" msgstr "static_generator_context" -#: ../../plugins.rst:171 47064012c4e447f5a1f087a7af420f8f +#: ../../plugins.rst:173 1bbacfe960644e4a902b9c866e3fffce msgid "static_generator, metadata" msgstr "static_generator, metadata" -#: ../../plugins.rst:172 ../../plugins.rst:209 7050e1889934465a8837ba65fa249118 -#: f45c31c591fd450badd89a7f87c6f991 +#: ../../plugins.rst:174 ../../plugins.rst:211 c1242bcf76fc40568f67a2ce4e70c0bb +#: f407aa94870645c891bb349edc3ae9a4 msgid "static_generator_preread" msgstr "static_generator_preread" -#: ../../plugins.rst:172 ../../plugins.rst:175 ../../plugins.rst:176 -#: 1e99fc14855a4a2e8d1f4758e12792d9 45cdf5c2a8d049889b4315d1ea78f462 -#: b7ae37b94f2f44feb24ac32b0cdfa447 +#: ../../plugins.rst:174 ../../plugins.rst:177 ../../plugins.rst:178 +#: 36f5be5c982b42d097c0465f542e490f cf0ebefd743246dd9db1b37a8c6a43a8 +#: d5cd54887d904bcca02b0df4f22580e9 msgid "static_generator" msgstr "static_generator" -#: ../../plugins.rst:172 431017db31bf439f8d3fb5e16b020376 +#: ../../plugins.rst:174 1b2fbadf156644429e66ad2e64d26658 msgid "" "invoked before a static file is read in StaticGenerator.generate_context;" " use if code needs to do something before every static file is added to " "the staticfiles list." -msgstr "" -"在StaticGenerator.generate_context读取静态文件前调用,若代码需要在每个静态文件" -"加入静态文件列表前进行一些修改,就可以使用此信号。" +msgstr "在StaticGenerator.generate_context读取静态文件前调用,若代码需要在每个静态文件加入静态文件列表前进行一些修改,就可以使用此信号。" -#: ../../plugins.rst:175 2a380c26f2984e659ec36248a543a4c3 +#: ../../plugins.rst:177 654377fe53434f77b3ba294b5689d1d4 msgid "static_generator_init" msgstr "static_generator_init" -#: ../../plugins.rst:175 832447303775460c83743d831aa58290 +#: ../../plugins.rst:177 e9b3cbbde7a6443a81d025d1a4fe6145 msgid "invoked in the StaticGenerator.__init__" msgstr "在StaticGenerator.__init__中调用" -#: ../../plugins.rst:176 b01307445d54485a9036fb0f9619ff78 +#: ../../plugins.rst:178 202be739e43444f48f122d3e5f657a45 msgid "static_generator_finalized" msgstr "static_generator_finalized" -#: ../../plugins.rst:176 2f7e7e25668b44fc824bb39270c3de96 +#: ../../plugins.rst:178 06080672fd614d39a79aa6d3a783087f msgid "invoked at the end of StaticGenerator.generate_context" msgstr "在StaticGenerator.generate_context的最后调用" -#: ../../plugins.rst:177 2a34785767ee416dbe41a6aa1f7e4ab1 +#: ../../plugins.rst:179 ce174fb4533143518c13b16ab6dbe4c8 msgid "content_object_init" msgstr "content_object_init" -#: ../../plugins.rst:177 c41d8a8653a94d648b573b5c13db3954 +#: ../../plugins.rst:179 5089a38bad1447cab62f350df8e76f31 msgid "content_object" msgstr "content_object" -#: ../../plugins.rst:177 379b6d76d2f14d05bf1502d2c55b125f +#: ../../plugins.rst:179 d105f652be424f5cad8bfaf7be69ec4b msgid "invoked at the end of Content.__init__" msgstr "在Content.__init__的最后调用" -#: ../../plugins.rst:178 10761aa6a1d54ee0a28e562bdacffebf +#: ../../plugins.rst:180 dbda8a11bca744a4ba5fc51d044f1d6e msgid "content_written" msgstr "content_written" -#: ../../plugins.rst:178 001ad90e09ab4b21a702b2ed9771a156 +#: ../../plugins.rst:180 c8ba95ebcc2e4c79ae79717a730fe504 msgid "path, context" msgstr "path, context" -#: ../../plugins.rst:178 69b05b02e1564fe4b48dbd2926fdaec3 +#: ../../plugins.rst:180 6d9caed8fa24400a86f8ede1c3ecb260 msgid "invoked each time a content file is written." msgstr "每一次内容文件写入后调用。" -#: ../../plugins.rst:179 30938518f54f46028c8fd03808471be7 +#: ../../plugins.rst:181 73a4265b050c4b32be186bb2cec59f30 msgid "feed_generated" msgstr "feed_generated" -#: ../../plugins.rst:179 e29bf37e7114454099baa21955b7fce0 +#: ../../plugins.rst:181 78fa3603986f417286f2e7440f5aff57 msgid "context, feed" msgstr "context, feed" -#: ../../plugins.rst:179 366ba164593242309dab922c36667dc3 +#: ../../plugins.rst:181 13dcd9e5fb2f408db72b87b88877596b msgid "" "invoked each time a feed gets generated. Can be used to modify a feed " "object before it gets written." msgstr "每个feed生成前调用。可以用于在feed写入前修改之。" -#: ../../plugins.rst:181 0b6d7fc85d374b9c82c60d4a0df69fcd +#: ../../plugins.rst:183 3a959768d5704e459940cbfcf8e1459c msgid "feed_written" msgstr "feed_written" -#: ../../plugins.rst:181 d3fdc3a669e9418b9f6e738c549fa151 +#: ../../plugins.rst:183 86844bee049a445e87db283bdf325338 msgid "path, context, feed" msgstr "path, context, feed" -#: ../../plugins.rst:181 3da952e464034f8c8491caa94f0aec2d +#: ../../plugins.rst:183 e79185da7cb54bf5aa59a46846222391 msgid "invoked each time a feed file is written." msgstr "每一个feed文件写入后调用。" -#: ../../plugins.rst:186 24bf768827184a8a9c2ad9d23d3549e4 +#: ../../plugins.rst:188 0fe0539bad1c4fcbbebbdaa98d328ee9 msgid "" "Avoid ``content_object_init`` signal if you intend to read ``summary`` or" " ``content`` properties of the content object. That combination can " @@ -567,145 +538,132 @@ msgid "" "properties instead, or, alternatively, run your plugin at a later stage " "(e.g. ``all_generators_finalized``)." msgstr "" -"请避免使用 ``content_object_init`` 信号读取content对象的 ``summary`` 或 " -"``content`` 属性,这可能导致在 :ref:`ref-linking-to-internal-content` 时无法" -"解析链接(请参阅 `pelican-plugins bug #314`_ )。请改用 ``_summary`` 和 " -"``_content`` 属性,或者就在后续阶段再运行插件(例如 ``all_generators_finalized`` 时)。" +"请避免使用 ``content_object_init`` 信号读取content对象的 ``summary`` 或 ``content`` " +"属性,这可能导致在 :ref:`ref-linking-to-internal-content` 时无法解析链接(请参阅 `pelican-" +"plugins bug #314`_ )。请改用 ``_summary`` 和 ``_content`` 属性,或者就在后续阶段再运行插件(例如 " +"``all_generators_finalized`` 时)。" -#: ../../plugins.rst:195 9222300d10c74a9eb27fc229488e63a4 +#: ../../plugins.rst:197 77ca681d0d7a4a9ea42f7eebf683f024 msgid "" "After Pelican 3.2, signal names were standardized. Older plugins may " "need to be updated to use the new names:" -msgstr "" -"Pelican3.2之后,信号名都进行了标准化,较老的插件可能需要进行更新:" +msgstr "Pelican3.2之后,信号名都进行了标准化,较老的插件可能需要进行更新:" -#: ../../plugins.rst:199 2ba779a696064672965e17c70f70d927 +#: ../../plugins.rst:201 c83f9215c5964ba49cb5ed849c777495 msgid "Old name" msgstr "旧名称" -#: ../../plugins.rst:199 d21e933be9064983aa2cfaeca4f00cb9 +#: ../../plugins.rst:201 167435de345b443fa51c27b355121e14 msgid "New name" msgstr "新名称" -#: ../../plugins.rst:201 805ac7c62fc94113a3481890793f5417 +#: ../../plugins.rst:203 bcdf136cbb2c4dedbd90f6e56f584c6b msgid "article_generate_context" msgstr "article_generate_context" -#: ../../plugins.rst:202 d6f1a03ae49349b091045c8079b80d44 +#: ../../plugins.rst:204 60fe5b91f4a54f0997f93d927b0d81c4 msgid "article_generate_finalized" msgstr "article_generate_finalized" -#: ../../plugins.rst:203 c967c8322a744c2c970beb6b98b90743 +#: ../../plugins.rst:205 31252537627f4042b7f7b4e0a4a33aeb msgid "article_generate_preread" msgstr "article_generate_preread" -#: ../../plugins.rst:204 71adeb83fba74317ad0fac5784612a3d +#: ../../plugins.rst:206 719da4844a0a4b6fbb2cf2d9b7e51deb msgid "pages_generate_context" msgstr "pages_generate_context" -#: ../../plugins.rst:205 d2297a5ec351411e8a66a74d8168caa0 +#: ../../plugins.rst:207 f7c865fd6824473aad024fc606235b48 msgid "pages_generate_preread" msgstr "pages_generate_preread" -#: ../../plugins.rst:206 fb572935b7f445d298ff2c9c89c59c4e +#: ../../plugins.rst:208 74c47460bacf4fd68f2536580efb1480 msgid "pages_generator_finalized" msgstr "pages_generator_finalized" -#: ../../plugins.rst:207 0bb615d8a6f643a3a1a9abac2ec4f712 +#: ../../plugins.rst:209 b403e7f978c24d989d99587579f31d3c msgid "pages_generator_init" msgstr "pages_generator_init" -#: ../../plugins.rst:208 beddb5f81a62458b87c0703355a7b5a4 +#: ../../plugins.rst:210 94e5184530c94cc48d00fd819fffd649 msgid "static_generate_context" msgstr "static_generate_context" -#: ../../plugins.rst:209 8fe8895dcb464e11bb01657e975f1352 +#: ../../plugins.rst:211 00ca2c730ad840f584d3f9dd30daf0cd msgid "static_generate_preread" msgstr "static_generate_preread" -#: ../../plugins.rst:213 44b14caddfd245c18cacd755fd0023e9 +#: ../../plugins.rst:215 f8044e028ccd4d64954e24375a739cd2 msgid "Recipes" msgstr "具体使用方法举例" -#: ../../plugins.rst:215 c24473f41cc84d028c99fa56af636037 +#: ../../plugins.rst:217 0c441d12047240199025f2d3ac954167 msgid "" "We eventually realised some of the recipes to create plugins would be " "best shared in the documentation somewhere, so here they are!" -msgstr "" -"下面分享了一些创建插件的具体方法,请享用!" +msgstr "下面分享了一些创建插件的具体方法,请享用!" -#: ../../plugins.rst:219 96de26e8150e4339b3461d2dcc478cf3 +#: ../../plugins.rst:221 bb96f2da7b3340cb9ed56ee1ad59796b msgid "How to create a new reader" msgstr "如何创建一个新的reader" -#: ../../plugins.rst:221 3f26c1183b814401b333bbd8528675d9 +#: ../../plugins.rst:223 49dbbbd2c5ca4798a1b9d67b48630d36 msgid "" "One thing you might want is to add support for your very own input " "format. While it might make sense to add this feature in Pelican core, we" " wisely chose to avoid this situation and instead have the different " "readers defined via plugins." -msgstr "" -"你可能需要添加对输入文件格式的特殊支持。这似乎可以作为Pelican核心的一个功能," -"但我们选择避免将此功能放在核心中,而是通过插件实现不同的reader。" +msgstr "你可能需要添加对输入文件格式的特殊支持。这似乎可以作为Pelican核心的一个功能,但我们选择避免将此功能放在核心中,而是通过插件实现不同的reader。" -#: ../../plugins.rst:226 8167dcbaa6864da3b2262a2a99e08a15 +#: ../../plugins.rst:228 af8936c711204a0aa7c85835124065c5 msgid "" "The rationale behind this choice is mainly that plugins are really easy " "to write and don't slow down Pelican itself when they're not active." -msgstr "" -"做出这个决定主要是因为实现这样的格式支持插件非常容易,而且这样在不需要此功能时" -"也不会影响Pelican自身的速度。" +msgstr "做出这个决定主要是因为实现这样的格式支持插件非常容易,而且这样在不需要此功能时也不会影响Pelican自身的速度。" -#: ../../plugins.rst:229 26c8185062964b52921860cfa2ce508c +#: ../../plugins.rst:231 11dac8bd71994c18a289086ec95a0273 msgid "No more talking — here is an example::" msgstr "多说无益,下面是一个具体例子:" -#: ../../plugins.rst:265 ea51efb1925f45e79c87d6e5488cbbcd +#: ../../plugins.rst:267 f6bf903ae8de4ac183ecea699de568dc msgid "Adding a new generator" msgstr "添加新的generator" -#: ../../plugins.rst:267 9e04f17a5fa1488d82d3629edf8cdf3f +#: ../../plugins.rst:269 50d39b45550446a493a6d5d6eb971103 msgid "" "Adding a new generator is also really easy. You might want to have a look" " at :doc:`internals` for more information on how to create your own " "generator." -msgstr "" -"添加一个generator也非常简单,你可能会想要看一看 :doc:`internals` ,其中有关于" -"如何创建generator的内容。" +msgstr "添加一个generator也非常简单,你可能会想要看一看 :doc:`internals` ,其中有关于如何创建generator的内容。" -#: ../../plugins.rst:281 f4c92958e88a41a7a0deee697b48fc58 +#: ../../plugins.rst:283 1b4bc8c2b02645dd81b06ffdbd759c36 msgid "Adding a new writer" msgstr "添加新的writer" -#: ../../plugins.rst:283 188bf0e8a68446458ae525c67cfe098c +#: ../../plugins.rst:285 ac526121b895429d8412605bca594684 msgid "" "Adding a writer will allow you to output additional file formats to disk," " or change how the existing formats are written to disk. Note that only " "one writer will be active at a time, so be sure to either subclass the " "built-in Writer, or completely re-implement it." -msgstr "" -"添加writer可以让你将其他文件格式输出到磁盘,或者可以改变现有格式写入磁盘的方式。" -"请注意,一次只能启用一个writer,因此请确保继承了内置的Writer,并且完全重新实现之。" +msgstr "添加writer可以让你将其他文件格式输出到磁盘,或者可以改变现有格式写入磁盘的方式。请注意,一次只能启用一个writer,因此请确保继承了内置的Writer,并且完全重新实现之。" -#: ../../plugins.rst:288 edb5d1fa15bc48859c2912ba7c344286 +#: ../../plugins.rst:290 4335016710cd417ca9b8068cb7a45d51 msgid "Here is a basic example of how to set up your own writer::" msgstr "下面是启用你的自定义writer的一个基本例子:" -#: ../../plugins.rst:308 0df8f3318357472cbd72e17e1b5085b2 +#: ../../plugins.rst:310 c65b371d4bf740c49dfe190407c9af69 msgid "Using Plugins to Inject Content" msgstr "使用插件添加内容" -#: ../../plugins.rst:310 d0161dbe86c44111a6295259ec8cab54 +#: ../../plugins.rst:312 9f180f86d09f43d7aff4607bb7deb6f1 msgid "" "You can programmatically inject articles or pages using plugins. This can" " be useful if you plan to fetch articles from an API, for example." -msgstr "" -"可以通过插件以可编程的方式添加文章或页面。如果你打算从某些API获取文章,这就会很有用。" +msgstr "可以通过插件以可编程的方式添加文章或页面。如果你打算从某些API获取文章,这就会很有用。" -#: ../../plugins.rst:313 5d5c41dbeb7243d4b497752771bc7858 +#: ../../plugins.rst:315 a65dd6bb4d0e48438dcf6d545bfaa053 msgid "" "Following is a simple example of how one can build a plugin that injects " "a custom article, using the ``article_generator_pretaxonomy`` signal::" -msgstr "" -"下面是一个简单的示例,说明了如何使用 ``article_generator_pretaxonomy`` " -"信号构建一个添加自定义文章的插件:" +msgstr "下面是一个简单的示例,说明了如何使用 ``article_generator_pretaxonomy`` 信号构建一个添加自定义文章的插件:" diff --git a/docs/locale/zh_CN/LC_MESSAGES/settings.po b/docs/locale/zh_CN/LC_MESSAGES/settings.po index 36c7209e..ef07e611 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/settings.po +++ b/docs/locale/zh_CN/LC_MESSAGES/settings.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PELICAN 4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-27 16:18+0800\n" +"POT-Creation-Date: 2025-07-13 11:46+0800\n" "PO-Revision-Date: 2024-06-26 19:00+0800\n" "Last-Translator: GeorgeHu \n" "Language: zh_CN\n" @@ -16,25 +16,25 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../settings.rst:2 53029e75034c46d4b54eae3cd205fe2e +#: ../../settings.rst:2 33f20b9899bd4f78a4f3eb7d250dfcc9 msgid "Settings" msgstr "设置" -#: ../../settings.rst:4 dd0b07017437474b99116d1c1927af95 +#: ../../settings.rst:4 3c3d83a6b67b42e5bb4e2519e403949d msgid "" "Pelican is configurable thanks to a settings file you can pass to the " "command line::" msgstr "可以通过命令行给Pelican传入配置文件:" -#: ../../settings.rst:9 df860abc6301440b89366f2898aabd6f +#: ../../settings.rst:9 4137dd63d4b241cfbf37d291e974734a msgid "" "If you used the ``pelican-quickstart`` command, your primary settings " "file will be named ``pelicanconf.py`` by default." msgstr "如果使用的是 ``pelican-quickstart`` 命令,默认的主配置文件时 ``pelicanconf.py`` 。" -#: ../../settings.rst:12 a7b47b4379934afcb2bfd9f5425c4a6c +#: ../../settings.rst:12 509edfb7c1484707a192b4537faaf3b3 msgid "" "You can also specify settings via ``-e`` / ``--extra-settings`` option " "flags. It will override default settings as well as any defined within " @@ -43,13 +43,13 @@ msgstr "" "通过 ``-e`` / ``--extra-settings`` " "选项,可以直接指定一些配置来覆盖配置文件中的设置。需要注意的是,选项值必须时JSON格式的:" -#: ../../settings.rst:18 16437361edd74b8fb84dcde3da35baa3 +#: ../../settings.rst:18 2b7e043877334b32996b426ea7f8e1f0 msgid "" "Environment variables can also be used here but must be escaped " "appropriately::" msgstr "可以在命令中使用环境变量,但是需要正确地进行转义:" -#: ../../settings.rst:24 71a1194ecd1b4a519877818ad172a44f +#: ../../settings.rst:24 e9ac322feb4a4dbd9e07b73a1c49af72 msgid "" "When experimenting with different settings (especially the metadata ones)" " caching may interfere and the changes may not be visible. In such cases " @@ -59,18 +59,18 @@ msgstr "" "在尝试不同的设置(特别是尝试元数据)时,受缓存的干扰,对设置的更改可能不会生效。在这种情况下,指定 ``LOAD_CONTENT_CACHE = " "False`` 设置或 ``--ignore-cache`` 命令行选项即可。" -#: ../../settings.rst:29 3362ac7659744fab9649c7d4edec7456 +#: ../../settings.rst:29 f8b7aff6141b48b3a03f726f769c9603 msgid "" "Settings are configured in the form of a Python module (a file). There is" " an `example settings file " -"`_" +"`_" " available for reference." msgstr "" "设置以Python模块(一个文件)的形式。 `示例配置文件 " -"`_" +"`_" " 可供您参考。" -#: ../../settings.rst:34 fd01256fff0d40319c6bd55c3e3d1f8d +#: ../../settings.rst:34 3ed2687613ef480bb61b8232c47d4af8 msgid "" "To see a list of current settings in your environment, including both " "default and any customized values, run the following command (append one " @@ -78,7 +78,7 @@ msgid "" "settings only)::" msgstr "要查看当前环境下的配置,同时查看默认的或是自定义的配置值,执行下面的命令(在后面以参数的形式添加一个或多个指定的配置名称,可以单独查看指定的配置项):" -#: ../../settings.rst:40 fd4f9ceda04c4b119adf0e6e3226842d +#: ../../settings.rst:40 5d6b03822d2e4f35890b7a651a88987c msgid "" "All the setting identifiers must be set in all-caps, otherwise they will " "not be processed. Setting values that are numbers (5, 20, etc.), booleans" @@ -89,7 +89,7 @@ msgstr "" "所有设置的键(设置中的变量名)都必须是大写的,否则会被无视。配置值可能是数值(5、20等)、布尔值(True、False、None等)、字典或者元组。这些值应该以Python值的形式存在," " *不* 需要用引号引起来。除此之外的其他配置值(例如字符串) *必须* 用引号引起来。" -#: ../../settings.rst:46 aece462c39674aa68651567ca58ac940 +#: ../../settings.rst:46 258fb84ebdee4dfe9373c7b7c2aab94d msgid "" "Unless otherwise specified, settings that refer to paths can be either " "absolute or relative to the configuration file. The settings you define " @@ -97,135 +97,169 @@ msgid "" "you to use your settings to add site-wide content." msgstr "除非另有指定,设置中指定的路径可以是绝对路径,也可以是相对于配置文件的相对路径。设置中配置的东西会传递到网站模板中,这使得可以在配置文件中添加在整个站点中都能使用的内容。" -#: ../../settings.rst:51 b3de78704bd34981bce53c625e7181ce +#: ../../settings.rst:51 938a61723b6b4361b440b165bca533b7 msgid "Here is a list of settings for Pelican:" msgstr "下面是Pelican设置项的列表:" -#: ../../settings.rst:55 4a3728c3d465496b903ad3bafef32da9 +#: ../../settings.rst:55 8ea36bbc1f084d1d8e29dc0bd2f8c922 msgid "Basic settings" msgstr "基础设置" -#: ../../settings.rst:59 74ac50f3d3d847148d37db0c2f4dcb1a +#: ../../settings.rst:59 5de910e868b14ee791a313a2d31c16b2 msgid "" "When you don't specify a category in your post metadata, set this setting" " to ``True``, and organize your articles in subfolders, the subfolder " "will become the category of your post. If set to ``False``, " -"``DEFAULT_CATEGORY`` will be used as a fallback." +"``DEFAULT_CATEGORY`` will be used as a fallback. The default is ``True``." msgstr "" "当您没有在推文中指定元数据categroy时,若本项设置设为了 ``True`` " ",并且文章也是通过子文件夹进行分类管理的,那么这些子文件夹的名称就会作为发布内容的分类。若本项设为了 ``False`` ,会使用配置项 " -"``DEFAULT_CATEGORY`` 作为默认分类。" +"``DEFAULT_CATEGORY`` 作为默认分类。本项设置默认为 ``True`` 。" -#: ../../settings.rst:66 6fd89e4093cf42f7b7a15d12b806ae39 -msgid "The default category to fall back on." -msgstr "默认的分类" +#: ../../settings.rst:66 3675c7a1107744f0818c0473c4f0643b +msgid "The default category to fall back on. The default is ``'misc'``." +msgstr "默认的分类。本项设置默认为 ``'misc'`` 。" -#: ../../settings.rst:70 dce02cdf67434cc385bf4c1a0ab92931 +#: ../../settings.rst:70 f4ee51775b44419586a76dbf79d887e5 msgid "" "Whether to display pages on the menu of the template. Templates may or " -"may not honor this setting." -msgstr "指定是否将“页面”显示在模板的菜单中。模板可能不会遵循此项。" +"may not honor this setting. The default is ``True``." +msgstr "指定是否将“页面”显示在模板的菜单中。模板可能不会遵循此项。本项设置默认为 ``True`` 。" -#: ../../settings.rst:75 830ab9b9933b488193d4b8afd85e6a31 +#: ../../settings.rst:75 b4f761d35ffb49e9bf520bc1206f7868 msgid "" "Whether to display categories on the menu of the template. Templates may " -"or not honor this setting." -msgstr "指定是否将“分类”显示在模板的菜单中。模板可能不会遵循此项。" +"or not honor this setting. The default is ``True``." +msgstr "指定是否将“分类”显示在模板的菜单中。模板可能不会遵循此项。本项设置默认为 ``True`` 。" -#: ../../settings.rst:80 01ef16e7f3d7423b96ee3b57b0173ebc +#: ../../settings.rst:80 f3b1f471909b4af29de908310a75eaf5 +#, python-brace-format msgid "" "Extra configuration settings for the docutils publisher (applicable only " "to reStructuredText). See `Docutils Configuration`_ settings for more " -"details." +"details. The default is ``{}`` with no extra configuration settings." msgstr "docutils的额外配置项(只针对reStructuredText有效)。在 `Docutils 配置`_ 设置中查看更多信息。" +"默认为 ``{}`` ,即不做任何额外配置。" -#: ../../settings.rst:85 f7a9532b08ac43b4a61bd175ec91d66b +#: ../../settings.rst:86 841018ef5c0c410c92bc7780acf25291 msgid "" "Delete the output directory, and **all** of its contents, before " "generating new files. This can be useful in preventing older, unnecessary" " files from persisting in your output. However, **this is a destructive " -"setting and should be handled with extreme care.**" +"setting and should be handled with extreme care.** The default is " +"``False``." msgstr "" -"在生成新文件前删除输出目录和其中 **所有** 的内容。这可以避免一些老的无用的文件一直存在于输出目录中。但是, " -"**此项配置是具有破坏性的,请谨慎使用** 。" +"在生成新文件前删除输出目录及其中的 **所有** 内容。这可以避免一些老的无用的文件一直存在于输出目录中。但是, " +"**此项配置是具有破坏性的,请谨慎使用** 。本项设置默认为 ``False`` 。" -#: ../../settings.rst:92 ff8c5e50c9ac40bb85e8384fcad6617e +#: ../../settings.rst:93 b9b726bedf79446e8f1721edee1b2eb8 msgid "" "A list of filenames that should be retained and not deleted from the " "output directory. One use case would be the preservation of version " "control data." msgstr "一个文件名的列表,包含了应该保留,不从输出目录中删除的文件。可以用于版本控制数据的保留。" -#: ../../settings.rst:95 ../../settings.rst:110 ../../settings.rst:136 -#: 7ee367e15d2549a5889dee6f67f9d5bf 8befd4f04dcf4f638e6a50972cf62f0e -#: c5a4d3b37cd94412a6f37c8ad0dae8e1 +#: ../../settings.rst:96 ../../settings.rst:114 ../../settings.rst:142 +#: 39c5fe892d10473ea765dfd16aa70b29 bcb1712b6ed142d6b8db0d06f30dc902 msgid "Example::" msgstr "例子:" -#: ../../settings.rst:101 b188b54ab9bf46898663261c6b0bdbf9 +#: ../../settings.rst:100 ../../settings.rst:146 +#: f0fd9392aa0544248ae3ecfa505cbd50 +msgid "The default is ``[]``." +msgstr "默认为 ``[]`` 。" + +#: ../../settings.rst:104 47a64611cf2f4e6b85543040b8221d3a +#, python-brace-format msgid "" "A dictionary of custom Jinja2 environment variables you want to use. This" " also includes a list of extensions you may want to include. See `Jinja " -"Environment documentation`_." -msgstr "一个字典,用于您想要用的自定义的Jinja2环境变量。这其中也包含了要使用的扩展列表。详见 `Jinja环境文档`_ " +"Environment documentation`_. The default is ``{'extensions': [], " +"'trim_blocks': True, 'lstrip_blocks': True}``." +msgstr "一个字典,用于配置自定义Jinja2环境变量。这其中也包含了要使用的扩展列表。详见 `Jinja环境文档`_ 。" +"本项设置默认为 ``{'extensions': [], 'trim_blocks': True, 'lstrip_blocks': True}`` 。" -#: ../../settings.rst:107 57cdaaf600bf4c2aa461094e99584b54 +#: ../../settings.rst:111 b0e2be83c4684482a75198372a093d96 msgid "" "A dictionary of custom Jinja2 filters you want to use. The dictionary " "should map the filtername to the filter function." msgstr "一个字典,存放自定义的Jinja2过滤器。此字典中应该是过滤器名称到过滤器函数的映射。" -#: ../../settings.rst:118 31c28dcad1a2433784678692606c7407 -msgid "See: `Jinja custom filters documentation`_." -msgstr "详见: `Jinja自定义过滤器文档`_ 。" +#: ../../settings.rst:122 7e0e43b081f94e5dbe72072f2dc251e2 +#, python-brace-format +msgid "See: `Jinja custom filters documentation`_. The default is ``{}``." +msgstr "详见: `Jinja自定义过滤器文档`_ 。本项设置默认为 ``{}`` 。" -#: ../../settings.rst:122 33098b212ebb4c769d9a7e8e35e22f71 +#: ../../settings.rst:126 b0ec3d780aaf4daf95b134faba512564 +#, python-brace-format msgid "" "A dictionary of custom objects to map into the Jinja2 global environment " "namespace. The dictionary should map the global name to the global " -"variable/function. See: `Jinja global namespace documentation`_." +"variable/function. See: `Jinja global namespace documentation`_. The " +"default is ``{}``." msgstr "" "一个字典,可以将自定义对象映射到Jinja2的全局环境命名空间中。字典中应该是全局名称到全局变量/函数的映射。详见: " -"`Jinja全局命名空间文档`_ 。" +"`Jinja全局命名空间文档`_ 。本项设置默认为 ``{}`` 。" -#: ../../settings.rst:128 9d07d4c867f644dbad534da8c17805eb +#: ../../settings.rst:133 8ef1787d5b3f4a9fa1111027f183fd4f +#, python-brace-format msgid "" "A dictionary of custom Jinja2 tests you want to use. The dictionary " "should map test names to test functions. See: `Jinja custom tests " -"documentation`_." +"documentation`_. The default is ``{}``." msgstr "一个字典,自定义了要使用的Jinja测试。字典中应该是测试名到测试函数的映射。详见: `Jinja自定义测试文档`_ 。" +"本项设置默认为 ``{}`` 。" -#: ../../settings.rst:133 68fca89155b84571bf16ccc9e2d4d2f2 +#: ../../settings.rst:139 06c6769420a744ea9fc27fc3e930bfcb msgid "" "A list of tuples containing the logging level (up to ``warning``) and the" " message to be ignored." msgstr "一个以元组为元素的列表,元组中包含日志等级(最高到 ``warning``)和要忽略的消息。" -#: ../../settings.rst:142 2052888dbd6c4eb58148d383c23e6670 +#: ../../settings.rst:150 4234d5d045444f60a42af4d6a76f2de9 msgid "" "A dictionary of file extensions / Reader classes for Pelican to process " "or ignore." msgstr "一个字典,记录了文件扩展名到Reader类的映射。可以据此让Pelican按照指定规则处理或忽略某些文件。" -#: ../../settings.rst:145 5f70a62f7360438eb733791964a66c80 +#: ../../settings.rst:153 bda15a1a6e724557ae9ba779a4d941fd msgid "For example, to avoid processing .html files, set::" msgstr "例如,下面的配置可以让Pelican忽略 .html的文件不处理:" -#: ../../settings.rst:149 2d665ed99679489fb6a06fbd30754d6b +#: ../../settings.rst:157 07c385958bf648868271075a146da55d msgid "To add a custom reader for the ``foo`` extension, set::" msgstr "为扩展名为 ``foo`` 的文件添加自定义的reader:" -#: ../../settings.rst:155 726d7ea5aa2540139b82d68adf424a99 -msgid "" -"A list of glob patterns. Files and directories matching any of these " -"patterns will be ignored by the processor. For example, the default " -"``['.#*']`` will ignore emacs lock files, and ``['__pycache__']`` would " -"ignore Python 3's bytecode caches." -msgstr "" -"通配符模式的列表。任何匹配上的文件和目录都会被忽略。例如,默认的 ``['.#*']`` 可以忽略emacs的锁定文件, " -"``['__pycache__']`` 则可以忽略Python3的字节码缓存文件。" +#: ../../settings.rst:161 ../../settings.rst:810 ../../settings.rst:861 +#: ../../settings.rst:955 f0fd9392aa0544248ae3ecfa505cbd50 +#, python-brace-format +msgid "The default is ``{}``." +msgstr "默认为 ``{}`` 。" -#: ../../settings.rst:162 39fdbf56f4314015b8c61c7473b7046f +#: ../../settings.rst:165 ebc561b14759445386bb22e0318ae6de +msgid "" +"A list of Unix glob patterns. Files and directories matching any of these" +" patterns or any of the commonly hidden files and directories set by " +"``watchfiles.DefaultFilter`` will be ignored by the processor. For " +"example, the default ``['**/.*']`` will ignore \"hidden\" files and " +"directories, and ``['__pycache__']`` would ignore Python 3's bytecode " +"caches." +msgstr "" +"通配符模式的列表。匹配到其中任一个模式,或是 ``watchfiles.DefaultFilter`` 中设置了隐藏的文件和目录都会被忽略。" +"例如,默认的 ``['**/.*']`` 可以用于忽略任何隐藏文件与目录, ``['__pycache__']`` 则可以忽略Python3的字节码缓存文件。" + +#: ../../settings.rst:171 6d3691b43e9741bd97f11cf56ddd89ff +msgid "" +"For a full list of the commonly hidden files set by " +"``watchfiles.DefaultFilter``, please refer to the `watchfiles " +"documentation`_." +msgstr "请参阅 `watchfiles文档`_ 以获取 ``watchfiles.DefaultFilter`` 中设置常见隐藏文件的完整列表" + +#: ../../settings.rst:174 f0fd9392aa0544248ae3ecfa505cbd50 +msgid "The default is ``['**/.*']``." +msgstr "默认为 ``['**/.*']`` 。" + +#: ../../settings.rst:178 43597f10c7444144a4bffed8b2a29b41 msgid "" "Extra configuration settings for the Markdown processor. Refer to the " "Python Markdown documentation's `Options section `_ ,查看可用选项的完整列表。其中的 " "``extensions_configs`` 选项会用于自动计算 ``extensions`` 选项。" -#: ../../settings.rst:168 bcabc42f8a1143f28d39d928a84e5c80 -msgid "Defaults to::" +#: ../../settings.rst:184 f0fd9392aa0544248ae3ecfa505cbd50 +msgid "The default is::" msgstr "默认值为:" -#: ../../settings.rst:180 dfb5d9dcf9034218a44c38fa5d94b6e4 +#: ../../settings.rst:196 38d0b586c896439aa13c04c9555d9a4b msgid "" "The dictionary defined in your settings file will replace this default " "one." msgstr "配置文件中的字典会覆盖默认设置。" -#: ../../settings.rst:185 57124bf26ff24273a9fda76782a551e0 +#: ../../settings.rst:201 d6295ff5c7a345b2b9eb5f365fc5db8c msgid "" "Where to output the generated files. This should correspond to your web " "server's virtual host root directory." msgstr "输出生成文件的位置。此项配置应该和web服务器虚拟主机的根目录有关。" -#: ../../settings.rst:190 61cce052ae5549f98e48a9da9548b1d4 +#: ../../settings.rst:204 f0fd9392aa0544248ae3ecfa505cbd50 +msgid "The default is ``'output'``." +msgstr "默认为 ``'output'`` 。" + +#: ../../settings.rst:208 1da4adc27e65428b8178929389a8ca72 msgid "" "Path to content directory to be processed by Pelican. If undefined, and " "content path is not specified via an argument to the ``pelican`` command," -" Pelican will use the current working directory." +" Pelican will default to ``'.'``, the current working directory." msgstr "待Pelican处理的文件目录的路径。如果没有定义,也没有在 ``pelican`` 命令中通过参数指定,Pelican会默认使用当前工作目录。" -#: ../../settings.rst:196 770d207912f24f7b989208ef921d761c +#: ../../settings.rst:214 2b21399d328a41ba9982c23771f4c281 msgid "" "A list of directories and files to look at for pages, relative to " -"``PATH``." -msgstr "此列表中的目录和文件会被视为页面,路径是相对于 ``PATH`` 的。" +"``PATH``. The default is ``['pages']``." +msgstr "此列表中的目录和文件会被视为页面,路径是相对于 ``PATH`` 的。本项配置默认为 ``['pages']`` 。" -#: ../../settings.rst:200 6c39a2bdec444b59b7564f15c161483e +#: ../../settings.rst:219 c456260766774bcab50850fa7e4f9cf8 msgid "" "A list of directories to exclude when looking for pages in addition to " -"``ARTICLE_PATHS``." -msgstr "除了 ``ARTICLE_PATHS`` 中的文件不会被视为页面外,此选项中也可指定不被视为页面的文件目录。" +"``ARTICLE_PATHS``. The default is ``[]``." +msgstr "除了 ``ARTICLE_PATHS`` 中的文件不会被视为页面外,此选项中也可指定不被视为页面的文件目录。本项配置默认为 ``[]`` 。" -#: ../../settings.rst:205 ec472b45d27448538a216960335cede9 +#: ../../settings.rst:224 7d1515dd32ea4eb3bc0b621ef7cd0c2b msgid "" "A list of directories and files to look at for articles, relative to " -"``PATH``." -msgstr "此列表中的目录和文件会被视为文章,路径是相对于 ``PATH`` 的。" +"``PATH``. The default is ``['']``." +msgstr "此列表中的目录和文件会被视为文章,路径是相对于 ``PATH`` 的。本项配置默认为 ``['']`` 。" -#: ../../settings.rst:210 7d45d3e60d0c4c0e8c75fafc6ee0bf1a +#: ../../settings.rst:229 562736e3c91442bbb062e85e63d6f1f9 msgid "" "A list of directories to exclude when looking for articles in addition to" -" ``PAGE_PATHS``." -msgstr "除了 ``PAGE_PATHS`` 中的文件不会被视为文章外,此选项中也可指定不被视为文章的文件目录。" +" ``PAGE_PATHS``. The default is ``[]``." +msgstr "除了 ``PAGE_PATHS`` 中的文件不会被视为文章外,此选项中也可指定不被视为文章的文件目录。本项配置默认为 ``[]`` 。" -#: ../../settings.rst:215 4b3fb145ed814ff49262ce0ad20f711a +#: ../../settings.rst:234 ea5874e71eb941a2b37262eb9cb398bf msgid "" "Set to True if you want to copy the articles and pages in their original " "format (e.g. Markdown or reStructuredText) to the specified " -"``OUTPUT_PATH``." +"``OUTPUT_PATH``. The default is ``False``." msgstr "" "如果你想要将文章和页面以源格式(例如Markdown或reStructuredText)复制一份到 ``OUTPUT_PATH`` " -"目录中,就将此项设为True。" +"目录中,就将此项设为True。本项配置默认为 ``False`` 。" -#: ../../settings.rst:220 4da18483b371405facd124c3e345594c +#: ../../settings.rst:240 30108efdc87c48368c035774372eb8f1 msgid "" "Controls the extension that will be used by the SourcesGenerator. " "Defaults to ``.text``. If not a valid string the default value will be " -"used." -msgstr "控制会被SourcesGenerator使用的扩展名。默认为 ``.text`` 。如果设置的值是无效的,会使用默认值。" +"used. The default is ``'.text'``." +msgstr "控制SourcesGenerator使用的扩展名。默认为 ``.text`` 。如果设置的值是无效的,会使用默认值。本项配置默认为 ``'.text'`` 。" -#: ../../settings.rst:225 86076613fd6d438ab908d53be5422f06 -msgid "The list of plugins to load. See :ref:`plugins`." -msgstr "要加载的插件列表。详见 :ref:`插件` 。" +#: ../../settings.rst:246 5763cdeffac14fb4a4403b534251e8e2 +msgid "The list of plugins to load. See :ref:`plugins`. The default is ``None``." +msgstr "要加载的插件列表。详见 :ref:`插件` 。本项配置默认为 ``None`` 。" -#: ../../settings.rst:229 208cbbef07c742a3906f604c97a4d332 -msgid "A list of directories where to look for plugins. See :ref:`plugins`." -msgstr "查找插件的目录列表。详见 :ref:`插件` 。" +#: ../../settings.rst:250 8f081da9abd648a0b029262e50bb5834 +msgid "" +"A list of directories where to look for plugins. See :ref:`plugins`. The " +"default is ``[]``." +msgstr "查找插件的目录列表。详见 :ref:`插件` 。本项配置默认为 ``[]`` 。" -#: ../../settings.rst:233 265efbdef95744759fea79fd41a4003f -msgid "Your site name" -msgstr "站点名称" +#: ../../settings.rst:255 4a0df17e21714b569b3beef92153bc9c +msgid "Your site's name. The default is ``'A Pelican Blog'``." +msgstr "站点名称。默认为 ``'A Pelican Blog'`` 。" -#: ../../settings.rst:237 d57d6f99c06b4776b31acc033c97f67b +#: ../../settings.rst:259 a2a835e1c3804bdaa57c834e117f5b2e msgid "" "Base URL of your web site. Not defined by default, so it is best to " "specify your SITEURL; if you do not, feeds will not be generated with " @@ -325,23 +365,29 @@ msgstr "" " ``https://`` 开头;否则使用 ``http://`` 即可。在协议后面接着就是域名,不要以斜杠结尾。一个例子: ``SITEURL " "= 'https://example.com'`` " -#: ../../settings.rst:246 d4dd07a95a904806812b20ff3ec3049b +#: ../../settings.rst:266 72e916aee6f143cd82a15c0c84b2bd73 +msgid "The default is ``''``, the blank string." +msgstr "默认为 ``''`` ,即空字符串。" + +#: ../../settings.rst:270 af6a95fa0a79465287831e83c66b6eb0 msgid "" "A list of directories (relative to ``PATH``) in which to look for static " "files. Such files will be copied to the output directory without " "modification. Articles, pages, and other content source files will " "normally be skipped, so it is safe for a directory to appear both here " "and in ``PAGE_PATHS`` or ``ARTICLE_PATHS``. Pelican's default settings " -"include the \"images\" directory here." +"include the \"images\" directory here. The default is ``['images']``." msgstr "" -"用于查找静态文件的目录列表。静态文件会原封不动地拷贝到输出目录中。文章、页面以及其他的内容源文件都会被跳过,因此一个目录可以安全地同时出现在此选项以及" -" ``PAGE_PATHS`` 或 ``ARTICLE_PATHS`` 中。Pelican默认会将 \"images\" 目录包含在此选项中。" +"用于查找静态文件的目录列表(相对于 ``PATH`` 目录)。静态文件会原封不动地拷贝到输出目录中。文章、页面以及其他的内容源文件都会被跳过,因此一个目录可以安全地同时出现在此选项以及" +" ``PAGE_PATHS`` 或 ``ARTICLE_PATHS`` 中。Pelican默认会将 \"images\" 目录包含在此选项中。本项配置默认为 ``['images']`` 。" -#: ../../settings.rst:255 fc85f34c9d9640f48e0c739cc2787847 -msgid "A list of directories to exclude when looking for static files." -msgstr "此选项列表中的目录都会在搜索静态文件时排除在外。" +#: ../../settings.rst:279 562736e3c91442bbb062e85e63d6f1f9 +msgid "" +"A list of directories to exclude when looking for static files. The " +"default is ``[]``." +msgstr "此选项列表中的目录都会在搜索静态文件时排除在外。本项配置默认为 ``[]`` 。" -#: ../../settings.rst:259 ff6eb957bf36419d8a6a376d3232c117 +#: ../../settings.rst:284 92849777e12b448898dba49e9799484b msgid "" "If set to False, content source files will not be skipped when copying " "files found in ``STATIC_PATHS``. This setting is for backward " @@ -349,53 +395,65 @@ msgid "" " unless ``STATIC_PATHS`` contains a directory that is also in " "``ARTICLE_PATHS`` or ``PAGE_PATHS``. If you are trying to publish your " "site's source files, consider using the ``OUTPUT_SOURCES`` setting " -"instead." +"instead. The default is ``True``." msgstr "" "如果此选项设为False, ``STATIC_PATHS`` " "中的内容源文件将不会被忽略,也会像静态文件一样被原封不动地拷贝。此项设置是为了给3.5版本前的Pelican进行向后兼容的。若某个目录同时出现在了" " ``STATIC_PATHS`` 和 ``ARTICLE_PATHS`` 中,或 ``STATIC_PATHS`` 和 " -"``PAGE_PATHS`` 中时才会生效。如果你是想将站点的源文件发布出去的话,请考虑使用 ``OUTPUT_SOURCES`` 设置。" +"``PAGE_PATHS`` 中时才会生效。如果你是想将站点的源文件发布出去的话,请考虑使用 ``OUTPUT_SOURCES`` 。本项配置默认为 ``True`` 。" -#: ../../settings.rst:268 bf1a395929034faca5de2bf94514f5e3 +#: ../../settings.rst:294 a4a2ef0dfd6442fb889bf9bfe33688 msgid "" "Create links instead of copying files. If the content and output " "directories are on the same device, then create hard links. Falls back " "to symbolic links if the output directory is on a different filesystem. " "If symlinks are created, don't forget to add the ``-L`` or ``--copy-" -"links`` option to rsync when uploading your site." +"links`` option to rsync when uploading your site. The default is " +"``False``." msgstr "" "为静态文件创建链接而不是复制文件本身。如果内容和输出目录位于同一设备上,则创建硬链接;如果输出目录位于不同的文件系统上,则回退至符号链接。若创建了符号链接,使用rsync上传网站时需要添加-L或" -"--copy-links选项。" +"--copy-links选项。本项配置默认为 ``False`` 。" -#: ../../settings.rst:276 c1931f5e9644460bb528a831fdd41a59 +#: ../../settings.rst:302 8c6ff3cd170444dc9e9411e43bbcffdd msgid "" "If set to ``True``, and ``STATIC_CREATE_LINKS`` is ``False``, compare " "mtimes of content and output files, and only copy content files that are " -"newer than existing output files." +"newer than existing output files. The default is ``False``." msgstr "" "当此项设为 ``True`` 且 ``STATIC_CREATE_LINKS`` 设为 ``False`` " -"时才会生效,此时会比较mtime,只有在当前文件更新时才会执行拷贝。" +"时才会生效,此时会比较mtime,只有在当前文件更新时才会执行拷贝。本项配置默认为 ``False`` 。" -#: ../../settings.rst:282 60d680a3b3f44bd6b4461c92057e4471 +#: ../../settings.rst:308 b26c548f490f45f9bbe95ee6b12fd306 msgid "" -"If set to True, several typographical improvements will be incorporated " -"into the generated HTML via the `Typogrify " +"If set to ``True``, several typographical improvements will be " +"incorporated into the generated HTML via the `Typogrify " "`_ library, which can be installed " -"via: ``python -m pip install typogrify``" +"via: ``python -m pip install typogrify``. The default is ``False``." msgstr "" "若此项设置为True,一些显示上的改进将通过 `Typogrify `_" -" 库合并到生成的HTML中。可以通过 ``python -m pip install typogrify`` 进行安装。" +" 库合并到生成的HTML中。可以通过 ``python -m pip install typogrify`` 进行安装。本项配置默认为 ``False`` 。" -#: ../../settings.rst:289 db77faf7956845d1a2d4ff9150138017 +#: ../../settings.rst:315 f4a976dc583346eebd71cedbbd43839c msgid "" "A list of tags for Typogrify to ignore. By default Typogrify will ignore " "``pre`` and ``code`` tags. This requires that Typogrify version 2.0.4 or " -"later is installed" +"later is installed. The default is ``[]``." msgstr "" "指定Typogrify要忽略的标签列表。默认情况下,Typogrify将忽略 ``pre`` 和 ``code`` " -"标签此项特性需要安装高于2.0.4版本的Typogrify。" +"标签此项特性需要安装高于2.0.4版本的Typogrify。。本项配置默认为 ``[]`` 。" -#: ../../settings.rst:295 8fddf3800e844a189677f113252bee04 +#: ../../settings.rst:321 b40b1e64ddc344bfa9451e3e51e397df +msgid "" +"A list of Typogrify filters to skip. Allowed values are: ``'amp'``, " +"``'smartypants'``, ``'caps'``, ``'initial_quotes'``, ``'widont'``. By " +"default, no filter is omitted (in other words, all filters get applied). " +"This setting requires that Typogrify version 2.1.0 or later is installed." +" The default is ``[]``." +msgstr "要忽略的Typogrify过滤器列表。可用值包括: ``'amp'`` 、 ``'smartypants'`` 、 ``'caps'`` 、 " +"``'initial_quotes'`` 、 ``'widont'`` 。默认不忽略任何过滤器。本项配置需要2.1.0或以上版本的Typogrify。" +"本项配置默认为 ``[]`` 。" + +#: ../../settings.rst:329 8b9d3479e18c407090a4aac6a1dcafdf msgid "" "This setting controls how Typogrify sets up the Smartypants filter to " "interpret multiple dash/hyphen/minus characters. A single ASCII dash " @@ -404,132 +462,147 @@ msgid "" "The ``oldschool`` setting renders both en-dashes and em-dashes when it " "sees two (``--``) and three (``---``) hyphen characters, respectively. " "The ``oldschool_inverted`` setting turns two hyphens into an em-dash and " -"three hyphens into an en-dash." +"three hyphens into an en-dash. The default is ``'default'``." msgstr "" "此设置用于设置Typogrify的Smartypants过滤器,控制过滤器如何解析多个破折号/连字符/减号。单个ASCII破折号字符 " "(``-``) 始终被视为连字符。设为 ``default`` 时不处理短破折号,并会将双连字符转换为长破折号;设为 ``oldschool`` " "时会将两个 ( ``--`` ) 和三个 ( ``--`` ) 连字符分别呈现为短破折号和长破折号;设为 " -"``oldschool_inverted`` 时则会将两个连字符转换为长破折号,而将三个连字符转换为短破折号。" +"``oldschool_inverted`` 时则会将两个连字符转换为长破折号,而将三个连字符转换为短破折号。本项配置默认为 ``'default'`` " -#: ../../settings.rst:306 c110b209965c448c8e3ca4109edfa0d6 +#: ../../settings.rst:340 44489695c0bb4c75ba04e6d23b17a6b7 msgid "" "When creating a short summary of an article, this will be the default " "length (measured in words) of the text created. This only applies if " "your content does not otherwise specify a summary. Setting to ``None`` " -"will cause the summary to be a copy of the original content." +"will cause the summary to be a copy of the original content. The default " +"is ``50``." msgstr "" -"当未给文章或页面书写摘要时,会自动创建摘要,此设置指定了默认创建摘要的长度" -"(以字/词为单位)。若将此项设为 ``None`` ,摘要会和原始内容一模一样。" +"当未给文章或页面书写摘要时,会自动创建摘要,此设置指定了默认创建摘要的长度(以字/词为单位)。若将此项设为 ``None`` " +",摘要会和原始内容一模一样。本项配置默认为 ``50`` 。" -#: ../../settings.rst:313 9d446d0be4d248e1b5ef7f5df1977310 +#: ../../settings.rst:347 aad4656b1b5441f588931776445fb4cf msgid "" "When creating a short summary of an article, this will be the number of " "paragraphs to use as the summary. This only applies if your content does " "not otherwise specify a summary. Setting to ``None`` will cause the " "summary to use the whole text (up to ``SUMMARY_MAX_LENGTH``) instead of " -"just the first N paragraphs." +"just the first N paragraphs. The default is ``None``." msgstr "" -"当未给文章或页面书写摘要时,会自动创建摘要。此设置指定了默认创建摘要的段落数," -"即将正文的前N段视为摘要。若将此项设为 ``None`` ,摘要会和原始内容一模一样," -"但具体还会遵循 ``SUMMARY_MAX_LENGTH`` 。" +"当未给文章或页面书写摘要时,会自动创建摘要。此设置指定了默认创建摘要的段落数,即将正文的前N段视为摘要。若将此项设为 ``None`` " +",摘要会和原始内容一模一样,但具体还会遵循 ``SUMMARY_MAX_LENGTH`` 。本项配置默认为 ``None`` 。" -#: ../../settings.rst:321 6a04572678864a959a48dc83f4e78465 +#: ../../settings.rst:355 469780be0d8144f0bfe4fc7c475e11cb msgid "" "When creating a short summary of an article and the result was truncated " "to match the required word length, this will be used as the truncation " -"suffix." -msgstr "在创建摘要时,若内容因长度被截断,此项设置值将用作截断的结尾。" +"suffix. The default is ``'…'``." +msgstr "在创建摘要时,若内容因长度被截断,此项设置值将用作截断的结尾。本项配置默认为 ``'…'`` 。" -#: ../../settings.rst:326 df2e4e17f0de4d5b97f282fb9a73c57d +#: ../../settings.rst:361 11e86cf295024b67a50156da38d62043 msgid "" "If disabled, content with dates in the future will get a default status " -"of ``draft``. See :ref:`reading_only_modified_content` for caveats." +"of ``draft``. See :ref:`reading_only_modified_content` for caveats. The " +"default is ``True``." msgstr "" "若此项设为False,带了未来日期的文章或页面的状态都会设为 ``draft`` 。相关注意事项详见 " -":ref:`reading_only_modified_content` 。" +":ref:`reading_only_modified_content` 。本项配置默认为 ``True`` 。" -#: ../../settings.rst:331 32787a794f534c759cdff64b48f3d4f0 +#: ../../settings.rst:367 c29c4ca7127741d49a164b7dff038232 +#, python-brace-format msgid "" "Regular expression that is used to parse internal links. Default syntax " "when linking to internal files, tags, etc., is to enclose the identifier," " say ``filename``, in ``{}`` or ``||``. Identifier between ``{`` and " "``}`` goes into the ``what`` capturing group. For details see :ref:`ref-" -"linking-to-internal-content`." +"linking-to-internal-content`. The default is ``'[{|](?P.*?)[|}]'``." msgstr "" "用于解析内部链接的正则表达式。链接到内部文件、标签等时的默认语法是将标识符(例如 ``filename`` )括在 ``{}`` 或 ``||``" " 中。 ``{`` 和 ``}`` 之间的则进入 ``what`` 捕获组。更多详情请参见 :ref:`ref-linking-to-" -"internal-content` 。" +"internal-content` 。本项配置默认为 ``'[{|](?P.*?)[|}]'`` 。" -#: ../../settings.rst:339 58a95b3645534c8fa0d30d0e237f3d42 +#: ../../settings.rst:376 a74ea9d0899541e78d3a997b8f481ad6 +#, python-brace-format msgid "" "A list of default Pygments settings for your reStructuredText code " "blocks. See :ref:`internal_pygments_options` for a list of supported " -"options." +"options. The default is ``{}``." msgstr "" -"reStructuredText代码块的默认Pygments设置列表。有关受支持选项的列表,请参阅 " -":ref:`internal_pygments_options` 。" +"reStructuredText代码块的默认Pygments设置列表。请参阅 " +":ref:`internal_pygments_options` 查看支持选项列表。本项配置默认为 ``{}`` 。" -#: ../../settings.rst:344 8086dcfa7a7c41dca8ad4c3bfca3f627 +#: ../../settings.rst:382 aa2425b88dea4351bf184f127a5965de msgid "" "If ``True``, saves content in caches. See " -":ref:`reading_only_modified_content` for details about caching." +":ref:`reading_only_modified_content` for details about caching. The " +"default is ``False``." msgstr "若设为 ``True`` ,会将内容保存在缓存中。有关缓存请参阅 :ref:`reading_only_modified_content` 。" +"本项配置默认为 ``False`` 。" -#: ../../settings.rst:349 2ed178f518144b649b73718f9238b54b +#: ../../settings.rst:388 fe1ca91d569e4c2584b0dd3907761f40 msgid "" "If set to ``'reader'``, save only the raw content and metadata returned " -"by readers. If set to ``'generator'``, save processed content objects." +"by readers. If set to ``'generator'``, save processed content objects. " +"The default is ``'reader'``." msgstr "若设为 ``reader`` ,则只保存reader返回的原始内容和元数据。若设为 ``generator`` ,则保存处理过的内容对象。" +"本项配置默认为 ``'reader'`` 。" -#: ../../settings.rst:354 202ee8f7b97949909b28648926f42215 -msgid "Directory in which to store cache files." -msgstr "指定存储缓存文件的目录。" +#: ../../settings.rst:394 9fc3e0a091d0493cb1172bb1c3bde79d +msgid "Directory in which to store cache files. The default is ``'cache'``." +msgstr "指定存储缓存文件的目录。本项配置默认为 ``'cache'`` 。" -#: ../../settings.rst:358 c4c1793569284f8aa087727d2cac0e4f -msgid "If ``True``, use gzip to (de)compress the cache files." -msgstr "若设为 ``True`` ,则使用gzip对缓存文件进行解压缩。" +#: ../../settings.rst:398 e37599cff5684bcc92d1102ccb78ba03 +msgid "" +"If ``True``, use gzip to (de)compress the cache files. The default is " +"``True``." +msgstr "若设为 ``True`` ,则使用gzip对缓存文件进行解压缩。本项配置默认为 ``True`` 。" -#: ../../settings.rst:362 3d8bcb7fb9fc4e0883de376634b5f443 +#: ../../settings.rst:403 c6735c207785406f93dbd6c85c1e7331 msgid "Controls how files are checked for modifications." msgstr "调整判定文件是否修改的方式" -#: ../../settings.rst:364 ../../settings.rst:1364 -#: ded4e8033f904545a9ed73fe4b5f5912 +#: ../../settings.rst:405 ../../settings.rst:1448 +#: 18648953d9c040c8bd0b98d212509bbf msgid "If set to ``'mtime'``, the modification time of the file is checked." msgstr "若设为 ``mtime`` ,则检查文件的修改时间。" -#: ../../settings.rst:366 ../../settings.rst:1366 -#: 4e96ee3515e540ba828b8a80328ff700 +#: ../../settings.rst:407 ../../settings.rst:1450 +#: e5596360b86d44ef81b01bb259b4b189 msgid "" "If set to a name of a function provided by the ``hashlib`` module, e.g. " "``'md5'``, the file hash is checked." msgstr "若设为 ``hashlib`` 库中提供的方法名,例如 ``md5`` ,则会检查文件的哈希值。" -#: ../../settings.rst:371 2a66a13f76854ae794911f0c4d3fcffd -msgid "If ``True``, load unmodified content from caches." -msgstr "若设为 ``True`` ,则会从缓存中加载未修改的内容。" +#: ../../settings.rst:410 f0fd9392aa0544248ae3ecfa505cbd50 +msgid "The default is ``'mtime'``." +msgstr "默认为 ``'mtime'`` 。" -#: ../../settings.rst:375 eea621ea4a5344069cd4c2cf40b3a953 +#: ../../settings.rst:414 f9de4ce8f2534da6b6318522dd749cef +msgid "" +"If ``True``, load unmodified content from caches. The default is " +"``False``." +msgstr "若设为 ``True`` ,则会从缓存中加载未修改的内容。本项配置默认为 ``False`` 。" + +#: ../../settings.rst:418 48308a306f9c41f0b95ce62120a4c64b msgid "" "A list of metadata fields containing reST/Markdown content to be parsed " -"and translated to HTML." -msgstr "元数据的列表,此列表中的元数据会被解析为HTML。" +"and translated to HTML. The default is ``['summary']``." +msgstr "元数据的列表,此列表中的元数据会被解析为HTML。本项配置默认为 ``['summary']`` 。" -#: ../../settings.rst:380 8760f989d6ab474d987830631e1eca56 +#: ../../settings.rst:423 43cbc9a1d76d4d698f9c0e4013ec47d8 msgid "" "The TCP port to serve content from the output folder via HTTP when " -"pelican is run with --listen" -msgstr "使用--listen运行pelican时,会在此选项指定的TCP端口上以HTTP提供内容。" +"pelican is run with ``--listen``. The default is ``8000``." +msgstr "使用--listen运行pelican时,会在此选项指定的TCP端口上以HTTP提供内容。本项配置默认为 ``8000`` 。" -#: ../../settings.rst:385 ea445f6d17204bd8b7f73803aa27a4a8 -msgid "The IP to which to bind the HTTP server." -msgstr "需要和HTTP服务器绑定的IP地址。" +#: ../../settings.rst:428 ad5bd958c68f45f8b031fe61c19baa46 +msgid "The IP to which to bind the HTTP server. The default is ``'127.0.0.1'``." +msgstr "需要和HTTP服务器绑定的IP地址。本项配置默认为 ``'127.0.0.1'`` 。" -#: ../../settings.rst:390 3b524d176da047c091f2769c156f3484 +#: ../../settings.rst:433 bb37f2124e17422e8d92159261df8891 msgid "URL settings" msgstr "URL设置" -#: ../../settings.rst:392 fc094e521c5646b18a62975847740ce7 +#: ../../settings.rst:435 b8f09390ffb0493c87f475f214133b2d msgid "" "The first thing to understand is that there are currently two supported " "methods for URL formation: *relative* and *absolute*. Relative URLs are " @@ -546,7 +619,8 @@ msgstr "" " ``pelican-quickstart`` 时,就会为本地开发和发布环境分别生成一份配置文件,此脚本在 :doc:`安装Pelican " "` 一节中有详细描述。" -#: ../../settings.rst:401 9749e4b4a85f45b28fa7a71d05b9bf9c +#: ../../settings.rst:444 5c90d0e477da4e37a4b3ae46684e3cb1 +#, python-brace-format msgid "" "You can customize the URLs and locations where files will be saved. The " "``*_URL`` and ``*_SAVE_AS`` variables use Python's format strings. These " @@ -559,7 +633,8 @@ msgstr "" "变量使用Python风格的格式化字符串。你可以利用一些变量将文章放在诸如 ``{slug}/index.html`` 的位置,并且可以以 " "``{slug}`` 的形式进行链接,如此可以让URL更加简洁(详见下面的例子)。这些设置可以让你灵活地将文章和页面放在任何你想要的地方。" -#: ../../settings.rst:409 9e5d3f0ff133412b8d47de5fc9489e5f +#: ../../settings.rst:452 0ca45357c5b74c758e00faefa8f4c0e8 +#, python-brace-format msgid "" "If a ``*_SAVE_AS`` setting contains a parent directory that doesn't match" " the parent directory inside the corresponding ``*_URL`` setting, this " @@ -569,45 +644,45 @@ msgstr "" "如果 ``*_SAVE_AS`` 中包含了不在 ``*_URL`` 中的父目录,会导致Pelican在少数情况下(例如使用 " "``{attach}`` 语法时)产生不确定的URL。" -#: ../../settings.rst:414 b2429a00d07341099c3f34b7134f3732 +#: ../../settings.rst:457 b04cc2a7f85f4ba692a703555df3a194 msgid "" "If you don't want that flexibility and instead prefer that your generated" " output paths mirror your source content's filesystem path hierarchy, try" " the following settings::" msgstr "若不希望有这种灵活性,而是希望生成的输出路径保留源内容路径的层次结构,可以尝试以下设置:" -#: ../../settings.rst:421 d89d44671c504501a54d3baca12e9017 +#: ../../settings.rst:464 ad7d1e214f2a4d85ae7b1d28e3a164cb msgid "" "Otherwise, you can use a variety of file metadata attributes within URL-" "related settings:" msgstr "否则,可以在URL相关设置中可以使用下面的这些元数据属性:" -#: ../../settings.rst:424 c97e4acb5b1d4ffda3028b9fdf8b7ed7 +#: ../../settings.rst:467 c4b17402ea72433f9df15ac8b3a1ceb9 msgid "slug" msgstr "slug" -#: ../../settings.rst:425 a5257ea8cb0b430db73f09b337db7a74 +#: ../../settings.rst:468 fad16eab57e94f5f8f69ec1d19752a95 msgid "date" msgstr "date" -#: ../../settings.rst:426 d6aa5650f1f34a0ba162f2fd2bf33182 +#: ../../settings.rst:469 031db5162fbe4ff2a63a482a1574ef3d msgid "lang" msgstr "lang" -#: ../../settings.rst:427 1fa0d7e3527b46e298468ad129188ca2 +#: ../../settings.rst:470 a4da9aeb8acc4e6eaee3809b7b55cca8 msgid "author" msgstr "author" -#: ../../settings.rst:428 e68b3eeb56304803b7dd56c5c919382d +#: ../../settings.rst:471 2eb8d928fd324ae2baa8d68c224d8804 msgid "category" msgstr "category" -#: ../../settings.rst:430 ../../settings.rst:565 -#: 663b3feef9aa44208752d6bbe79dbfba +#: ../../settings.rst:473 ../../settings.rst:616 +#: 9e1b640b50424480b171962702ffdc5f msgid "Example usage::" msgstr "例如:" -#: ../../settings.rst:437 9cdacb3495c84888b48bb6092b7d0111 +#: ../../settings.rst:480 d6a8ebf0d638473eac3819a10923303d msgid "" "This would save your articles into something like ``/posts/2011/Aug/07" "/sample-post/index.html``, save your pages into " @@ -618,7 +693,7 @@ msgstr "" "``/pages/about/index.html`` 的形式存储,对应的URL分别为 ``/posts/2011/Aug/07/sample-" "post/`` 与 ``/pages/about/`` 。" -#: ../../settings.rst:443 f7d6af3d02834a689522f5b479aa1d8b +#: ../../settings.rst:486 5f57f3feaa7f4e778a1d916ff18c1d63 msgid "" "If you specify a ``datetime`` directive, it will be substituted using the" " input files' date metadata attribute. If the date is not specified for a" @@ -628,119 +703,160 @@ msgstr "" "如果指定了 ``datetime`` 指令,会使用输入文件的日期元数据进行替换。若没有指定日期,Pelican会根据文件的 ``mtime`` " "时间戳替换之。更多信息可以参考 `Python datetime文档`_ 。" -#: ../../settings.rst:453 6165ea3291b444c29b329cb7c1d12efa +#: ../../settings.rst:496 a82644d4452643c1912f03ab291d6f4b msgid "" "Defines whether Pelican should use document-relative URLs or not. Only " "set this to ``True`` when developing/testing and only if you fully " -"understand the effect it can have on links/feeds." +"understand the effect it can have on links/feeds. The default is " +"``False``." msgstr "" "定义Pelican是否使用文档间的相对URL。请只在开发或测试时将此项设为 ``True`` " ",并且确保你已经明白此项设置对链接与feed的影响。(译者注:当此项为True时,网页之间的链接会使用相对路径表达,例如 ``../my-" -"article.html`` )" +"article.html`` )。本项配置默认为 ``False`` 。" -#: ../../settings.rst:459 ef74181aff694f228072bb8fc114a49c -msgid "The URL to refer to an article." -msgstr "文章的URL格式。" +#: ../../settings.rst:502 08d86196410f482e803c69d85078652a +#, python-brace-format +msgid "The URL to refer to an article. The default is ``'{slug}.html'``." +msgstr "draft状态文章的URL格式。本项配置默认为 ``'{slug}.html'`` 。" -#: ../../settings.rst:463 28debd5a396746ddaa4c5552034c6f5e -msgid "The place where we will save an article." -msgstr "文章的存储位置。" +#: ../../settings.rst:506 13b5dcc285d849999acd612a07d00105 +#, python-brace-format +msgid "The place where we will save an article. The default is ``'{slug}.html'``." +msgstr "draft状态文章的存储位置。本项配置默认为 ``'{slug}.html'`` 。" -#: ../../settings.rst:467 a6a8e9c42b1144c0bbe071a0948a7c41 -msgid "The URL to refer to an article which doesn't use the default language." -msgstr "非默认语言文章的URL格式。" +#: ../../settings.rst:510 08d86196410f482e803c69d85078652a +#, python-brace-format +msgid "" +"The URL to refer to an article which doesn't use the default language. " +"The default is ``'{slug}-{lang}.html``." +msgstr "非默认语言文章的URL格式。本项配置默认为 ``'{slug}-{lang}.html`` 。" -#: ../../settings.rst:471 885589960b054edbac6b5b5ceabf70ba +#: ../../settings.rst:515 13b5dcc285d849999acd612a07d00105 +#, python-brace-format msgid "" "The place where we will save an article which doesn't use the default " -"language." -msgstr "非默认语言文章的存储位置。" +"language. The default is ``'{slug}-{lang}.html'``." +msgstr "非默认语言文章的存储位置。本项配置默认为 ``'{slug}-{lang}.html'`` 。" -#: ../../settings.rst:476 ed30016072a84eab9108c94ef05d72ac -msgid "The URL to refer to an article draft." -msgstr "draft状态文章的URL格式。" +#: ../../settings.rst:520 eb807715a5ce47398b0a9545f2d21c3f +#, python-brace-format +msgid "" +"The URL to refer to an article draft. The default is " +"``'drafts/{slug}.html'``." +msgstr "draft状态非默认语言文章的URL格式。本项配置默认为 ``'drafts/{slug}.html'`` 。" -#: ../../settings.rst:480 f1827c2a350e41fb8a29b32ce4f0ce38 -msgid "The place where we will save an article draft." -msgstr "draft状态文章的存储位置。" +#: ../../settings.rst:525 b3e2acb8ad31482cacda5244df2b36e1 +#, python-brace-format +msgid "" +"The place where we will save an article draft. The default is " +"``'drafts/{slug}.html'``." +msgstr "draft状态非默认语言文章的存储位置。本项配置默认为 ``'drafts/{slug}.html'`` 。" -#: ../../settings.rst:484 a73fe74a021e4e1ca7b9d514b05dc709 +#: ../../settings.rst:529 eb807715a5ce47398b0a9545f2d21c3f +#, python-brace-format msgid "" "The URL to refer to an article draft which doesn't use the default " -"language." -msgstr "draft状态非默认语言文章的URL格式。" +"language. The default is ``'drafts/{slug}-{lang}.html'``." +msgstr "draft状态非默认语言文章的URL格式。本项配置默认为 ``'drafts/{slug}-{lang}.html'`` 。" -#: ../../settings.rst:488 9eaa92ef96bc49d3b7a751b88e7d1775 +#: ../../settings.rst:534 b3e2acb8ad31482cacda5244df2b36e1 +#, python-brace-format msgid "" "The place where we will save an article draft which doesn't use the " -"default language." -msgstr "draft状态非默认语言文章的存储位置。" +"default language. The default is ``'drafts/{slug}-{lang}.html'``." +msgstr "draft状态非默认语言文章的存储位置。本项配置默认为 ``'drafts/{slug}-{lang}.html'`` 。" -#: ../../settings.rst:493 303454f9d4524fc680dd2092dcb56cb9 -msgid "The URL we will use to link to a page." -msgstr "页面的URL格式。" +#: ../../settings.rst:539 6596ed1c997349bf94a503bdaa8b9e68 +#, python-brace-format +msgid "" +"The URL we will use to link to a page. The default is " +"``'pages/{slug}.html'``." +msgstr "非默认语言页面的URL格式。本项配置默认为 ``'pages/{slug}.html'`` 。" -#: ../../settings.rst:497 afd8b970b616418d84b9e3fd4ab52cb4 +#: ../../settings.rst:544 e837fdc936e54e6a80398382c305606b +#, python-brace-format msgid "" "The location we will save the page. This value has to be the same as " -"PAGE_URL or you need to use a rewrite in your server config." +"PAGE_URL or you need to use a rewrite in your server config. The default " +"is ``'pages/{slug}.html'``." msgstr "页面的保存位置。除非在服务器上设置了重写规则,否则此项设置必须和PAGE_URL一致。" +"本项配置默认为 ``'pages/{slug}.html'`` 。" -#: ../../settings.rst:502 311b0f44a40c450da8d5049aef066bed +#: ../../settings.rst:550 6596ed1c997349bf94a503bdaa8b9e68 +#, python-brace-format msgid "" "The URL we will use to link to a page which doesn't use the default " -"language." -msgstr "非默认语言页面的URL格式。" +"language. The default is ``'pages/{slug}-{lang}.html'``." +msgstr "非默认语言页面的URL格式。本项配置默认为 ``'pages/{slug}-{lang}.html'`` 。" -#: ../../settings.rst:507 a6829be9309144cebd8135f7e20f8670 -msgid "The location we will save the page which doesn't use the default language." -msgstr "非默认语言页面的存储位置。" +#: ../../settings.rst:555 e837fdc936e54e6a80398382c305606b +#, python-brace-format +msgid "" +"The location we will save the page which doesn't use the default " +"language. The default is ``'pages/{slug}-{lang}.html'``." +msgstr "非默认语言页面的存储位置。本项配置默认为 ``'pages/{slug}-{lang}.html'`` 。" -#: ../../settings.rst:511 95a46aad8dd046d096ad55df0777d67b -msgid "The URL used to link to a page draft." -msgstr "draft状态页面的URL。" +#: ../../settings.rst:560 f50ffd4223fe4f1ab65496ddd66531f7 +#, python-brace-format +msgid "" +"The URL used to link to a page draft. The default is " +"``'drafts/pages/{slug}.html'``." +msgstr "draft状态非默认语言页面的URL格式。本项配置默认为 ``'drafts/pages/{slug}.html'`` 。" -#: ../../settings.rst:515 0036d550e0cc47058e209dcd9cf313b5 -msgid "The actual location a page draft is saved at." -msgstr "draft状态页面的实际存储位置。" +#: ../../settings.rst:565 3675c7a1107744f0818c0473c4f0643b +#, python-brace-format +msgid "" +"The actual location a page draft is saved at. The default is " +"``'drafts/pages/{slug}.html'``." +msgstr "draft状态非默认语言页面的实际存储位置。本项配置默认为 ``'drafts/pages/{slug}.html'`` 。" -#: ../../settings.rst:519 6f382f91d09b4301b68a38d94312ef21 +#: ../../settings.rst:570 ee417f88ca17494cb0c3c7ec38ba9588 +#, python-brace-format msgid "" "The URL used to link to a page draft which doesn't use the default " -"language." -msgstr "draft状态非默认语言页面的URL格式。" +"language. The default is ``'drafts/pages/{slug}-{lang}.html'``." +msgstr "draft状态非默认语言页面的URL格式。本项配置默认为 ``'drafts/pages/{slug}-{lang}.html'`` 。" -#: ../../settings.rst:524 5ef1118bbfa844c5be60d015a8294deb +#: ../../settings.rst:575 3675c7a1107744f0818c0473c4f0643b +#, python-brace-format msgid "" "The actual location a page draft which doesn't use the default language " -"is saved at." -msgstr "draft状态非默认语言页面的实际存储位置。" +"is saved at. The default is ``'drafts/pages/{slug}-{lang}.html'``." +msgstr "draft状态非默认语言页面的实际存储位置。本项配置默认为 ``'drafts/pages/{slug}-{lang}.html'`` 。" -#: ../../settings.rst:529 4c23c58e9b0341c7a632114822383784 -msgid "The URL to use for an author." -msgstr "某一个作者的URL格式。" +#: ../../settings.rst:580 08d86196410f482e803c69d85078652a +#, python-brace-format +msgid "The URL to use for an author. The default is ``'author/{slug}.html'``." +msgstr "此URL用于作者页。本项配置默认为 ``'author/{slug}.html'`` 。" -#: ../../settings.rst:533 26e5bbec4ccf442eb1f2ed5850b10aab -msgid "The location to save an author." -msgstr "某一个作者的存储位置。" +#: ../../settings.rst:584 c4758a4ce8f94850ba4567250259741d +#, python-brace-format +msgid "The location to save an author. The default is ``'author/{slug}.html'``." +msgstr "作者列表的存储位置。本项配置默认为 ``'author/{slug}.html'`` 。" -#: ../../settings.rst:537 1a63d575005147a6a1f506499aea31da -msgid "The URL to use for a category." -msgstr "某一个分类的URL格式。" +#: ../../settings.rst:588 531f7328d8114d868ae245686dd1b85c +#, python-brace-format +msgid "The URL to use for a category. The default is ``'category/{slug}.html'``." +msgstr "此URL用于分类页。本项配置默认为 ``'category/{slug}.html'`` 。" -#: ../../settings.rst:541 aae69f204db3414eb520a6cf2d7b9ee0 -msgid "The location to save a category." -msgstr "某一个分类的存储位置。" +#: ../../settings.rst:592 c4758a4ce8f94850ba4567250259741d +#, python-brace-format +msgid "" +"The location to save a category. The default is " +"``'category/{slug}.html'``." +msgstr "分类列表的存储位置。本项配置默认为 ``'category/{slug}.html'`` 。" -#: ../../settings.rst:545 c248088861924e30beb1d223ec197ff5 -msgid "The URL to use for a tag." -msgstr "某一个标签的URL格式。" +#: ../../settings.rst:596 08d86196410f482e803c69d85078652a +#, python-brace-format +msgid "The URL to use for a tag. The default is ``'tag/{slug}.html'``." +msgstr "此URL用于标签页。本项配置默认为 ``'tag/{slug}.html'`` 。" -#: ../../settings.rst:549 c6f5770301c44f3abb9c105276cb9bd3 -msgid "The location to save the tag page." -msgstr "某一个标签的存储位置" +#: ../../settings.rst:600 7a7143a49149452d999c2084cc0266e6 +#, python-brace-format +msgid "The location to save the tag page. The default is ``'tag/{slug}.html'``." +msgstr "某一个标签页的存储位置。本项配置默认为 ``'tag/{slug}.html'``" -#: ../../settings.rst:553 9fc1cb3d807d407bbff78d4d3203f8c0 +#: ../../settings.rst:604 a62168ceb2d2448fbcdac62882e42d11 msgid "" "If you do not want one or more of the default pages to be created (e.g., " "you are the only author on your site and thus do not need an Authors " @@ -748,7 +864,7 @@ msgid "" "the relevant page from being generated." msgstr "如果您不希望创建默认页面(例如你是网站上的唯一作者,因此不需要作者页面),请将相应的 ``*_SAVE_AS`` 设置设置为 ``''`` 。" -#: ../../settings.rst:558 2a4afa6f1db840c69e80199d928c3e9a +#: ../../settings.rst:609 2478a8d793294eb29adacef7766119bc msgid "" "Pelican can optionally create per-year, per-month, and per-day archives " "of your posts. These secondary archives are disabled by default but are " @@ -760,7 +876,7 @@ msgstr "" "可选的,Pelican可以为帖子创建每年、每月或是每日的归档。除非你为各自的 ``*_SAVE_AS`` " "设置了格式化字符串,否则这些归档在默认情况下是关闭的。按时间进行归档更直观地符合web URL的层次模型,也可以让读者更容易按时间顺序浏览帖子。" -#: ../../settings.rst:572 973812c7673a481686350dfca8378df8 +#: ../../settings.rst:623 31eb7d472c40499eaf3bb2680388fead msgid "" "With these settings, Pelican will create an archive of all your posts for" " the year at (for instance) ``posts/2011/index.html`` and an archive of " @@ -772,7 +888,7 @@ msgstr "" "``posts/2011/Aug/index.html`` )。这两个页面分别通过 ``posts/2011/`` 和 " "``posts/2011/Aug/`` 进行访问。" -#: ../../settings.rst:578 e1e1bb5cc26a40a9a62f88ddd10c072a +#: ../../settings.rst:629 192f00bf9b4d435788b81599c48e0f66 msgid "" "Period archives work best when the final path segment is ``index.html``. " "This way a reader can remove a portion of your URL and automatically " @@ -782,37 +898,43 @@ msgstr "" "当路径设置为以 ``index.html`` " "结尾时,归档的体验会非常好。读者可以删除URL中的一部分以到达合适时间段的归档,而不需要指定某一个页面的名称。" -#: ../../settings.rst:584 4899822fdcf94a7e8edb0478260181a5 -msgid "The location to save per-year archives of your posts." -msgstr "年归档的存储位置。" +#: ../../settings.rst:635 e49118aa81654f33bb3e83703e730ab0 +msgid "" +"The location to save per-year archives of your posts. The default is " +"``''``." +msgstr "年归档的存储位置。本项配置默认为 ``''`` 。" -#: ../../settings.rst:588 eaac63d4c2aa4a0dbfe548b61008edfe +#: ../../settings.rst:639 531f7328d8114d868ae245686dd1b85c msgid "" "The URL to use for per-year archives of your posts. You should set this " -"if you enable per-year archives." -msgstr "年归档的URL格式,若想要启用年归档,请配置此项。" +"if you enable per-year archives. The default is ``''``." +msgstr "年归档的URL格式,若想要启用年归档,请配置此项。本项配置默认为 ``''`` 。" -#: ../../settings.rst:593 376c3ee871c847d7b1072ed0e29c482a -msgid "The location to save per-month archives of your posts." -msgstr "月归档的存储位置。" +#: ../../settings.rst:644 d0c7703c21d9400aa5d6ac77b56fe19e +msgid "" +"The location to save per-month archives of your posts. The default is " +"``''``." +msgstr "月归档的存储位置。本项配置默认为 ``''`` 。" -#: ../../settings.rst:597 4788e190048c48c181a8aa4b60b86535 +#: ../../settings.rst:649 b078d36e2bba494ca1c87f5902b2bd15 msgid "" "The URL to use for per-month archives of your posts. You should set this " -"if you enable per-month archives." -msgstr "月归档的URL格式,若想要启用月归档,请配置此项。" +"if you enable per-month archives. The default is ``''``." +msgstr "月归档的URL格式,若想要启用月归档,请配置此项。本项配置默认为 ``''`` 。" -#: ../../settings.rst:602 9e0023d2bb9c43d3bc7bad9bf4b5429c -msgid "The location to save per-day archives of your posts." -msgstr "日归档的存储位置。" +#: ../../settings.rst:654 f75ca583dd6249acad90cdd2417bc047 +msgid "" +"The location to save per-day archives of your posts. The default is " +"``''``." +msgstr "日归档的存储位置。本项配置默认为 ``''`` 。" -#: ../../settings.rst:606 3055e7f7b4af4e87aca8cb560dd0313c +#: ../../settings.rst:658 d4b75f03113f4e72872002cf10c3ae79 msgid "" "The URL to use for per-day archives of your posts. You should set this if" -" you enable per-day archives." -msgstr "日归档的URL格式,若想要启用日归档,请配置此项。" +" you enable per-day archives. The default is ``''``." +msgstr "日归档的URL格式,若想要启用日归档,请配置此项。本项配置默认为 ``''`` 。" -#: ../../settings.rst:609 67fdf1f1cf1a497b8c5847fb10d907e1 +#: ../../settings.rst:661 e73bb60a4c2c47ccba854a07265812dc msgid "" "``DIRECT_TEMPLATES`` work a bit differently than noted above. Only the " "``_SAVE_AS`` settings are available, but it is available for any direct " @@ -821,27 +943,33 @@ msgstr "" "``DIRECT_TEMPLATES`` 的工作方式与上面提到的有点不同,在其中可以使用一些特别的直接模板,并且仅在 ``*_SAVE_AS`` " "设置中可用。" -#: ../../settings.rst:615 ee557971709e4c8e84085295064a205e -msgid "The location to save the article archives page." -msgstr "文章归档页面的存储位置。" +#: ../../settings.rst:667 c4758a4ce8f94850ba4567250259741d +msgid "" +"The location to save the article archives page. The default is " +"``'archives.html'``." +msgstr "文章归档页面的存储位置。本项配置默认为 ``'archives.html'`` 。" -#: ../../settings.rst:619 5229274ff3514aa2b3ab5338b22cdea6 -msgid "The location to save the author list." -msgstr "作者列表的存储位置。" +#: ../../settings.rst:671 7a7143a49149452d999c2084cc0266e6 +msgid "The location to save the author list. The default is ``'authors.html'``." +msgstr "作者列表的存储位置。本项配置默认为 ``'authors.html'`` 。" -#: ../../settings.rst:623 560b6eaf36ef4975a5f7503698473e2b -msgid "The location to save the category list." -msgstr "分类列表的存储位置。" +#: ../../settings.rst:675 c4758a4ce8f94850ba4567250259741d +msgid "" +"The location to save the category list. The default is " +"``'categories.html'``." +msgstr "分类列表的存储位置。本项配置默认为 ``'categories.html'`` 。" -#: ../../settings.rst:627 048f18adc37f4693925f05373a426f26 -msgid "The location to save the tag list." -msgstr "标签列表的存储位置。" +#: ../../settings.rst:679 7a7143a49149452d999c2084cc0266e6 +msgid "The location to save the tag list. The default is ``'tags.html'``." +msgstr "标签列表的存储位置。本项配置默认为 `'tags.html'`` 。" -#: ../../settings.rst:631 ac31a8a0b68d47ed9ec65dc9b8eae2a6 -msgid "The location to save the list of all articles." -msgstr "所有文章列表的存储位置。" +#: ../../settings.rst:683 28942938054b490c8dd5ca8367d87ea9 +msgid "" +"The location to save the list of all articles. The default is " +"``'index.html'``." +msgstr "所有文章列表的存储位置。本项配置默认为 ``'index.html'`` 。" -#: ../../settings.rst:633 ceb51d0a532447099bc681ba9cce5b1d +#: ../../settings.rst:685 556bfbe4d2ab4b51815544a7ed6fa0aa msgid "" "URLs for direct template pages are theme-dependent. Some themes use " "corresponding ``*_URL`` setting as string, while others hard-code them: " @@ -851,29 +979,32 @@ msgstr "" "事实上,直接模板页面的URL是和使用的主题相关的。有些主题会使用 ``*_URL`` 作为变量字符串,而有些则是直接对这些直接模板页面进行硬编码:" " ``'archives.html'`` 、 ``'authors.html'`` 、 ``'categories.html'`` 。" -#: ../../settings.rst:640 d600dab1b91c4662833d0c5c298938b4 +#: ../../settings.rst:692 4f67c4073e084cfdbf5f58188cce97d8 msgid "" "Specifies from where you want the slug to be automatically generated. Can" " be set to ``title`` to use the \"Title:\" metadata tag or ``basename`` " -"to use the article's file name when creating the slug." +"to use the article's file name when creating the slug. The default is " +"``'title'``." msgstr "自动生成slug所依赖的内容。可以指定为元数据标签 ``title`` ,也可以使用文章源文件的文件名 ``basename`` 。" +"本项配置默认为 ``'title'`` 。" -#: ../../settings.rst:646 d274502af37648e289fd588834b0019d +#: ../../settings.rst:698 161c36590f2b40a3a4d9dab57848fba7 msgid "" "Allow Unicode characters in slugs. Set ``True`` to keep Unicode " "characters in auto-generated slugs. Otherwise, Unicode characters will be" -" replaced with ASCII equivalents." +" replaced with ASCII equivalents. The default is ``False``." msgstr "" "指定是否允许在slug中使用Unicode字符。若设为 ``True`` " -",自动生成的slug中会保留Unicode字符;否则Unicode字符会使用含义相同的ASCII替换。" +",自动生成的slug中会保留Unicode字符;否则Unicode字符会使用含义相同的ASCII替换。本项配置默认为 ``False`` 。" -#: ../../settings.rst:652 37cddacc30bc430b9ea1bad479e90f3d +#: ../../settings.rst:704 771258d986ef4e46b80e1ee043e3a377 msgid "" "Preserve uppercase characters in slugs. Set ``True`` to keep uppercase " -"characters from ``SLUGIFY_SOURCE`` as-is." +"characters from ``SLUGIFY_SOURCE`` as-is. The default is ``False``." msgstr "指定是否保留slug中的大写字母。若设为 ``True`` ,则会原样保留 ``SLUGIFY_SOURCE`` 中的大写字母。" +"本项配置默认为 ``False`` 。" -#: ../../settings.rst:662 785ff8b6508b4e6e980ae6638e7346f9 +#: ../../settings.rst:709 ea3e23a38ffe465e8fef398b69940b87 msgid "" "Regex substitutions to make when generating slugs of articles and pages. " "Specified as a list of pairs of ``(from, to)`` which are applied in " @@ -881,78 +1012,81 @@ msgid "" "removing non-alphanumeric characters and converting internal whitespace " "to dashes. Apart from these substitutions, slugs are always converted to " "lowercase ascii characters and leading and trailing whitespace is " -"stripped. Useful for backward compatibility with existing URLs." +"stripped. Useful for backward compatibility with existing URLs. The " +"default is::" msgstr "" "指定生成文章和页面slug时要进行的正则表达式替换。指定的是一对对 ``(from, to)`` " "(from为要替换的内容,to为替换进去的内容),列表中的各对替换规则是按序执行且忽略大小写的。默认的替换会删除非字母非数字的字符并将内部空格替换为连字符。除此之外,slug会将所有字符转换为小写ASCII字符,并删除所有前导和末尾空格。这有利于现有URL的向后兼容。" +"本项配置默认如下:" -#: ../../settings.rst:672 f2ddbe0d79124ce2b0b9390f9c1492e9 +#: ../../settings.rst:726 4ed665fd61124d7199e5d3a336a6490e msgid "" -"Regex substitutions for author slugs. Defaults to " +"Regex substitutions for author slugs. The default is " "``SLUG_REGEX_SUBSTITUTIONS``." msgstr "针对作者slug的正则替换。默认等于 ``SLUG_REGEX_SUBSTITUTIONS`` 。" -#: ../../settings.rst:677 68c5594a14544fe9bed90cdfb41f25c4 +#: ../../settings.rst:731 9ec67c2063eb4bc5a47a0cbcd68f4e7d msgid "" -"Regex substitutions for category slugs. Defaults to " +"Regex substitutions for category slugs. The default is " "``SLUG_REGEX_SUBSTITUTIONS``." msgstr "针对分类slug的正则替换。默认等于 ``SLUG_REGEX_SUBSTITUTIONS`` 。" -#: ../../settings.rst:682 3dd263d38e47445c88d34a790e919053 +#: ../../settings.rst:736 04708135895649fd8e9fabc003c0219f msgid "" -"Regex substitutions for tag slugs. Defaults to " +"Regex substitutions for tag slugs. The default is " "``SLUG_REGEX_SUBSTITUTIONS``." msgstr "针对标签slug的正则替换。默认等于 ``SLUG_REGEX_SUBSTITUTIONS`` 。" -#: ../../settings.rst:685 21a264926d3b46edb2af35f936d0985a +#: ../../settings.rst:740 e38808bbec234497a9349626bf5b3e96 msgid "Time and Date" msgstr "日期与时间" -#: ../../settings.rst:689 ef50be008f104aa6bcbf2df6a81921e8 +#: ../../settings.rst:744 26e96055ea16439caae61e79c2f1a7b6 msgid "The timezone used in the date information, to generate Atom and RSS feeds." msgstr "日期信息中使用的时区,会用于生成Atom和RSS feeds。(无默认值,必须手动设置指定)" -#: ../../settings.rst:691 9ec4050abc58489db63deda401d80b7d +#: ../../settings.rst:746 0d1bac8219e34ecea81f4733a13ee33a msgid "" "If no timezone is defined, UTC is assumed. This means that the generated " "Atom and RSS feeds will contain incorrect date information if your locale" " is not UTC." msgstr "若没有定义时区,会直接使用UTC时区。这意味着当你的时区不等于UTC时,生成的Atom和RSS feeds中会包含错误的日期信息。" -#: ../../settings.rst:695 8797378878dc47e99388e1d0421da263 +#: ../../settings.rst:750 e2439055d3b7422fab3a3ba41d07ce62 msgid "" "Pelican issues a warning in case this setting is not defined, as it was " "not mandatory in previous versions." msgstr "在之前的版本中,这一项设置并不是强制的,因此Pelican会在未设置时区时提出警告。" -#: ../../settings.rst:698 18326d528d0045c88c8e31d0f9bb26f9 +#: ../../settings.rst:753 6cf83583c26d42108c10f9f23a512db3 msgid "" "Have a look at `the wikipedia page`_ to get a list of valid timezone " "values." msgstr "有效的时区设置值可以在 `维基百科页`_ 中查看。" -#: ../../settings.rst:704 3af0a717e34c4926a40fc6cd58518df2 +#: ../../settings.rst:759 5e31086101004bde84dc96efa1967666 msgid "" "The default date you want to use. If ``'fs'``, Pelican will use the file" " system timestamp information (mtime) if it can't get date information " "from the metadata. If given any other string, it will be parsed by the " "same method as article metadata. If set to a tuple object, the default " "datetime object will instead be generated by passing the tuple to the " -"``datetime.datetime`` constructor." +"``datetime.datetime`` constructor. The default is ``None``." msgstr "" "要使用的默认日期。若设为 ``'fs'`` " ",Pelican在无法从元数据中获取日期时,会以系统时间戳信息(mtime)为准;若设为其他字符串,Pelican将用与解析文章元数据相同的方法进行解析;若设为元组,则会将该元组传递给" -" ``datetime.datetime`` 的构造函数来生成日期。" +" ``datetime.datetime`` 的构造函数来生成日期。本项配置默认为 ``None`` 。" -#: ../../settings.rst:713 e8358468fd034f24a7984b20909ada30 -msgid "The default date format you want to use." -msgstr "指定要使用的默认日期格式。" +#: ../../settings.rst:768 27cab75cf2344a8c8d1573700e1f35ca +#, python-format +msgid "The default date format you want to use. The default is ``'%a %d %B %Y'``." +msgstr "指定要使用的默认日期格式。本项配置默认为 ``'%a %d %B %Y'`` 。" -#: ../../settings.rst:717 e7f8237ab45945d78484e8fef0005bdc +#: ../../settings.rst:772 fcf723cc20f544e6a43339335ba86558 msgid "If you manage multiple languages, you can set the date formatting here." msgstr "若需要管理多种语言,可以在这里针对不同语言设置不同的日期格式。" -#: ../../settings.rst:719 eab2352e48174cb085b7bd23115ad15b +#: ../../settings.rst:774 d11fdb2b3aaa47b7993a38e4d5603e12 msgid "" "If no ``DATE_FORMATS`` are set, Pelican will fall back to " "``DEFAULT_DATE_FORMAT``. If you need to maintain multiple languages with " @@ -962,7 +1096,7 @@ msgstr "" "如果 ``DATE_FORMATS`` 没有设置过,Pelican会使用 ``DEFAULT_DATE_FORMAT`` " "。如果要为不同语言设置不同如期格式,可以在此设置项字典中指定,键为语言名称(对应于帖子内容元数据中的 ``lang`` ),值为日期格式字符串。" -#: ../../settings.rst:724 2f8d1e03399549bf84a05e25d718ec80 +#: ../../settings.rst:779 c63c2ef9276b496bac1067b956c93819 #, python-format msgid "" "In addition to the standard C89 strftime format codes that are listed in " @@ -975,65 +1109,63 @@ msgstr "" "``-`` 来删除日期中的前导零。例如 ``%d/%m/%Y`` 对应输出 ``01/01/2014`` ,而 ``%-d/%-m/%Y`` " "对应输出 ``1/1/2014`` 。" -#: ../../settings.rst:737 28f1a04cc72943b8bbb45b0f05039e6b +#: ../../settings.rst:792 f1cb8ed02da747fdb9556138744cb6b4 msgid "" "It is also possible to set different locale settings for each language by" " using a ``(locale, format)`` tuple as a dictionary value which will " "override the ``LOCALE`` setting:" msgstr "你还能够通过将元组 ``(locale, format)`` 作为值,来为每种语言指定地区,此处设置的地区会覆盖 ``LOCALE`` 设置:" -#: ../../settings.rst:757 0edf14c3edcf41aba562d74822a9f1f5 +#: ../../settings.rst:814 81db232f575b4d4194222e5afb0d141a msgid "" -"Change the locale [#]_. A list of locales can be provided here or a " -"single string representing one locale. When providing a list, all the " -"locales will be tried until one works." -msgstr "设置地区 [#]_ 。可以同时指定多个地区,也可以使用字符串指定单个地区。当设置了多个地区时,会一个个尝试直到某一个可以使用。" +"Change the locale. A list of locales can be provided here or a single " +"string representing one locale. When providing a list, all the locales " +"will be tried until one works." +msgstr "设置地区。可以同时指定多个地区,也可以使用字符串指定单个地区。当设置了多个地区时,会一个个尝试直到某一个可以使用。" -#: ../../settings.rst:761 26b26ebd973b40fd973a9252fe24173c +#: ../../settings.rst:818 d3630c9f75e145a98dd5746f4ca54ae4 msgid "You can set locale to further control date format:" msgstr "通过设置地区进一步控制日期格式:" -#: ../../settings.rst:769 e0056e0a853f4891b87e3b2f66af9ab9 +#: ../../settings.rst:826 feb0efa8a8a648648634ef896509879b msgid "" "For a list of available locales refer to `locales on Windows`_ or on " "Unix/Linux, use the ``locale -a`` command; see manpage `locale(1)`_ for " -"more information." +"more information. The default is the system locale." msgstr "" "要查看可用的地区列表,可以参看 `Windows上的地区`_ ;若使用的时Unix/Linux系统, 使用 ``locale -a`` " -"命令即可,有关该命令的更多信息可以参阅手册 `locale(1)`_ 。" +"命令即可,有关该命令的更多信息可以参阅手册 `locale(1)`_ 。本项配置默认与系统locale保持一致。" -#: ../../settings.rst:774 ac7d9e8b711e438e9a80a31274d1fa11 -msgid "Default is the system locale." -msgstr "默认值与系统的地区设置保持一致。" - -#: ../../settings.rst:788 39a1ce7f77994c1ca37792f44b4297ee +#: ../../settings.rst:843 15067988a9f64c23ac30113f261c932f msgid "Template pages" msgstr "模板页面" -#: ../../settings.rst:792 fb2c9cf72b3946828619ecb6051abd0b +#: ../../settings.rst:847 1e8e76f577b44f389d546bebe897b0a4 msgid "" "A mapping containing template pages that will be rendered with the blog " "entries." msgstr "一些映射关系,指出了会和博客一起渲染的模板页面。" -#: ../../settings.rst:795 f8163db87b30489fa6067f58d395cee1 +#: ../../settings.rst:850 97158dd7cf984420b72d4fe184f613f3 msgid "" "If you want to generate custom pages besides your blog entries, you can " "point any Jinja2 template file with a path pointing to the file and the " "destination path for the generated file." msgstr "如果你想要生成除了博客之外的自定义页面,你可以指出任何Jinja2的模板文件,需要同时指出源文件路径和生成文件的路径。" -#: ../../settings.rst:799 ef26f9eaad274b969a0ae1183e7ac0c8 +#: ../../settings.rst:854 3bab3b6570c044c3a507687ebd136988 msgid "" "For instance, if you have a blog with three static pages — a list of " "books, your resume, and a contact page — you could have::" msgstr "例如,如果你的博客有三个静态页面——书籍列表、你的简历、以及一个联系我们页面,你可这么配置:" -#: ../../settings.rst:808 2c8a293e4d77423db215de89aa20ca5c -msgid "The extensions to use when looking up template files from template names." -msgstr "指定要查找并视为模板文件的文件扩展名。" +#: ../../settings.rst:865 c1a40d40e5b34bc49b138e87baf1dd09 +msgid "" +"The extensions to use when looking up template files from template names." +" The default is ``['.html']``." +msgstr "指定要查找并视为模板文件的文件扩展名。本项配置默认为 ``['.html']`` 。" -#: ../../settings.rst:812 101a0198fc6249b3adea735ff522b9b1 +#: ../../settings.rst:870 ad976b56f784425380d5ca5095c83bad msgid "" "List of templates that are used directly to render content. Typically " "direct templates are used to generate index pages for collections of " @@ -1044,46 +1176,58 @@ msgstr "" "指定用于直接渲染内容的模板列表。一般来说直接模板会用于生成内容集合的主页(例如分类和标签的主页)。如果不需要作者、分类或者标签集合,可以设置 " "``DIRECT_TEMPLATES = ['index', archives']`` 。" -#: ../../settings.rst:817 c5952388671a4fab8095d4a9b596905f +#: ../../settings.rst:875 f545160f96c34ac9b9218b8cb88c2bab msgid "" "``DIRECT_TEMPLATES`` are searched for over paths maintained in " "``THEME_TEMPLATES_OVERRIDES``." msgstr "``DIRECT_TEMPLATES`` 会在 ``THEME_TEMPLATES_OVERRIDES`` 的路径中搜索。" -#: ../../settings.rst:822 8c4e0bfebc60422cbcb852f17e53fbeb +#: ../../settings.rst:878 57441857f4a146568ebfdb358c6647e5 +msgid "The default is ``['index', 'tags', 'categories', 'authors', 'archives']``." +msgstr "默认为 ``['index', 'tags', 'categories', 'authors', 'archives']`` 。" + +#: ../../settings.rst:881 e5b9ac921eba40d7961d58d716d285ff msgid "Metadata" msgstr "元数据" -#: ../../settings.rst:826 5d3ac5fa0fe94d0faf3603d032152259 -msgid "Default author (usually your name)." -msgstr "默认作者(通常是你自己的名字)。" +#: ../../settings.rst:885 983b827b2d9e4162ac78b6659e73f99f +msgid "" +"Default author (usually your name). The default is ``None``, which " +"removes the byline." +msgstr "默认作者(通常是你自己)。本项配置默认为 ``None`` ,此时会删除作者名一行。" -#: ../../settings.rst:830 bd855c810143419b97250e11fe9db428 -msgid "The default metadata you want to use for all articles and pages." -msgstr "应用于所有文章和页面的默认元数据。" +#: ../../settings.rst:889 27cab75cf2344a8c8d1573700e1f35ca +#, python-brace-format +msgid "" +"The default metadata you want to use for all articles and pages. The " +"default is ``{}``." +msgstr "应用于所有文章和页面的默认元数据。本项配置默认为 ``{}`` 。" -#: ../../settings.rst:834 b9b192605075405ba1b89c817db323e5 +#: ../../settings.rst:894 f322adf782eb45b6b261a51befce0b7b msgid "" "The regexp that will be used to extract any metadata from the filename. " "All named groups that are matched will be set in the metadata object. " "The default value will only extract the date from the filename." msgstr "指定用于从文件名中提取元数据的正则表达式。所有匹配上的命名匹配组都会用于设置元数据。默认值会从文件名中提取日期。" -#: ../../settings.rst:838 f5730036a8ad4bdbbc7250201e97d4b3 +#: ../../settings.rst:898 b14cef00e4d74cf1aafa83f8adc7ff22 msgid "For example, to extract both the date and the slug::" msgstr "例如,可以同时提取日期和slug:" -#: ../../settings.rst:842 bfcc4210a493460a954dfb5d96f57462 -msgid "See also ``SLUGIFY_SOURCE``." -msgstr "另请参看 ``SLUGIFY_SOURCE`` 。" +#: ../../settings.rst:902 6f0fe6e9f1634fa281d42a4db9c7df83 +#, python-brace-format +msgid "" +"See also ``SLUGIFY_SOURCE``. The default is " +"``r'(?P\\d{4}-\\d{2}-\\d{2}).*'``." +msgstr "参考 ``SLUGIFY_SOURCE`` 。本项配置默认为 ``r'(?P\\d{4}-\\d{2}-\\d{2}).*'`` 。" -#: ../../settings.rst:846 1bc373d7947b4c9181fd54d01409eb06 +#: ../../settings.rst:906 6868648226c841849965cfc4a8f8a0fb msgid "" "Like ``FILENAME_METADATA``, but parsed from a page's full path relative " -"to the content source directory." -msgstr "和 ``FILENAME_METADATA`` 类似,但提取解析的对象是相对于内容源文件目录的路径。" +"to the content source directory. The default is ``''``." +msgstr "和 ``FILENAME_METADATA`` 类似,但解析时的路径是相对于内容源文件所在目录的。本项配置默认为 ``''`` 。" -#: ../../settings.rst:851 b02a8c4b99204d92b9d6625f79c27c89 +#: ../../settings.rst:911 52089bec13c64713a256032ed4f894ef msgid "" "Extra metadata dictionaries keyed by relative path. Relative paths " "require correct OS-specific directory separators (i.e. / in UNIX and \\\\" @@ -1092,7 +1236,7 @@ msgid "" "conflicts." msgstr "指定要从相对路径提取的额外元数据字典。与Pelican的其他设置文件不同,此项设置需要正确使用和操作系统对应的目录分隔符(Unix中使用/,Windows中使用\\\\)。若对一个目录设置了规则,该规则会作用于该目录下所有文件。当有多个路径相互冲突时,Pelican会选用更为具体的路径。" -#: ../../settings.rst:856 d8ceeec6c7e14be3a79c73db2472a7cb +#: ../../settings.rst:916 375cc26258cd4030a2e1743220b331db msgid "" "Not all metadata needs to be :ref:`embedded in source file itself " "`. For example, blog posts are often named following a" @@ -1109,23 +1253,23 @@ msgstr "" "``(?P…)`` 。当你需要为帖子附加一些额外的元数据,但不想将其编码在文件路径中时,就可以在 " "``EXTRA_PATH_METADATA`` 中设置:" -#: ../../settings.rst:877 3c7085d581f74cba8b5b7be5451d0dd0 +#: ../../settings.rst:937 43d9707ff47e488dba64d7d1d23cbc4a msgid "" "This can be a convenient way to shift the installed location of a " "particular file:" msgstr "通过这个设置项,很方便就可以转移特定文件的位置:" -#: ../../settings.rst:897 62d0261aa15a42a486691e7d615f58c7 +#: ../../settings.rst:959 ef39cc18199a44b895748dfe9c46a07c msgid "Feed settings" msgstr "订阅源设置" -#: ../../settings.rst:899 e06e3b6cd4e34d9990e28f533c70916b +#: ../../settings.rst:961 8c7bb16134c24af5b49a9e63b6ff36f8 msgid "" "By default, Pelican uses Atom feeds. However, it is also possible to use " "RSS feeds if you prefer." msgstr "默认情况下,Pelican会使用Atom订阅源。但如果你愿意的话,也可以使用RSS。" -#: ../../settings.rst:902 8a0de4febfd34d9eb1cdcc74d4c02198 +#: ../../settings.rst:964 a20b5eb7bea54cde84cfde3380cc9c86 msgid "" "Pelican generates category feeds as well as feeds for all your articles. " "It does not generate feeds for tags by default, but it is possible to do " @@ -1134,171 +1278,200 @@ msgstr "" "Pelican会生成分类的feed,也会为所有文章生成,但默认并不会为标签生成feed,要生成标签feed,可以使用 " "``TAG_FEED_ATOM`` 和 ``TAG_FEED_RSS`` 设置:" -#: ../../settings.rst:908 e1d650d03db342a09b22e34ff11b9365 +#: ../../settings.rst:970 1ffaa4be4dae4481b80eff1b8191f366 msgid "" "The domain prepended to feed URLs. Since feed URLs should always be " "absolute, it is highly recommended to define this (e.g., " "\"https://feeds.example.com\"). If you have already explicitly defined " "SITEURL (see above) and want to use the same domain for your feeds, you " -"can just set: ``FEED_DOMAIN = SITEURL``." +"can just set: ``FEED_DOMAIN = SITEURL``. The default is ``None``, which " +"uses the base URL \"/\"." msgstr "" -"指定要附加到订阅源URL前面的域名。因为订阅源URL最好是绝对的,所以强烈推荐定义此设置项(例如 " +"指定要附加到订阅源URL前面的域名。因为订阅源URL应该是绝对的,所以强烈推荐定义此设置项(例如 " "https://feeds.example.com )。若SITEURL已经显式地定义了,并且希望使用相同地URL,就可以直接设置 " -"``FEED_DOMAIN = SITEURL`` 。" +"``FEED_DOMAIN = SITEURL`` 。本项配置默认为 ``None`` ,即使用基础URL \"/\" 。" -#: ../../settings.rst:916 f3bc5a60dab54c2ab52f99f81b743102 -msgid "The location to save the Atom feed." -msgstr "指定保存Atom订阅源的位置。" +#: ../../settings.rst:979 7a7143a49149452d999c2084cc0266e6 +msgid "" +"The location to save the Atom feed. The default is ``None``, for no Atom " +"feed." +msgstr "指定Atom订阅源的存储位置。本项配置默认为 ``None`` ,即不使用Atom订阅源。" -#: ../../settings.rst:920 4145c00c2347484fa37f4387283e0fb6 +#: ../../settings.rst:984 2fd2426a582247f8a375940ecbd0f96a msgid "" "Relative URL of the Atom feed. If not set, ``FEED_ATOM`` is used both for" -" save location and URL." +" save location and URL. The default is ``None``." msgstr "Atom订阅源的相对URL。如果未设置此项,会将 ``FEED_ATOM`` 同时用于存储位置和URL。" +"本项配置默认为 ``None`` 。" -#: ../../settings.rst:925 579cd1112ba44be7b82c77050af3a256 -msgid "The location to save the RSS feed." -msgstr "指定保存RSS订阅源的位置。" +#: ../../settings.rst:989 c4758a4ce8f94850ba4567250259741d +msgid "" +"The location to save the RSS feed. The default is ``None``, for no RSS " +"feed." +msgstr "RSS订阅源的存储位置。本项配置默认为 ``None`` ,即不使用RSS订阅源。" -#: ../../settings.rst:929 5fdb4ce14c0a454381db194885b088f2 +#: ../../settings.rst:993 737caf1d58854aa3b86820243fc80403 msgid "" "Relative URL of the RSS feed. If not set, ``FEED_RSS`` is used both for " -"save location and URL." -msgstr "RSS订阅源的相对URL。如果未设置此项,会将 ``FEED_RSS`` 同时用于存储位置和URL。" +"save location and URL. The default is ``None``." +msgstr "RSS订阅源的相对URL。如果未设置此项,会将 ``FEED_RSS`` 同时用于存储位置和URL。本项配置默认为 ``None`` 。" -#: ../../settings.rst:934 91bd81a74c234968a27e4b61924273f5 +#: ../../settings.rst:998 28942938054b490c8dd5ca8367d87ea9 msgid "" "The location to save the all-posts Atom feed: this feed will contain all " -"posts regardless of their language." -msgstr "存储all-posts Atom订阅源的文件位置:其中会包含所有语言的帖子。" +"posts regardless of their language. The default is " +"``'feeds/all.atom.xml'``." +msgstr "存储all-posts Atom订阅源的文件位置:其中会包含所有语言的帖子。本项配置默认为 ``'feeds/all.atom.xml'`` 。" -#: ../../settings.rst:939 62aceff0073b48eeb8929f102bfad7e4 +#: ../../settings.rst:1003 f4e7fbd9297743ccaadafa11c7cfb1e1 msgid "" "Relative URL of the all-posts Atom feed. If not set, ``FEED_ALL_ATOM`` is" -" used both for save location and URL." +" used both for save location and URL. The default is ``None``." msgstr "all-posts Atom订阅源的相对URL。如果未设置此项,会将 ``FEED_ALL_ATOM`` 同时用于存储位置和URL。" +"本项配置默认为 ``None`` 。" -#: ../../settings.rst:944 3b9f640128e84a4a96e696a830e3a8cd +#: ../../settings.rst:1008 eaacfd07bdb94dd2a9c6792a1f036807 msgid "" "The location to save the the all-posts RSS feed: this feed will contain " -"all posts regardless of their language." -msgstr "存储all-posts RSS订阅源的文件位置:其中会包含所有语言的帖子。" +"all posts regardless of their language. The default is ``None``, for no " +"all-posts RSS feed." +msgstr "存储all-posts RSS订阅源的文件位置:其中会包含所有语言的帖子。本项配置默认为 ``None`` ,即不使用all-posts RSS订阅源。" -#: ../../settings.rst:949 2b80018af24945ac949377bb01f4d699 +#: ../../settings.rst:1014 fe17f05439064eea8fb3dad8255cd467 msgid "" "Relative URL of the all-posts RSS feed. If not set, ``FEED_ALL_RSS`` is " -"used both for save location and URL." -msgstr "all-posts RSS订阅源的相对URL。如果未设置此项,会将 ``FEED_ALL_RSS`` 同时用于存储位置和URL。" +"used both for save location and URL. The default is ``None``." +msgstr "all-posts RSS订阅源的相对URL。如果未设置此项,会将 ``FEED_ALL_RSS`` 同时用于存储位置和URL。本项配置默认为 ``None`` 。" -#: ../../settings.rst:954 c00dc056edc64aafb33bafad947364db -msgid "The location to save the category Atom feeds. [2]_" -msgstr "category Atom订阅源的存储位置。 [2]_" +#: ../../settings.rst:1019 c4758a4ce8f94850ba4567250259741d +#, python-brace-format +msgid "" +"The location to save the category Atom feeds. [2]_ The default is " +"``'feeds/{slug}.atom.xml'``." +msgstr "category Atom订阅源的存储位置。 [2]_ 本项配置默认为 ``'feeds/{slug}.atom.xml'`` 。" -#: ../../settings.rst:958 fb8c09a3eb844121b05c5a067d616a42 +#: ../../settings.rst:1024 d31bcd45f3ee47e4a316ac3f765c527d +#, python-brace-format msgid "" "Relative URL of the category Atom feeds, including the ``{slug}`` " "placeholder. [2]_ If not set, ``CATEGORY_FEED_ATOM`` is used both for " -"save location and URL." +"save location and URL. The default is ``None``." msgstr "" "category Atom订阅源的相对URL,其中包含 ``{slug}`` 。 [2]_ 如果未设置, 会将 " -"``CATEGORY_FEED_ATOM`` 同时用于存储位置和URL。" +"``CATEGORY_FEED_ATOM`` 同时用于存储位置和URL。本项配置默认为 ``None`` 。" -#: ../../settings.rst:964 bd0dba597ed44c0ab95df015d13fb42f +#: ../../settings.rst:1030 fabfac75a52f48029a8147f62289c252 +#, python-brace-format msgid "" "The location to save the category RSS feeds, including the ``{slug}`` " -"placeholder. [2]_" -msgstr "category RSS订阅源的存储位置,其中包含 ``{slug}`` 。 [2]_" +"placeholder. [2]_ The default is ``None``, for no RSS feed." +msgstr "category RSS订阅源的存储位置,其中包含 ``{slug}`` 。 [2]_ 本项配置默认为 ``None`` ,即不使用RSS订阅源。" -#: ../../settings.rst:969 5e06453a1300407188c78eceadcabef1 +#: ../../settings.rst:1035 fabfac75a52f48029a8147f62289c252 +#, python-brace-format msgid "" "Relative URL of the category RSS feeds, including the ``{slug}`` " "placeholder. [2]_ If not set, ``CATEGORY_FEED_RSS`` is used both for save" -" location and URL." +" location and URL. The default is ``None``." msgstr "" "category RSS订阅源的相对URL,其中包含 ``{slug}`` 。 [2]_ 如果未设置, 会将 " -"``CATEGORY_FEED_RSS`` 同时用于存储位置和URL。" +"``CATEGORY_FEED_RSS`` 同时用于存储位置和URL。本项配置默认为 ``None`` 。" -#: ../../settings.rst:975 1ad2208106b5492cbc0bb0fc6b6d2eef -msgid "The location to save the author Atom feeds. [2]_" -msgstr "category Atom订阅源的存储位置,其中包含 ``{slug}`` 。 [2]_" +#: ../../settings.rst:1041 28942938054b490c8dd5ca8367d87ea9 +#, python-brace-format +msgid "" +"The location to save the author Atom feeds. [2]_ The default is " +"``'feeds/{slug}.atom.xml'``." +msgstr "author Atom订阅源的存储位置,其中包含 ``{slug}`` 。 [2]_ 本项配置默认为 ``'feeds/{slug}.atom.xml'`` 。" -#: ../../settings.rst:979 069eb238b2d6458eac8fc200c12aa6fd +#: ../../settings.rst:1046 fde52f62d95a4bad85a5a1b49eed6170 +#, python-brace-format msgid "" "Relative URL of the author Atom feeds, including the ``{slug}`` " "placeholder. [2]_ If not set, ``AUTHOR_FEED_ATOM`` is used both for save " -"location and URL." +"location and URL. The default is ``None`` (not set)." msgstr "" "author Atom订阅源的相对URL,其中包含 ``{slug}`` 。 [2]_ 如果未设置, 会将 " -"``AUTHOR_FEED_ATOM`` 同时用于存储位置和URL。" +"``AUTHOR_FEED_ATOM`` 同时用于存储位置和URL。本项配置默认为 ``None`` ,即不使用。" -#: ../../settings.rst:985 0b5a562410eb47c5a47a31a852973974 -msgid "The location to save the author RSS feeds. [2]_" -msgstr "author RSS订阅源的存储位置,其中包含 ``{slug}`` 。 [2]_" +#: ../../settings.rst:1052 c4758a4ce8f94850ba4567250259741d +#, python-brace-format +msgid "" +"The location to save the author RSS feeds. [2]_ The default is " +"``'feeds/{slug}.rss.xml'``." +msgstr "author RSS订阅源的存储位置。 [2]_ 本项配置默认为 ``'feeds/{slug}.rss.xml'`` 。" -#: ../../settings.rst:989 c1964676a205466fb2a835e99bc00885 +#: ../../settings.rst:1057 367ef87d541c45ffaf65e8d8b1469f1a +#, python-brace-format msgid "" "Relative URL of the author RSS feeds, including the ``{slug}`` " "placeholder. [2]_ If not set, ``AUTHOR_FEED_RSS`` is used both for save " -"location and URL." +"location and URL. The default is ``None``." msgstr "" "author RSS订阅源的相对URL,其中包含 ``{slug}`` 。 [2]_ 如果未设置, 会将 ``AUTHOR_FEED_RSS`` " -"同时用于存储位置和URL。" +"同时用于存储位置和URL。本项配置默认为 ``None`` 。" -#: ../../settings.rst:994 2242bd16e270495eba740e72964d840d +#: ../../settings.rst:1063 b1159e07c8184831b6dcfd308cd23439 +#, python-brace-format msgid "" "The location to save the tag Atom feed, including the ``{slug}`` " -"placeholder. [2]_" -msgstr "tag Atom订阅源的存储位置,其中包含 ``{slug}`` 。 [2]_" +"placeholder. [2]_ The default is ``None``, for no tag feed." +msgstr "tag Atom订阅源的存储位置,其中包含 ``{slug}`` 。 [2]_ 本项配置默认为 ``None`` ,即不使用tag feed。" -#: ../../settings.rst:999 2f69bb73cef343b48f09ead8fd268d26 +#: ../../settings.rst:1068 d744ca82b48d4e9298f2ca19252aedec +#, python-brace-format msgid "" "Relative URL of the tag Atom feed, including the ``{slug}`` placeholder. " -"[2]_" -msgstr "tag Atom订阅源的相对URL,其中包含 ``{slug}`` 。 [2]_" +"[2]_ The default is ``None``." +msgstr "tag Atom订阅源的相对URL,其中包含 ``{slug}`` 。 [2]_ 本项配置默认为 ``None`` 。" -#: ../../settings.rst:1004 059a551f316c4d7e99b43a4d6e999c43 +#: ../../settings.rst:1073 b1159e07c8184831b6dcfd308cd23439 +#, python-brace-format msgid "" "Relative URL to output the tag RSS feed, including the ``{slug}`` " "placeholder. If not set, ``TAG_FEED_RSS`` is used both for save location " -"and URL." +"and URL. The default is ``None``, for no tag feed." msgstr "tag RSS订阅源的相对URL,其中包含 ``{slug}`` 。如果未设置,会将 ``TAG_FEED_RSS`` 同时用于存储位置和URL。" +"本项配置默认为 ``None`` ,即不使用tag feed。" -#: ../../settings.rst:1010 ba1909bb43f7468ab36384a33e9f0d35 +#: ../../settings.rst:1079 c8f29653c4f3423b8dec9905fa1de6f2 msgid "" "Maximum number of items allowed in a feed. Setting to ``None`` will cause" -" the feed to contains every article. 100 if not specified." +" the feed to contains every article. 100 if not specified. The default is" +" ``100``." msgstr "单个订阅源中允许包含的最多元素数量。若设为 ``None`` 表示不做上限;若不指定,默认上限为100。" -#: ../../settings.rst:1015 ee56a7f7761e4badb24ddd0771b9bcaa +#: ../../settings.rst:1084 27393055cbb846bba21699d9a59502c2 msgid "" "Only include item summaries in the ``description`` tag of RSS feeds. If " "set to ``False``, the full content will be included instead. This setting" -" doesn't affect Atom feeds, only RSS ones." +" doesn't affect Atom feeds, only RSS ones. The default is ``True``." msgstr "" "仅在RSS订阅源的 ``description`` 标签中包含项目摘要。若设为 ``False`` ,则将包含完整内容。此项设置不会影响Atom " -"feed,只针对RSS feed。" +"feed,只针对RSS feed。本项配置默认为 ``True`` 。" -#: ../../settings.rst:1021 d34b3c9cf9c643559e8f1bd58b4d4d9e +#: ../../settings.rst:1090 2c53416e07e34cc9998718fc5e82cc12 msgid "" "If set to ``True``, ``?ref=feed`` will be appended to links in generated " -"feeds for the purpose of referrer tracking." -msgstr "若设为 ``True`` ,会将 ``?ref=feed`` 附到生成的链接中,以便追踪引用。" +"feeds for the purpose of referrer tracking. The default is ``False``." +msgstr "若设为 ``True`` ,会将 ``?ref=feed`` 附到生成的链接中,以便追踪引用。本项配置默认为 ``False`` 。" -#: ../../settings.rst:1024 67aa494bb5c846eeac10b91d633fbeb1 +#: ../../settings.rst:1093 7f647c4c65494b93bb6d1c3ef4b39af6 msgid "" "If you don't want to generate some or any of these feeds, set the above " "variables to ``None``." msgstr "若你不想要生成某些订阅源,将对应变量设为 ``None`` 即可。" -#: ../../settings.rst:1027 e281a7a6d60d4362a56364ea4e7c2ed4 +#: ../../settings.rst:1096 372a88d4b1044ba491c1547e90014c73 +#, python-brace-format msgid "``{slug}`` is replaced by name of the category / author / tag." msgstr "``{slug}`` 会分别用分类名/作者名/标签名来替换。" -#: ../../settings.rst:1031 f1101bee785f48fb8745c1cbed7ccb5c +#: ../../settings.rst:1100 9913cc3370754eda888a2594a73ce4da msgid "Pagination" msgstr "分页" -#: ../../settings.rst:1033 9d8deaf84be143aa919bae8458e256a5 +#: ../../settings.rst:1102 caf94bfd47344208a34f6b10225646a1 msgid "" "The default behaviour of Pelican is to list all the article titles along " "with a short description on the index page. While this works well for " @@ -1306,38 +1479,46 @@ msgid "" "probably benefit from paginating this list." msgstr "默认情况下,Pelican会把所有文章以简短描述的形式展示在首页上。虽然这对中小型网站效果不错,但对于拥有大量文章的网站来说可能需要将此列表进行分页。" -#: ../../settings.rst:1038 8315da9ec0d64ffb881d0dfa6f25590e +#: ../../settings.rst:1107 2667020362fe4d23a84b1d25b24863c3 msgid "You can use the following settings to configure the pagination." msgstr "你可以使用下面的设置来配置分页。" -#: ../../settings.rst:1042 9a56cc2f10634c34980a6868c4988e43 +#: ../../settings.rst:1111 656911c7bc2145b0bd1ff10d5373d7dc msgid "" "The minimum number of articles allowed on the last page. Use this when " -"you don't want the last page to only contain a handful of articles." +"you don't want the last page to only contain a handful of articles. The " +"default is ``0``." msgstr "最后一页允许的最小文章数。当不希望最后一页仅包含少数文章时,请使用此选项。(译者注:当最后一页达不到此最小文章数时,会被合并到前一页)" +"本项配置默认为 ``0`` 。" -#: ../../settings.rst:1047 f3d093d68890442abfda1dea23eb25ed +#: ../../settings.rst:1117 030af02515a84a13925108ab06457c0b msgid "" "The maximum number of articles to include on a page, not including " -"orphans. False to disable pagination." +"orphans. False to disable pagination. The default is ``False``." msgstr "一个页面上包含的最大文章数,不包括孤立文章(译者注:当发生上一条设置选项中提到的合并时,最后一页显然会超过此最大文章数)。设为False会禁用分页。" +"本项配置默认为 ``False`` 。" -#: ../../settings.rst:1052 df3fe4f1806f4a16b2a9fdd11cc50aa2 +#: ../../settings.rst:1122 478c5db91b16485b81ea4523ae70b6f1 +#, python-brace-format msgid "" "The templates to use pagination with, and the number of articles to " "include on a page. If this value is ``None``, it defaults to " -"``DEFAULT_PAGINATION``." +"``DEFAULT_PAGINATION``. The default is ``{'index': None, 'tag': None, " +"'category': None, 'author': None}``." msgstr "指定哪些模板需要启用分页,以及对应的单页面文章数量。若设为 ``None`` ,则默认值为 ``DEFAULT_PAGINATION`` 。" +"本项配置默认为 ``{'index': None, 'tag': None, 'category': None, 'author': None}`` 。" -#: ../../settings.rst:1060 0ee1f92f0be740c3afb7b793327495df -msgid "A set of patterns that are used to determine advanced pagination output." -msgstr "一组模式,用于高级分页输出。" +#: ../../settings.rst:1128 631c92f55fca4dd4acff9348397bdead +msgid "" +"A set of patterns that are used to determine advanced pagination output. " +"The default is::" +msgstr "一组匹配模式,用于高级分页输出。本项配置默认如下:" -#: ../../settings.rst:1064 1a3aef30d05c45b5b4dd54ab7c4c043c +#: ../../settings.rst:1138 319e228179c2404dace7b1374e30a558 msgid "Using Pagination Patterns" msgstr "使用分页模式" -#: ../../settings.rst:1066 9bbd095189634b8f8a43cf4f196ec8d5 +#: ../../settings.rst:1140 7c7876166cba4db0bc8ca7c6ceb1f828 msgid "" "By default, pages subsequent to ``.../foo.html`` are created as " "``.../foo2.html``, etc. The ``PAGINATION_PATTERNS`` setting can be used " @@ -1347,7 +1528,8 @@ msgstr "" "默认情况下,连续页面的URL会如此编码:第一页为 ``.../foo.html`` ,后一页为 ``.../foo2.html`` " "。``PAGINATION_PATTERNS`` 就是用于修改这个编页规则的,其中是一些三元组:" -#: ../../settings.rst:1072 9303664b0829486097906d555b50c30d +#: ../../settings.rst:1146 b96115cbd30a454e98427c2f568c9d9f +#, python-brace-format msgid "" "For ``page_url`` and ``page_save_as``, you may use a number of variables." " ``{url}`` and ``{save_as}`` correspond respectively to the ``*_URL`` and" @@ -1364,7 +1546,7 @@ msgstr "" "相同,只不过会截去末尾的 ``/index`` (如果有的话)。 ``{number}`` 则等于页码。(译者注: " "``minimum_page`` 意味到达该页面数后开始使用此条规则)" -#: ../../settings.rst:1079 b3b8c76240bd4097b2ccd51e129fd949 +#: ../../settings.rst:1153 0513d4b59b6443a592d6c47abf6ffd13 msgid "" "For example, if you want to leave the first page unchanged, but place " "subsequent pages at ``.../page/2/`` etc, you could set " @@ -1373,88 +1555,99 @@ msgstr "" "举个例子,如果你想要保持第一面保持不变,但后续页面都以 ``.../page/2/`` 的形式出现,你可以如此设置 " "``PAGINATION_PATTERNS`` :" -#: ../../settings.rst:1089 d229ff3fdd86402c9c511d154856da26 +#: ../../settings.rst:1163 a7e53284e5344eb5bab04206293349e4 msgid "" "If you want a pattern to apply to the last page in the list, use ``-1`` " "as the ``minimum_page`` value::" msgstr "如果你想指定最后一面制定规则,将 ``minimum_page`` 的值设为 ``-1`` 即可:" -#: ../../settings.rst:1095 8a2f277505ea4ec1bf03baf8e8558fe0 +#: ../../settings.rst:1169 ee7ce86e8f1749e686233ec4a999dcc9 msgid "Translations" msgstr "翻译" -#: ../../settings.rst:1097 fd82b5daff4b4c019f3af94589fdf236 +#: ../../settings.rst:1171 66ba1c80957b4e84a265bbf1cfac36e5 msgid "" "Pelican offers a way to translate articles. See the :doc:`Content " "` section for more information." msgstr "Pelican为文章翻译提供了展示方法。详见 :doc:`创作内容 ` 。" -#: ../../settings.rst:1102 0ed0fba765d44cb29c7a4561f1a7da11 -msgid "The default language to use." -msgstr "指定默认语言。" +#: ../../settings.rst:1176 27cab75cf2344a8c8d1573700e1f35ca +msgid "The default language to use. The default is ``'en'``." +msgstr "指定默认语言。本项配置默认为 ``'en'`` 。" -#: ../../settings.rst:1106 b142b956828d4fa6bf5a6f41154a0bc8 +#: ../../settings.rst:1180 2db269f9350e48098e8e06643b77a107 msgid "" "The metadata attribute(s) used to identify which articles are " "translations of one another. May be a string or a collection of strings. " "Set to ``None`` or ``False`` to disable the identification of " -"translations." +"translations. The default is ``'slug'``." msgstr "指定用于标识不同翻译是同一篇文章的元数据。可以是一个或多个字符串。要禁用对文章翻译的识别,将此项设为 ``None`` 或 ``False`` 。" +"本项配置默认为 ``'slug'`` 。" -#: ../../settings.rst:1112 b7a889c0eda0476cb8926803274db471 +#: ../../settings.rst:1187 bfa4d3e17c6f42ac9ddeb79fd2131943 msgid "" "The metadata attribute(s) used to identify which pages are translations " "of one another. May be a string or a collection of strings. Set to " -"``None`` or ``False`` to disable the identification of translations." +"``None`` or ``False`` to disable the identification of translations. The " +"default is ``'slug'``." msgstr "指定用于标识不同翻译是同一个页面的元数据。可以是一个或多个字符串。要禁用对页面翻译的识别,将此项设为 ``None`` 或 ``False`` 。" +"本项配置默认为 ``'slug'`` 。" -#: ../../settings.rst:1118 761a948ad532489ab91be66f6ff4afc3 -msgid "The location to save the Atom feed for translations. [3]_" -msgstr "指定各翻译Atom订阅源的存储位置。 [3]_" +#: ../../settings.rst:1194 2ae8d30c65cb460194294c5a5de14f02 +#, python-brace-format +msgid "" +"The location to save the Atom feed for translations. [3]_ The default is " +"``'feeds/all-{lang}.atom.xml'``." +msgstr "指定各翻译Atom订阅源的存储位置。 [3]_ 本项配置默认为 ``'feeds/all-{lang}.atom.xml'`` 。" -#: ../../settings.rst:1122 3c51071a92a446179fa38606692a56d6 +#: ../../settings.rst:1199 bc09f3717a8a497680abc66b70745d0f +#, python-brace-format msgid "" "Relative URL of the Atom feed for translations, including the ``{lang}`` " "placeholder. [3]_ If not set, ``TRANSLATION_FEED_ATOM`` is used both for " -"save location and URL." +"save location and URL. The default is ``None``." msgstr "" "指定各翻译Atom feed的含有 ``{lang}`` 的相对URL。 [3]_ " -"若未设置此项,``TRANSLATION_FEED_ATOM`` 会同时用于存储位置和URL。" +"若未设置此项,``TRANSLATION_FEED_ATOM`` 会同时用于存储位置和URL。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1128 12ef75b1e91b49a2884fc8508893a066 -msgid "Where to put the RSS feed for translations." -msgstr "指定各翻译RSS订阅源的存储位置。" +#: ../../settings.rst:1205 1049b8c5e754466684e120afb2f7d281 +msgid "" +"Where to put the RSS feed for translations. The default is ``None``, " +"meaning no RSS feed." +msgstr "指定各翻译RSS订阅源的存储位置。本项配置默认为 ``None`` ,即无RSS feed。" -#: ../../settings.rst:1132 6b6d0ca12bbb4f26a2f91dea3ca2c6c7 +#: ../../settings.rst:1210 625b105c73764fce865b2504e811e055 +#, python-brace-format msgid "" "Relative URL of the RSS feed for translations, including the ``{lang}`` " "placeholder. [3]_ If not set, ``TRANSLATION_FEED_RSS`` is used both for " -"save location and URL." +"save location and URL. The default is ``None``." msgstr "" "文章或页面不同翻译在RSS订阅源中的相对路径,其中含有 ``{lang}``。 [3]_ " -"若未设置此项,``TRANSLATION_FEED_RSS`` 会同时用于存储位置和URL。" +"若未设置此项,``TRANSLATION_FEED_RSS`` 会同时用于存储位置和URL。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1136 a653ebc90d404e1d88f473baa6d34bfa +#: ../../settings.rst:1214 088e79d226f0487fafc14494179cabcf +#, python-brace-format msgid "{lang} is the language code" msgstr "{lang} 为语言代码" -#: ../../settings.rst:1140 417bf3d48cbb489daf8fab166ee7bda3 +#: ../../settings.rst:1217 4376232e5a294aca906df56af2f49303 msgid "Ordering content" msgstr "内容的排列顺序" -#: ../../settings.rst:1144 0cf90a8d6a3f48879e6f835e7944ccf2 +#: ../../settings.rst:1221 41cf2c63929d4eeeae7bfdee85e8d084 msgid "" "Order archives by newest first by date. (False: orders by date with older" -" articles first.)" -msgstr "若设为True,日期较新的会排在前面;若设为False,则日期较旧的会排在前面。" +" articles first.) The default is ``True``." +msgstr "若设为True,日期较新的会排在前面;若设为False,则日期较旧的会排在前面。本项配置默认为 ``True`` 。" -#: ../../settings.rst:1149 69921fd37f9947948c4951ea539be84a +#: ../../settings.rst:1226 3f3709e077b3416f8c3640dfc4432e38 msgid "" "Reverse the category order. (True: lists by reverse alphabetical order; " -"default lists alphabetically.)" -msgstr "若设为True,分类会按字典序逆序排列;若设为False,则按字典序顺序排列。" +"default lists alphabetically.) The default is ``False``." +msgstr "若设为True,分类会按字典序逆序排列;若设为False,则按字典序顺序排列。本项配置默认为 ``False`` 。" -#: ../../settings.rst:1154 858fdbaaccf94d1392cf6c102da139a9 +#: ../../settings.rst:1231 ff8d745b1884450185d26b1f7d645a5f msgid "" "Defines how the articles (``articles_page.object_list`` in the template) " "are sorted. Valid options are: metadata as a string (use ``reversed-`` " @@ -1463,99 +1656,104 @@ msgid "" " extract the sorting key from articles. Using a value of ``'date'`` will " "sort articles in chronological order, while the default value, " "``'reversed-date'``, will sort articles by date in reverse order (i.e., " -"newest article comes first)." +"newest article comes first). The default is ``'reversed-date'``." msgstr "" "定义文章(模板中的 ``articles_page.object_list`` " -")的排序方式。有效选项包括:字符串形式的元数据(使用前缀reverse-来指定逆序)、特殊选项 ``'basename'`` " +")的排序方式。有效选项包括:字符串形式的元数据(使用前缀 ``reversed-`` 来指定逆序)、特殊选项 ``'basename'`` " "(不带路径的文件名)、或是一个可以从文章中提取排序键的自定义函数。例如,将选项值设为 ``'date'`` ,文章就会以时间顺序排列文章。默认值为" -" ``'reversed-date'`` ,即以日期逆序排列,即新文章在前、旧文章在后。" +" ``'reversed-date'`` ,即以日期逆序排列,即新文章在前、旧文章在后。本项配置默认为 ``'reversed-date'`` 。" -#: ../../settings.rst:1164 302ab57b0ae2473ebefff23151f4675f +#: ../../settings.rst:1242 c2de8ca998954143a3a21d52f57a4e17 msgid "" "Defines how the pages (``pages`` variable in the template) are sorted. " "Options are same as ``ARTICLE_ORDER_BY``. The default value, " -"``'basename'`` will sort pages by their basename." +"``'basename'`` will sort pages by their basename. The default is " +"``'basename'``." msgstr "" -"定义页面(模板中的 ``pages`` 变量)的排序顺序。有效选项和 ``ARTICLE_ORDER_BY`` 中的相同。默认值为 " -"``basename``。" +"定义页面(模板中的 ``pages`` 变量)的排序顺序。有效选项和 ``ARTICLE_ORDER_BY`` 中的相同。本项配置默认为 ``'basename'`` 。" -#: ../../settings.rst:1172 8503a9717f4c4d37a15b95fe4881528f +#: ../../settings.rst:1250 6a345fb283734251b7acad72b7c4cf51 msgid "Themes" msgstr "主题" -#: ../../settings.rst:1174 ee7c320a20664fd294235130ca68827e +#: ../../settings.rst:1252 6498842c51bb40548a640a7d419909bf msgid "" "Creating Pelican themes is addressed in a dedicated section (see :ref" ":`theming-pelican`). However, here are the settings that are related to " "themes." msgstr "创建Pelican主题在单独的一节中讲解(参见 :ref:`theming-pelican` )。此处讲解和主题有关的配置项。" -#: ../../settings.rst:1180 a7abb7abd4fd4914a9b2de4e18f2166a +#: ../../settings.rst:1258 bb35f8335e4142f5b69a61115ab790e5 msgid "" "Theme to use to produce the output. Can be a relative or absolute path to" " a theme folder, or the name of a default theme or a theme installed via " -":doc:`pelican-themes` (see below)." +":doc:`pelican-themes` (see below). The default theme is \"notmyidea\"." msgstr "" "用于产生输出的主题。可以是到达要使用主题的文件夹的相对或绝对路径,或是主题的名称(默认主题或通过 :doc:`pelican-themes` " -"安装的主题)。" +"安装的主题)。默认主题为 \"notmyidea\" 。" -#: ../../settings.rst:1186 c80860199b464fe9be8c59b8162cd446 +#: ../../settings.rst:1264 3d47fbf73e7a4188a877619ef4cbed77 msgid "" "Destination directory in the output path where Pelican will place the " -"files collected from `THEME_STATIC_PATHS`. Default is `theme`." +"files collected from `THEME_STATIC_PATHS`. Default is `theme`. The " +"default is ``'theme'``." msgstr "" -"Pelican从 `THEME_STATIC_PATHS` 中发现主题要使用的静态文件,此设置项指定这些静态文件在输出路径中的目录。默认值为 " -"`theme` 。" +"Pelican从 `THEME_STATIC_PATHS` 中发现主题要使用的静态文件,此设置项指定这些静态文件在输出路径中的目录。" +"本项配置默认为 ``'theme'`` 。" -#: ../../settings.rst:1191 7dbeb5f932f345c9b7c3546b7cfb788f +#: ../../settings.rst:1270 c0b9021df19241fab6b6f90983248f9c msgid "" "Static theme paths you want to copy. Default value is `static`, but if " "your theme has other static paths, you can put them here. If files or " "directories with the same names are included in the paths defined in this" -" settings, they will be progressively overwritten." +" settings, they will be progressively overwritten. The default is " +"``['static']``." msgstr "" "要复制的静态主题路径。默认值为 `static` " ",但如果你的主题有其他静态路径,也可以将其放在此处。此项设置中若包含了相同名称的文件或目录,前面的会被后面的覆盖。" +"本项配置默认为 ``['static']`` 。" -#: ../../settings.rst:1198 fe7833a44b7547a889fb97b77b219186 +#: ../../settings.rst:1277 117f2d4711394bf39c50303d6b24c06b msgid "" "A list of paths you want Jinja2 to search for templates before searching " "the theme's ``templates/`` directory. Allows for overriding individual " "theme template files without having to fork an existing theme. Jinja2 " "searches in the following order: files in ``THEME_TEMPLATES_OVERRIDES`` " -"first, then the theme's ``templates/``." +"first, then the theme's ``templates/``. The default is ``[]``." msgstr "" "在搜索主题的 ``templates/`` " "目录前,Jinja2会先搜索此设置项中的路径。可以使用此设置项覆盖主题中的某些模板文件,以尽量避免修改现有主题。" +"Jinja2会先搜索 ``THEME_TEMPLATES_OVERRIDES`` 配置的文件,再搜索主题中的 ``templates/`` 目录。" +"本项配置默认为 ``[]`` 。" -#: ../../settings.rst:1204 fb8d33e45bd7411eb4c709bc8735725f -#, python-format +#: ../../settings.rst:1283 3f686a923ffa4a468df172f04146e388 +#, python-brace-format, python-format msgid "" "You can also extend templates from the theme using the ``{% extends %}`` " "directive utilizing the ``!theme`` prefix as shown in the following " "example:" msgstr "利用 ``{% extends %}`` 指令中的 ``!theme`` 前缀也可以用于从主题扩展模板,如下例所示:" -#: ../../settings.rst:1213 bad5f78cf14f48cfa4e3031fc66e945a -msgid "Specify the CSS file you want to load." -msgstr "指定需要加载的CSS文件。" +#: ../../settings.rst:1292 35121540d2254f698cbf9538d00cf5bd +msgid "Specify the CSS file you want to load. The default is ``'main.css'``." +msgstr "指定需要加载的CSS文件。本项配置默认为 ``'main.css'`` 。" -#: ../../settings.rst:1215 744422adebf048efb9576eb3d6f01b4f +#: ../../settings.rst:1294 533f2b3f18864e7ca68bfcb5d6961fe1 msgid "" "By default, two themes are available. You can specify them using the " "``THEME`` setting or by passing the ``-t`` option to the ``pelican`` " "command:" msgstr "默认情况下,有两个主题可供选择。可以使用 ``THEME`` 选项指定,或是在 ``pelican`` 命令中使用 ``-t`` 选项的参数传入。" -#: ../../settings.rst:1218 bad7ba14225c4a47922ce9440f0bfb11 +#: ../../settings.rst:1297 f1ea5d4700ca4f1091d6ee798596cff7 msgid "notmyidea" msgstr "notmyidea(默认值)" -#: ../../settings.rst:1219 16954ec8b6224cd7902c5af01586f5cb +#: ../../settings.rst:1298 9b7be83a91ab4de7bd6d7a30dbcef939 msgid "simple (a synonym for \"plain text\" :)" msgstr "simple(即“plain text”)" -#: ../../settings.rst:1221 7d839f8fe8ea454abb64906c4cf38932 +#: ../../settings.rst:1300 3ac1546ab1144586825809c12f4abc78 msgid "" "There are a number of other themes available at " "https://github.com/getpelican/pelican-themes. Pelican comes with :doc" @@ -1564,98 +1762,107 @@ msgstr "" "还有很多主题可以在 https://github.com/getpelican/pelican-themes 上下载。Pelican使用一个称为 " ":doc:`pelican-themes` 的小脚本来管理主题。" -#: ../../settings.rst:1225 d512f8161e89412693a9acb00948e348 +#: ../../settings.rst:1304 f1b29806557540ddaefe6bc035a48459 msgid "" "You can define your own theme, either by starting from scratch or by " "duplicating and modifying a pre-existing theme. Here is :doc:`a guide on " "how to create your theme `." msgstr "你还可以创建自己的主题,可以从头开始,也可以在已有主题的基础上修改。请参看 :doc:`主题 ` 文档。" -#: ../../settings.rst:1229 696c62600fb4479bbbbc6a010024d2aa +#: ../../settings.rst:1308 47a8dd97888b440aabbea22aee72630a msgid "Following are example ways to specify your preferred theme::" msgstr "下面是几个指定某个主题的例子:" -#: ../../settings.rst:1240 e70559ce885e4db0aa17a71a9a2ed757 +#: ../../settings.rst:1319 3f51b49bed124af39ae67bf60c8384f8 msgid "" "The built-in ``simple`` theme can be customized using the following " "settings." msgstr "内置的 ``simple`` 主题可以使用以下设置项进行自定义。" -#: ../../settings.rst:1244 67a316d5c57045448387c17445e71a53 -msgid "The URL of the stylesheet to use." -msgstr "要使用的样式表的URL。" +#: ../../settings.rst:1323 08d86196410f482e803c69d85078652a +msgid "The URL of the stylesheet to use. The default is ``None``." +msgstr "要使用的样式表的URL。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1246 61fc5d9b1f0c4b6586fd458660e384ff +#: ../../settings.rst:1325 369beaeb61fd4e4f843d8174b666c0a7 msgid "" "The built-in ``notmyidea`` theme can make good use of the following " "settings. Feel free to use them in your themes as well." msgstr "下面的一下选项可以很好地作用于内置的 ``notmyidea`` 主题。当然在其他主题中你也可以尽情尝试这些选项。" -#: ../../settings.rst:1251 fdd6425dea494c098212b971ed30bb71 -msgid "A subtitle to appear in the header." -msgstr "页面顶部要显示的副标题。" +#: ../../settings.rst:1330 7f647c4c65494b93bb6d1c3ef4b39af6 +msgid "A subtitle to appear in the header. The default is ``None``." +msgstr "页面顶部要显示的副标题。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1255 706528c7601a4352a40399b6a7b8b8dd +#: ../../settings.rst:1334 49eda3f428d7490bb78e081bbc941e64 msgid "" "Pelican can handle Disqus comments. Specify the Disqus sitename " -"identifier here." -msgstr "可以在Pelican中使用Disqus的评论系统,此设置项用于设置Disqus的站点标识符。" +"identifier here. The default is ``None``." +msgstr "可以在Pelican中使用Disqus的评论系统,此设置项用于设置Disqus的站点标识符。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1260 c0ff07ee87814a60b798b0b22b562af0 +#: ../../settings.rst:1339 a52590c6150e459495608626cf47cbc8 msgid "" "Your GitHub URL (if you have one). It will then use this information to " -"create a GitHub ribbon." -msgstr "指定你的GitHub URL(如果有的话),此信息将被用于创建GitHub功能区。" +"create a GitHub ribbon. The default is ``None``." +msgstr "指定你的GitHub URL(如果有的话),此信息将被用于创建GitHub标记。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1265 751716f49245400b99fdbb95052f8cb4 +#: ../../settings.rst:1344 7a1fab7bd7d248aca77d6cebb71415fb msgid "" "Put any desired analytics scripts in this setting in ``publishconf.py``. " "Example:" msgstr "在 ``publishconf.py`` 中设置此项,用于指定想要使用的统计分析脚本。如下例:" -#: ../../settings.rst:1279 e65031f7629d4b06b837b05b80b68141 +#: ../../settings.rst:1356 f0fd9392aa0544248ae3ecfa505cbd50 +msgid "The default is ``None``." +msgstr "默认为 ``None``" + +#: ../../settings.rst:1360 5f3cf76b56694fa88318f38e06dfb9d9 msgid "" "A list of tuples (Title, URL) for additional menu items to appear at the " -"beginning of the main menu." -msgstr "元组 (标题, URL) 的列表,用于指定额外的菜单项,会添加在菜单栏的开头。" +"beginning of the main menu. The default is ``None``." +msgstr "指定 (标题, URL) 元组的列表,用于指定额外的菜单项,会添加在菜单栏的开头。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1284 13839251877b49bb9962c0bc7b75f951 -msgid "A list of tuples (Title, URL) for links to appear on the header." -msgstr "元组 (标题, URL) 的列表,用于指定要展示在网页开头的链接。" +#: ../../settings.rst:1365 23402de55a8d4b9a99f81aa3cbfd334f +msgid "" +"A list of tuples (Title, URL) for links to appear on the header. The " +"default is ``None``." +msgstr "指定 (标题, URL) 元组的列表,用于指定要展示在顶部的链接。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1288 3a22924a9cb242029138754da6257800 -msgid "A list of tuples (Title, URL) to appear in the \"social\" section." -msgstr "元组 (标题, URL) 的列表,用于指定要展示在“social”部分的内容。" +#: ../../settings.rst:1370 55e5a965cc1f45eea43a064d8c93c758 +msgid "" +"A list of tuples (Title, URL) to appear in the \"social\" section. The " +"default is ``None``." +msgstr "指定 (标题, URL) 元组的列表,用于指定要展示在“social”部分的内容。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1292 4e64ba4558af483ea5234a40b6a7f667 +#: ../../settings.rst:1375 2b60264917b1429b9252029724038ed9 msgid "" "Allows for adding a button to articles to encourage others to tweet about" -" them. Add your Twitter username if you want this button to appear." -msgstr "允许在文章中添加按钮,以鼓励其他人发布有关它们的推文。如果希望显示此按钮,在此项中设置你的Twitter用户名。" +" them. Add your Twitter username if you want this button to appear. The " +"default is ``None``." +msgstr "允许在文章中添加按钮,以便其他人在tweet上引用。如果希望显示此按钮,在此项中设置你的Twitter用户名。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1297 1948a7f1556942869467e12269a83c97 +#: ../../settings.rst:1381 f625d19e9cfc481f90ba05c050829ef3 msgid "" "Allows override of the name of the links widget. If not specified, " -"defaults to \"links\"." -msgstr "指定用于覆盖“links”部分的名称。默认值为“links”。" +"defaults to \"links\". The default is ``None``." +msgstr "指定用于覆盖“links”部分的名称,若不指定,默认设为 “links”。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1302 4fcc458a089d46ec80586edae17cd901 +#: ../../settings.rst:1386 54cd361f2d6c44ec8b8838f2364f9c7f msgid "" "Allows override of the name of the \"social\" widget. If not specified, " -"defaults to \"social\"." -msgstr "指定用于覆盖“social”部分的名称。默认值为“social”。" +"defaults to \"social\". The default is ``None``." +msgstr "指定用于覆盖“social”部分的名称。若不指定,默认设为 “social”。本项配置默认为 ``None`` 。" -#: ../../settings.rst:1305 481872501e9f4df687b70830929f429f +#: ../../settings.rst:1389 16874b8a80b149578efba9c45a78a9c7 msgid "" "In addition, you can use the \"wide\" version of the ``notmyidea`` theme " "by adding the following to your configuration::" msgstr "另外,你可以使用 ``notmyidea`` 主题的“宽屏”版本,在配置文件中添加下面这行配置即可:" -#: ../../settings.rst:1312 add39f626ea24dd6885a117bdbef1c2b +#: ../../settings.rst:1396 9d24e75fc67d4b98a06bbe832f7cd947 msgid "Logging" msgstr "日志" -#: ../../settings.rst:1314 16c2fccd07c44079989173c2b101439f +#: ../../settings.rst:1398 9ddaf0c25b314e609b7de6873b2cfbcf msgid "" "Sometimes, a long list of warnings may appear during site generation. " "Finding the **meaningful** error message in the middle of tons of " @@ -1665,7 +1872,7 @@ msgstr "" "在站点生成过程中有时可能会出现一堆警告信息。在这一大堆日志输出中寻找 **有意义** " "的错误消息是非常棘手的。为了过滤掉多余的日志消息,可以在Pelican中指定 ``LOG_FILTER`` 设置。" -#: ../../settings.rst:1319 0a8d1eb4cad64db1bdccc37e40c0d5b9 +#: ../../settings.rst:1403 4c3ea89d86e846f3b38f146060f19c53 msgid "" "``LOG_FILTER`` should be a list of tuples ``(level, msg)``, each of them " "being composed of the logging level (up to ``warning``) and the message " @@ -1675,43 +1882,43 @@ msgstr "" "``LOG_FILTER`` 是元组 ``(level, msg)`` ,level指定日志记录等级(最高为 ``warning`` " "),msg指定要忽略的消息。将想要隐藏的日志消息添加到此列表中就可以将他们过滤掉。" -#: ../../settings.rst:1324 ../../settings.rst:1332 -#: a060e3f3d20b4f5ca0891c81e1e6bf44 +#: ../../settings.rst:1408 ../../settings.rst:1416 +#: b62320cd110548f08cdc2b9ff52953d5 msgid "For example::" msgstr "例如:" -#: ../../settings.rst:1329 66bf87b59c0547d6992c494296f54cba +#: ../../settings.rst:1413 8a81ee82a14e4571852d1b955568028a msgid "" "It is possible to filter out messages by a template. Check out source " "code to obtain a template." msgstr "用模板字符串指定要过滤的消息也是可以的。具体的消息种类请查看源码。" -#: ../../settings.rst:1339 77c817d503564c58b81e694cd2f2c357 +#: ../../settings.rst:1423 880baed291ff4f63836986b7c9082825 msgid "" "Silencing messages by templates is a dangerous feature. It is possible to" " unintentionally filter out multiple message types with the same template" " (including messages from future Pelican versions). Proceed with caution." msgstr "通过模板过滤忽略消息是一个危险的功能。 使用同一模板可能会无意中过滤掉多种消息类型(包括来自新版本Pelican的消息),请谨慎行事。" -#: ../../settings.rst:1345 2ca9fb8cc8854442b52381580df2423e +#: ../../settings.rst:1429 988048d34b0340beb22f11922ce0959a msgid "This option does nothing if ``--debug`` is passed." msgstr "当使用了 ``--debug`` 参数,此项设置就不会起作用。" -#: ../../settings.rst:1351 a915c4d447a44d9d8f1df8aeb978a590 +#: ../../settings.rst:1435 e1b3e06d5d29428ba28f2842124a7dcc msgid "Reading only modified content" msgstr "只读取修改过的内容" -#: ../../settings.rst:1353 7c899d3702eb4c9389b29caa1dd199bf +#: ../../settings.rst:1437 ff9209b75d1645c8b5af8941525fead0 msgid "" "To speed up the build process, Pelican can optionally read only articles " "and pages with modified content." msgstr "为了加速网站构建过程,Pelican能够只读取修改过内容的文章和页面。" -#: ../../settings.rst:1356 22170a8c737540d6b2826de10d97f57e +#: ../../settings.rst:1440 5aee5c450b2047bea84e436894c179ef msgid "When Pelican is about to read some content source file:" msgstr "当Pelican准备读取内容源文件时,会执行下面的规则:" -#: ../../settings.rst:1358 c746f9e5624441c4a53d81f9049910d8 +#: ../../settings.rst:1442 0aca4765447b49308b5a52b22a74d16a msgid "" "The hash or modification time information for the file from a previous " "build are loaded from a cache file if ``LOAD_CONTENT_CACHE`` is ``True``." @@ -1722,24 +1929,24 @@ msgstr "" ",则从缓存文件中加载上一次构建时文件的哈希值或修改时间。这些缓存的文件存储在 ``CACHE_PATH`` " "所指定的目录中。若文件是新的,在缓存文件中没有记录,则照常读取。" -#: ../../settings.rst:1362 20764c61c87044a6a7cfaca089dbe088 +#: ../../settings.rst:1446 b8bb9d616a2d41b484ec5440fa09e57a msgid "The file is checked according to ``CHECK_MODIFIED_METHOD``:" msgstr "文件会以 ``CHECK_MODIFIED_METHOD`` 设置的方式检查:" -#: ../../settings.rst:1368 f31c72607b3c4c6e99d97c7db70ffdd6 +#: ../../settings.rst:1452 fb6105f54c80491c80f99b8b447c5a4b msgid "" "If set to anything else or the necessary information about the file " "cannot be found in the cache file, the content is read as usual." msgstr "如果设置为其他任何值或在缓存文件中无法找到有关该文件的必要信息,则将照常读取内容。" -#: ../../settings.rst:1371 32c11190a05847fc94ef489e2cd75ebc +#: ../../settings.rst:1455 c46fe5fc65a44157b02b9e26befcefc6 msgid "" "If the file is considered unchanged, the content data saved in a previous" " build corresponding to the file is loaded from the cache, and the file " "is not read." msgstr "如果Pelican认为文件没有更改过,会直接从上一次构建的对应文件中加载内容,源文件就不会被读取。" -#: ../../settings.rst:1374 8a6a10580d4646c08562a415ab80b032 +#: ../../settings.rst:1458 0d597148978d4d228fc55b546d77ba97 msgid "" "If the file is considered changed, the file is read and the new " "modification information and the content data are saved to the cache if " @@ -1748,7 +1955,7 @@ msgstr "" "若Pelican认为文件更改过了,则会读取源文件;若 ``CACHE_CONTENT`` 设为了 ``True`` " ",Pelican还会将修改后的信息以及内容数据存入缓存。" -#: ../../settings.rst:1378 4d2198d1f1a04c0ab92bd5a2bfe2f3bd +#: ../../settings.rst:1462 e1c91fa9ecf84419a4e34e3fa0951b56 msgid "" "If ``CONTENT_CACHING_LAYER`` is set to ``'reader'`` (the default), the " "raw content and metadata returned by a reader are cached. If this setting" @@ -1763,7 +1970,7 @@ msgstr "" ",则缓存处理过后的内容对象。缓存已处理的内容对象可能会和插件(因为可能会跳过一些与读取相关的信号)与 ``WITH_FUTURE_DATES`` " "的功能(因为已处理内容对象的 ``draft`` 状态不会改变)冲突。" -#: ../../settings.rst:1386 75139bf4fb6f40649b4691f4158d1eee +#: ../../settings.rst:1470 d46b39637a86497eb38667c8ecf9bf66 msgid "" "Checking modification times is faster than comparing file hashes, but it " "is not as reliable because ``mtime`` information can be lost, e.g., when " @@ -1775,7 +1982,7 @@ msgstr "" "``rsync`` 命令时没有开启 ``mtime`` 保留模式。(rsync可以通过指定 ``--archive`` 标志启用 " "``mtime`` 保留模式)" -#: ../../settings.rst:1392 f556d8c0bd75495ca85a41e310637101 +#: ../../settings.rst:1476 3ef54978b60c4fcb9f2b0dc625797b74 msgid "" "The cache files are Python pickles, so they may not be readable by " "different versions of Python as the pickle format often changes. If such " @@ -1787,7 +1994,7 @@ msgstr "" "pickles,因此不同版本的Python由于pickle文件格式变化可能无法读取缓存。如果遇到此类错误,会自动以新格式重新构建缓存。另外,当 " "``GZIP_CACHE`` 设置发生变化后,缓存也会自动重建。" -#: ../../settings.rst:1398 2b6a584c560d467ba34a744bb37c0006 +#: ../../settings.rst:1482 40fb13c9fe444d109c9014ce4f294f92 msgid "" "The ``--ignore-cache`` command-line option is useful when the whole cache" " needs to be regenerated, such as when making modifications to the " @@ -1800,7 +2007,7 @@ msgstr "" "命令行选项,例如当需要修改会影响缓存内容的设置项时,或是调试时,都可以使用 ``--ignore-cache`` 。若 " "``AUTORELOAD_IGNORE_CACHE`` 设为了 ``True`` ,修改设置文件时会自动忽略缓存。" -#: ../../settings.rst:1404 a38225b961234c2e96f6d0f2545ed455 +#: ../../settings.rst:1488 05ea098bd1b34660878cc598cf9c639c msgid "" "Note that even when using cached content, all output is always written, " "so the modification times of the generated ``*.html`` files will always " @@ -1810,6 +2017,54 @@ msgstr "" "需要注意的是,即使使用了缓存的内容,最终的输出文件也始终会进行重新写入,因此生成的 ``*.html`` 文件的修改时间始终会变化。所以,基于 " "``rsync`` 进行上传时,可以考虑使用 ``--checksum`` 选项。" -#: ../../settings.rst:1411 2aa4b6fbbab24465ab36a606cecf299c +#: ../../settings.rst:1495 358bf9edd2594e2fa3db87aae3703994 msgid "Example settings" msgstr "配置示例" + +#~ msgid "Your site name" +#~ msgstr "站点名称" + +#~ msgid "The URL to refer to an article." +#~ msgstr "文章的URL格式。" + +#~ msgid "The place where we will save an article." +#~ msgstr "文章的存储位置。" + +#~ msgid "The URL we will use to link to a page." +#~ msgstr "页面的URL格式。" + +#~ msgid "The URL used to link to a page draft." +#~ msgstr "draft状态页面的URL。" + +#~ msgid "The actual location a page draft is saved at." +#~ msgstr "draft状态页面的实际存储位置。" + +#~ msgid "The URL to use for an author." +#~ msgstr "某一个作者的URL格式。" + +#~ msgid "The location to save an author." +#~ msgstr "某一个作者的存储位置。" + +#~ msgid "The URL to use for a category." +#~ msgstr "某一个分类的URL格式。" + +#~ msgid "The location to save a category." +#~ msgstr "某一个分类的存储位置。" + +#~ msgid "The URL to use for a tag." +#~ msgstr "某一个标签的URL格式。" + +#~ msgid "Default is the system locale." +#~ msgstr "默认值与系统的地区设置保持一致。" + +#~ msgid "Default author (usually your name)." +#~ msgstr "默认作者(通常是你自己的名字)。" + +#~ msgid "See also ``SLUGIFY_SOURCE``." +#~ msgstr "另请参看 ``SLUGIFY_SOURCE`` 。" + +#~ msgid "The location to save the Atom feed." +#~ msgstr "指定保存Atom订阅源的位置。" + +#~ msgid "The location to save the RSS feed." +#~ msgstr "指定保存RSS订阅源的位置。" diff --git a/docs/locale/zh_CN/LC_MESSAGES/tips.po b/docs/locale/zh_CN/LC_MESSAGES/tips.po index 4ecdcb1b..a65edf13 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/tips.po +++ b/docs/locale/zh_CN/LC_MESSAGES/tips.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PELICAN 4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-25 20:36+0800\n" +"POT-Creation-Date: 2024-11-07 16:25+0800\n" "PO-Revision-Date: 2024-06-27 19:00+0800\n" "Last-Translator: GeorgeHu \n" "Language: zh_CN\n" @@ -16,22 +16,22 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.15.0\n" +"Generated-By: Babel 2.16.0\n" -#: ../../tips.rst:2 415f61a654104cf4826423e3aa1d3807 +#: ../../tips.rst:2 9c4618aaecd44b0d93537cb760e227fa msgid "Tips" msgstr "小技巧" -#: ../../tips.rst:4 1bc50144d85845f3a7f21f9ef87bba44 +#: ../../tips.rst:4 f49ab5e1ef034ca29140bac3832e8e1c msgid "Here are some tips about Pelican that you might find useful." msgstr "以下是一些实用的小技巧。" -#: ../../tips.rst:7 ../../tips.rst:264 d9115f4b162d46e6aa89d56309c1ec41 -#: e693dc009e5c466d99655b705223f300 +#: ../../tips.rst:7 ../../tips.rst:309 95bea35d0347495bb551fe9486bcd29d +#: b64b7ed713b64f588ea7488c6d0b0441 msgid "Custom 404 Pages" msgstr "自定义404页面" -#: ../../tips.rst:9 5c7cd70793f44d3c9fcf63779755d62b +#: ../../tips.rst:9 d59dc30de5954aa1abc7c46fbac596c6 msgid "" "When a browser requests a resource that the web server cannot find, the " "web server usually displays a generic \"File not found\" (404) error page" @@ -40,36 +40,34 @@ msgid "" "article), such as this Markdown-formatted example stored in " "``content/pages/404.md``::" msgstr "" -"当浏览器请求的资源无法在服务器中找到时,web服务器常常会显示一个通用的“File not " -"found 404”的错误页面,这可能会不太美观。为了能使用一个与站点主题相匹配的404页面" -"(注意是页面而 **不是** 文章),例如下面这个Markdown格式的例子,将此文件存为了 " -"``content/pages/404.md`` :" +"当浏览器请求的资源无法在服务器中找到时,web服务器常常会显示一个通用的“File not found " +"404”的错误页面,这可能会不太美观。为了能使用一个与站点主题相匹配的404页面(注意是页面而 **不是** " +"文章),例如下面这个Markdown格式的例子,将此文件存为了 ``content/pages/404.md`` :" -#: ../../tips.rst:22 cab28bb6b2a548a09f8cc6e4778f1a78 +#: ../../tips.rst:22 416f9b3eeaac4af8bdc9f32b7cdcba39 msgid "" "The next step is to configure your web server to display this custom page" " instead of its default 404 page. For Nginx, add the following to your " "configuration file's ``location`` block::" msgstr "" -"接下来就是要配置web服务器,使其显示此自定义页面而不是默认的404页面。例如对于Nginx," -"在配置文件的 ``location`` 块中添加下面的命令:" +"接下来就是要配置web服务器,使其显示此自定义页面而不是默认的404页面。例如对于Nginx,在配置文件的 ``location`` " +"块中添加下面的命令:" -#: ../../tips.rst:28 f8acbc4d00de4cfb8dfd9358a8168c14 +#: ../../tips.rst:28 5d52fbcc9d9d4603b3f9d97360face10 msgid "For Apache::" msgstr "对于Apache:" -#: ../../tips.rst:32 3701d02f6dba4936a86a9fbb226261e8 +#: ../../tips.rst:32 5413c6bcff6a41688ffcede94b9955e4 msgid "" "For Amazon S3, first navigate to the ``Static Site Hosting`` menu in the " "bucket settings on your AWS console. From there::" -msgstr "" -"对于Amazon S3实例,先在控制台的设置中找到 ``Static Site Hosting`` ,并添加:" +msgstr "对于Amazon S3实例,先在控制台的设置中找到 ``Static Site Hosting`` ,并添加:" -#: ../../tips.rst:38 4d111f7cca2e49828e343ff889847358 +#: ../../tips.rst:38 9b02aa39367a4c33918bddef02d1788d msgid "Publishing to GitHub Pages" msgstr "发布到GitHub Pages" -#: ../../tips.rst:40 f7fa83b00f6d4dd58d6f119725474538 +#: ../../tips.rst:40 ca3f1deb69a04d40a89576f580d63781 msgid "" "If you use `GitHub `_ for your Pelican site you can " "publish your site to `GitHub Pages `_ for " @@ -80,14 +78,14 @@ msgid "" "`_." msgstr "" -"如果将Pelican站点放在了 `GitHub `_ 上,那么你就可以将站点" -"免费发布在 `GitHub Pages `_ 上。如果是用户或组织的" -"站点,发布的地址为 ``https://.github.io`` ;如果是某个项目的站点," -"发布的地址则为 ``https://.github.io/`` 。当然也可以 " -"`在GitHub Pages上使用自定义域名 `_ 上,那么你就可以将站点免费发布在 `GitHub " +"Pages `_ 上。如果是用户或组织的站点,发布的地址为 " +"``https://.github.io`` ;如果是某个项目的站点,发布的地址则为 " +"``https://.github.io/`` 。当然也可以 `在GitHub " +"Pages上使用自定义域名 `_ 。" -#: ../../tips.rst:46 a3167f2a605d44288b83d66f052e8cdd +#: ../../tips.rst:46 5962c3cb4a0b41289d6b08b9edd2fdee msgid "" "There are `two ways to publish a site to GitHub Pages " "`_ :" -#: ../../tips.rst:48 b2f270c5a15d4e3e92331c3c37db25dd +#: ../../tips.rst:48 ad6f071b3cdc4529a41776f799347da0 msgid "" "**Publishing from a branch:** run ``pelican`` locally and push the output" " directory to a special branch of your GitHub repo. GitHub will then " "publish the contents of this branch to your GitHub Pages site." msgstr "" -"**从某一分支发布:** 在本地运行 ``pelican`` 后将输出文件夹push到GitHub仓库的" -"某一分支。GitHub就会将该分支的内容发布到GitHub Pages上。" +"**从某一分支发布:** 在本地运行 ``pelican`` " +"后将输出文件夹push到GitHub仓库的某一分支。GitHub就会将该分支的内容发布到GitHub Pages上。" -#: ../../tips.rst:51 4ffdb550d8bf468dbfe4d32dfcda21cd +#: ../../tips.rst:51 6237e147cf4142d9b172588964ec00d2 msgid "" "**Publishing with a custom GitHub Actions workflow:** just push the " "source files of your Pelican site to your GitHub repo's default branch " @@ -116,25 +114,24 @@ msgid "" "your site's source files using GitHub's web interface and any changes " "that you commit will be published." msgstr "" -"**从自定义GitHub Actions工作流发布:** 将内容源文件推送到GitHub仓库的默认分支," -"然后在GitHub Actions工作流中执行 ``pelican`` 以生成输出文件夹,最后将其发布到你" -"的GitHub Pages站点。此种方法下就无需在本地执行 ``pelican`` 命令了。甚至可以直接" -"在GitHub的网页中在线修改站点内容源文件。" +"**从自定义GitHub Actions工作流发布:** 将内容源文件推送到GitHub仓库的默认分支,然后在GitHub " +"Actions工作流中执行 ``pelican`` 以生成输出文件夹,最后将其发布到你的GitHub Pages站点。此种方法下就无需在本地执行 " +"``pelican`` 命令了。甚至可以直接在GitHub的网页中在线修改站点内容源文件。" -#: ../../tips.rst:60 0e9c34ce1a5948098a5d0812eb8ac1b4 +#: ../../tips.rst:60 f2655b8ab23147e58fd68e2385a7624a msgid "Publishing a Project Site to GitHub Pages from a Branch" msgstr "从某一分支发布项目站点到GitHub Pages" -#: ../../tips.rst:62 5190ebea8d8b4542ac9ecb98c297594e +#: ../../tips.rst:62 1a156c5a8019400d86a33ce306b521ac msgid "" "To publish a Pelican site as a Project Page you need to *push* the " "content of the ``output`` dir generated by Pelican to a repository's " "``gh-pages`` branch on GitHub." msgstr "" -"要将Pelican站点发布为项目页面,你需要将Pelican生成的 ``output`` 目录 " -"**push** 到GitHub仓库的 ``gh-pages`` 分支。" +"要将Pelican站点发布为项目页面,你需要将Pelican生成的 ``output`` 目录 **push** 到GitHub仓库的 ``gh-" +"pages`` 分支。" -#: ../../tips.rst:66 e12298010e9745b59d60d31ae909fd4c +#: ../../tips.rst:66 22caeeba90b24dbe9f0305370de074fc msgid "" "The excellent `ghp-import `_, which" " can be installed with ``pip``, makes this process really easy." @@ -142,15 +139,14 @@ msgstr "" "可通过 ``pip`` 安装的 `ghp-import `_ " "使这一步变得非常简单。" -#: ../../tips.rst:69 cd5a5847355846dd81a0ad37858358f2 +#: ../../tips.rst:69 6ea08af050644b58ae5255dafb4f4d8b msgid "" "For example, if the source of your Pelican site is contained in a GitHub " "repository, and if you want to publish that Pelican site in the form of " "Project Pages to this repository, you can then use the following::" -msgstr "" -"例如,当Pelican站点的源文件已经包含在GitHub仓库中时,可以将其作为此仓库的项目页面:" +msgstr "例如,当Pelican站点的源文件已经包含在GitHub仓库中时,可以将其作为此仓库的项目页面:" -#: ../../tips.rst:77 18d3e7316a5a48acb337c3c67e94084c +#: ../../tips.rst:77 355b81e8a2194cf9b91bee0f4ee6dca9 msgid "" "The ``ghp-import output`` command updates the local ``gh-pages`` branch " "with the content of the ``output`` directory (creating the branch if it " @@ -158,37 +154,36 @@ msgid "" "the remote ``gh-pages`` branch, effectively publishing the Pelican site." msgstr "" "``ghp-import output`` 命令会用 ``output`` 目录下的内容更新本地的 ``gh-pages`` " -"分支(如果此分支不存在则会先创建)。接着再用 ``git push origin gh-pages`` " -"命令更新远程分支 ``gh-pages`` ,如此就能够发布Pelican站点了。" +"分支(如果此分支不存在则会先创建)。接着再用 ``git push origin gh-pages`` 命令更新远程分支 ``gh-" +"pages`` ,如此就能够发布Pelican站点了。" -#: ../../tips.rst:84 cc8b9d96da674850b39373728000f722 +#: ../../tips.rst:84 8a3fd725eba44fa99541376722601cce msgid "" "The ``github`` target of the Makefile (and the ``gh_pages`` task of " "``tasks.py``) created by the ``pelican-quickstart`` command publishes the" " Pelican site as Project Pages, as described above." msgstr "" -"``pelican-quickstart`` 在Makefile文件中所生成的 ``github`` 目标(以及为 " -"``gh_pages`` 任务生成的 ``tasks.py`` )使得Pelican站点能像上面描述的那样被发布" -"为项目页面。" +"``pelican-quickstart`` 在Makefile文件中所生成的 ``github`` 目标(以及为 ``gh_pages`` " +"任务生成的 ``tasks.py`` )使得Pelican站点能像上面描述的那样被发布为项目页面。" -#: ../../tips.rst:89 41c7b129fd334796848c4d75404dbe81 +#: ../../tips.rst:89 e8ebf23099ed45e7a65d23b9a7e4ccbd msgid "Publishing a User Site to GitHub Pages from a Branch" msgstr "从某一分支发布用户站点到GitHub Pages" -#: ../../tips.rst:91 b379f950927d484ba91fbe649a248cfe +#: ../../tips.rst:91 7dc8ae1992b7411d9d6db7cc4a0127cb msgid "" "To publish a Pelican site in the form of User Pages, you need to *push* " "the content of the ``output`` dir generated by Pelican to the ``main`` " "branch of your ``.github.io`` repository on GitHub." msgstr "" -"要以用户页面形式发布Pelican站点,你需要将Pelican生成的 ``output`` 目录内容 " -"**push** 到 ``.github.io`` 仓库的 ``master`` 分支上。" +"要以用户页面形式发布Pelican站点,你需要将Pelican生成的 ``output`` 目录内容 **push** 到 " +"``.github.io`` 仓库的 ``master`` 分支上。" -#: ../../tips.rst:95 6d1bd6c0ff25494e997c4efbdcd1d861 +#: ../../tips.rst:95 da706340ef5f4d18bfb183596a4196c9 msgid "Again, you can take advantage of ``ghp-import``::" msgstr "同样的,此处也可以使用 ``ghp-import`` :" -#: ../../tips.rst:101 45fb7ba534af4f7d828e1630e591c02a +#: ../../tips.rst:101 61aa6f0d9fdf407682d3f781ae5475c6 msgid "" "The ``git push`` command pushes the local ``gh-pages`` branch (freshly " "updated by the ``ghp-import`` command) to the ``elemoine.github.io`` " @@ -197,21 +192,19 @@ msgstr "" "``git push`` 命令将本地的 ``gh-pages`` 分支(此分支在刚刚通过 ``ghp-import`` " "命令进行了更新)push到了GitHub仓库 ``elemoine.github.io`` 的 ``master`` 分支。" -#: ../../tips.rst:107 b105e7dd1aef441896c0f59166808113 +#: ../../tips.rst:107 f74afbf668a1472d901fe0a16472ab98 msgid "" "To publish your Pelican site as User Pages, feel free to adjust the " "``github`` target of the Makefile." -msgstr "" -"要将Pelican站点发布为用户页面,可以根据需要修改Makefile中的 ``github`` 目标。" +msgstr "要将Pelican站点发布为用户页面,可以根据需要修改Makefile中的 ``github`` 目标。" -#: ../../tips.rst:110 87a89a932eec40e8bfdd5c756f4d54fc +#: ../../tips.rst:110 d69dcdb58a4b4b38aa8b8bf8e4fd733a msgid "" "Another option for publishing to User Pages is to generate the output " "files in the root directory of the project." -msgstr "" -"发布用户页面的另一种方法就是将输出文件生成在项目的根目录下。" +msgstr "发布用户页面的另一种方法就是将输出文件生成在项目的根目录下。" -#: ../../tips.rst:113 dab76a45349c432cb4b763484661ec2c +#: ../../tips.rst:113 4991892f24df40b982faf01ddb292175 msgid "" "For example, your main project folder is ``.github.io`` and you" " can create the Pelican project in a subdirectory called ``Pelican``. " @@ -220,22 +213,21 @@ msgstr "" "例如,项目的主文件夹是 ``.github.io`` ,你可以在子目录 ``Pelican`` " "中创建一个Pelican项目。然后你可以在这个 ``Pelican`` 文件夹中执行下面的命令:" -#: ../../tips.rst:119 7f13464c92f14cc18f8c00f7dae78f93 +#: ../../tips.rst:119 ca5939f8c58b44b69ebfb2f953a4a73b msgid "" "Now you can push the whole project ``.github.io`` to the main " "branch of your GitHub repository::" -msgstr "" -"接着可以将整个项目 ``.github.io`` push到GitHub仓库的master分支中:" +msgstr "接着可以将整个项目 ``.github.io`` push到GitHub仓库的master分支中:" -#: ../../tips.rst:124 e82ff566e32b4696863aa04216aaf355 +#: ../../tips.rst:124 54962439805d47abb121ca9454e7a4cc msgid "(assuming origin is set to your remote repository)." msgstr "(此处假设远程仓库命名为origin)。" -#: ../../tips.rst:127 1958522ba7c34537855505f1e64c7b43 +#: ../../tips.rst:127 b3fe320a90904fbda8c7ed8c7bddbd6e msgid "Publishing to GitHub Pages Using a Custom GitHub Actions Workflow" msgstr "使用自定义GitHub Actions工作流将站点发布GitHub Pages中" -#: ../../tips.rst:129 19c47b80d248451facd8407bd960b527 +#: ../../tips.rst:129 3b368bc0a307473dae560671fd9527be msgid "" "Pelican-powered sites can be published to GitHub Pages via a `custom " "workflow " @@ -246,22 +238,21 @@ msgstr "" "`_" " ,你可以直接使用此工作流发布站点:" -#: ../../tips.rst:133 bdc132ef5b974d1eae684d8118e4d914 +#: ../../tips.rst:133 a7b1be522b694d9a8beb186b4603a7aa msgid "" "Enable GitHub Pages in your repo: go to **Settings → Pages** and choose " "**GitHub Actions** for the **Source** setting." msgstr "" -"首先为仓库开启GitHub Pages: **Settings → Pages** 中有个 **Source** 设置项," -"将其选择为 **GitHub Actions** 。" +"首先为仓库开启GitHub Pages: **Settings → Pages** 中有个 **Source** 设置项,将其选择为 " +"**GitHub Actions** 。" -#: ../../tips.rst:136 d7d197c176bd4127a75cfaf9dd29212b +#: ../../tips.rst:136 9cc114d8a6b44ff49fa7fecbdbcd012f msgid "" "Commit a ``.github/workflows/pelican.yml`` file to your repo with these " "contents:" -msgstr "" -"往你的仓库中commit一个 ``.github/workflows/pelican.yml`` 文件,文件内容如下:" +msgstr "往你的仓库中commit一个 ``.github/workflows/pelican.yml`` 文件,文件内容如下:" -#: ../../tips.rst:155 656a2b783b6043f2ac26b1e7b342732e +#: ../../tips.rst:155 f7d029425d7047deae43e9506c7f4779 msgid "" "You may want to replace the ``@main`` with the ID of a specific commit in" " this repo in order to pin the version of the reusable workflow that " @@ -270,62 +261,63 @@ msgid "" "you do this you might want to get Dependabot to send you automated pull " "requests to update that commit ID whenever new versions of this workflow " "are published, like so:" -msgstr "你可能想要将 ``@main`` 替换为这个仓库中某个特定commit的ID,以便将你使用的" -"可重用工作流的版本固定下来,此时,可以使用 ``uses: getpelican/pelican/.github/workflows/" -"github_pages.yml@`` 。在这种情况下,你可能想让Dependabot自动向你发送" -"PR,以便在发布新版本的工作流时更新commit ID,如下所示:" +msgstr "" +"你可能想要将 ``@main`` 替换为这个仓库中某个特定commit的ID,以便将你使用的可重用工作流的版本固定下来,此时,可以使用 " +"``uses: " +"getpelican/pelican/.github/workflows/github_pages.yml@`` " +"。在这种情况下,你可能想让Dependabot自动向你发送PR,以便在发布新版本的工作流时更新commit ID,如下所示:" -#: ../../tips.rst:172 0e2e10f42d6142e1b2f9d2251879ffad +#: ../../tips.rst:172 fd060b5d5d824ab8825b384d37872894 msgid "" "See `GitHub's docs about using Dependabot to keep your actions up to date" " `_." -msgstr "请参阅 `GitHub文档 `_ ,了解如何使用Dependabot使您的action保持最新。" -#: ../../tips.rst:174 2475397adfbb48af9a1d16fc0a24d9b9 +#: ../../tips.rst:174 1b862876e15c4fcd898c4d9b3ba616c5 msgid "" "Go to the **Actions** tab in your repo " "(``https://github.com///actions``) and you should " "see a **Deploy to GitHub Pages** action running." msgstr "" -"选中仓库的 **Actions** 标签栏( ``https://github.com//" -"/actions`` ),此时你应该会看到已经有一个名为 **Deploy to GitHub Pages** 的" -"action正在运行。" +"选中仓库的 **Actions** 标签栏( " +"``https://github.com///actions`` ),此时你应该会看到已经有一个名为 " +"**Deploy to GitHub Pages** 的action正在运行。" -#: ../../tips.rst:178 df30a15c460b442796f7f2007c283f32 +#: ../../tips.rst:178 f8413793636140f9b017abad379b3429 msgid "" "Once the action completes you should see your Pelican site deployed at " "your repo's GitHub Pages URL: ``https://.github.io`` for a user" " or organization site or ``https://.github.io/>`` " "for a project site." msgstr "" -"当此action执行完成,就能够通过仓库的GitHub Pages地址 ``https://." -"github.io`` 看到部署好了的用户或组织站点了,对于项目站点,可通过 ``https://" -".github.io/`` 访问。" +"当此action执行完成,就能够通过仓库的GitHub Pages地址 ``https://.github.io`` " +"看到部署好了的用户或组织站点了,对于项目站点,可通过 ``https://.github.io/`` " +"访问。" -#: ../../tips.rst:183 f79963fcfd204f2780ff536516e6d407 +#: ../../tips.rst:183 d792bb046c474f70aa98b2c16a5b1254 msgid "Notes:" msgstr "注意事项:" -#: ../../tips.rst:185 3a2dc6a36d38454e85265ef35c5e8010 +#: ../../tips.rst:185 89472d2b7231439faf9e51eda07d8323 msgid "" "You don't need to set ``SITEURL`` or ``FEED_DOMAIN`` in your Pelican " "settings: the workflow will set them correctly for you" -msgstr "" -"无需在Pelican配置文件中设置 ``SITEURL`` ,工作流会帮你进行设置。" +msgstr "无需在Pelican配置文件中设置 ``SITEURL`` ,工作流会帮你进行设置。" -#: ../../tips.rst:188 ea406746a7db49dfa10de025a3be4a31 +#: ../../tips.rst:188 ea2b632160804a6e9bf1b4cecb7de716 msgid "" "You don't need to commit your ``--output`` / ``OUTPUT_PATH`` directory " "(``output/``) to git: the workflow will run ``pelican`` to build the " "output directory for you on GitHub Actions" msgstr "" -"无需commit ``--output`` 或 ``OUTPUT_PATH`` 所指定的目录( ``output/`` ):" -"工作流会自己执行 ``pelican`` 命令来构建输出目录。" +"无需commit ``--output`` 或 ``OUTPUT_PATH`` 所指定的目录( ``output/`` ):工作流会自己执行 " +"``pelican`` 命令来构建输出目录。" -#: ../../tips.rst:192 a92a4068ac294a22ac80b1db68090634 +#: ../../tips.rst:192 fd9fb772fba844f099cac781f2b0642f msgid "" "See `GitHub's docs about reusable workflows " "`_ " @@ -334,46 +326,45 @@ msgstr "" "更多信息请参阅 `GitHub可重用工作流文档 `_ 。" -#: ../../tips.rst:195 1264d8a048aa4bd7878845ba2dac0d0d +#: ../../tips.rst:195 f9c527704af24f6da0b4229b7882a25b msgid "" "A number of optional inputs can be added to the ``with:`` block when " "calling the workflow, for example:" -msgstr "" -"有一些可选输入可以添加到工作流的 ``with:`` 块中:" +msgstr "有一些可选输入可以添加到工作流的 ``with:`` 块中:" -#: ../../tips.rst:206 3faf65d7567244e3bc65a15dc84cf247 +#: ../../tips.rst:206 956f5bae1fc64096acd2a2540a29004c msgid "Here's the complete list of workflow inputs:" msgstr "下面是工作流可用输入参数的完整列表:" -#: ../../tips.rst:209 37919ce86ddb4546bd191440ba1c5b9a +#: ../../tips.rst:209 eb37c894d7bc4278ab1a92e3b82c5603 msgid "Name" msgstr "名称" -#: ../../tips.rst:209 645ae6a27c7b40ecbc795dbd698b0649 +#: ../../tips.rst:209 446faf9e7d544e6aa47d4a1eca506c01 msgid "Required" msgstr "是否必需" -#: ../../tips.rst:209 18917f8f278440e38882a4f1ca62fc8f +#: ../../tips.rst:209 de96e4f5cd09488296f97f569fe1fb90 msgid "Description" msgstr "描述" -#: ../../tips.rst:209 99be24eafb6d43578e6eabba25f568fe +#: ../../tips.rst:209 181bbfff09144f5b9c241b2fc79c989d msgid "Type" msgstr "值的类型" -#: ../../tips.rst:209 24860d0693b84e6c9297f8733b338824 +#: ../../tips.rst:209 c3d44d1e7be6421a83bae2f5dc6e578f msgid "Default" msgstr "默认值" -#: ../../tips.rst:211 7e9bb7ea151c4e8c99116dd4decbe3c1 +#: ../../tips.rst:211 305d9d73681b4c6c80161cc906d60bbd msgid "``settings``" msgstr "``settings``" -#: ../../tips.rst:211 647c4173846f4057920030c8f774d5ea +#: ../../tips.rst:211 dbe6210f19914ae3b11e4caec7a945f0 msgid "Yes" msgstr "是" -#: ../../tips.rst:211 05c57822d0a249de9718a9a3c56e9e56 +#: ../../tips.rst:211 bbd2306b324d4b5eae513cb7a7683286 msgid "" "The path to your Pelican settings file (``pelican``'s ``--settings`` " "option), for example: ``\"publishconf.py\"``" @@ -383,26 +374,27 @@ msgstr "" #: ../../tips.rst:211 ../../tips.rst:216 ../../tips.rst:223 ../../tips.rst:227 #: ../../tips.rst:231 ../../tips.rst:237 ../../tips.rst:243 -#: 4e21f78e86f049048a800ddd5c51e230 618fd4eb66ff45b29c98df87b145613c -#: 93083ab6eb974293820f40d16349c100 9684f50652484820b924109f31418cd7 -#: 9df48660f1a84fe1af952256c7b58aec cef3fc9239d941969fda711c74994d8c -#: d09fff93593844cfbb0b270b4cd74193 +#: 073e18d8ae29406eb05040d4e3a9ae60 7d43e6cfb091410ebec7464da05b61b4 +#: 8837cc8935f148fb80f05cc5d3d53629 b2da1f7640f948039230cd835c49accd +#: bfe3d052cdc443bb81fed82e77acf3c1 c93816e00a254ef69c69f05833e8762b +#: ee35302c7e034070af1d234ab919c32a msgid "string" msgstr "string" -#: ../../tips.rst:216 f867df810054493f9d6be16271822ddb +#: ../../tips.rst:216 4eab6faa96244f13a09754112a783f2f msgid "``requirements``" msgstr "``requirements``" #: ../../tips.rst:216 ../../tips.rst:223 ../../tips.rst:227 ../../tips.rst:231 -#: ../../tips.rst:237 ../../tips.rst:243 019e197dd56b44229549da7a2421ce37 -#: 636f76c7f1ca4c61bcea4bbe39a4eb1f 671a0ff87e294e7ab0ac8cdf70fdfe1d -#: 848f43cf99c447a595f4760e2cf25f2b b425d772694640d0a7bae06c236fa1a2 -#: d145c924e4f348f5ad24b51286ce61e6 +#: ../../tips.rst:237 ../../tips.rst:243 ../../tips.rst:249 +#: 197d6ee11fce4a50996a0c458cfdbdad 2086d667b9b1475cb0f002924cdfde12 +#: 25e940621f5b48c9af487d898d7f93cf 5664232c9fdd46c7b8278b8ecef8e3b1 +#: 6693126a0da74c61b67e14ca8e535ec3 7f8a93a2048140748fa73537bfae2a54 +#: 85fd40a29f31490bb23b20f05e574aaa msgid "No" msgstr "否" -#: ../../tips.rst:216 0d5ee9c193994b2cac7757e881f01a42 +#: ../../tips.rst:216 9d5bdd70e7da4794805180cc758ebe37 msgid "" "The Python requirements to install, for example to enable markdown and " "typogrify use: ``\"pelican[markdown] typogrify\"`` or if you have a " @@ -411,138 +403,194 @@ msgstr "" "需要安装的Python模块,例如要开启markdown和typogrify,可指定 ``\"pelican[markdown] " "typogrify\"`` ,或者可以指定一个requirements文件: ``\"-r requirements.txt\"`` " -#: ../../tips.rst:216 67298d60de17486dbc1b6841f2c433b9 +#: ../../tips.rst:216 03ad0b322a714032bcce9f56ce66318d msgid "``\"pelican\"``" msgstr "``\"pelican\"``" -#: ../../tips.rst:223 219a8d185ac440329e8aa7306e55e708 +#: ../../tips.rst:223 e568553782b443dbacecaa7ded4c391c msgid "``output-path``" msgstr "``output-path``" -#: ../../tips.rst:223 21a3530e340349afa64d7eb69b393c98 +#: ../../tips.rst:223 2920ae9de5a64ae1ad82bd2287fa7c1e msgid "Where to output the generated files (``pelican``'s ``--output`` option)" msgstr "生成文件的输出位置(会被用于 ``pelican`` 命令的 ``--output`` 选项)" -#: ../../tips.rst:223 dea97da0dfc24941b8850d1d26ea3cd3 +#: ../../tips.rst:223 41b90747f0954a5799c8baf4a59d99fd msgid "``\"output/\"``" msgstr "``\"output/\"``" -#: ../../tips.rst:227 688ac4687d7841629137bf97ce97deee +#: ../../tips.rst:227 e2cc62185182463abc5140244a808e6d msgid "``theme``" msgstr "``theme``" -#: ../../tips.rst:227 2c2e6b6d8a6044c0ba64d00ea1b12d40 +#: ../../tips.rst:227 cd3b78d03dcd4554a8ce10a873f5ff9f msgid "" "The GitHub repo URL of a custom theme to use, for example: " "``\"https://github.com/seanh/sidecar.git\"``" -msgstr "" -"要使用的自定义主题的GitHub仓库URL,例如: ``\"https://github.com/seanh/" -"sidecar.git\"``" +msgstr "要使用的自定义主题的GitHub仓库URL,例如: ``\"https://github.com/seanh/sidecar.git\"``" -#: ../../tips.rst:227 bd63884f7e60412d9a6cccc5da9c47ac +#: ../../tips.rst:227 d94f331173334fb2a84b1caadffb72df msgid "``\"\"``" msgstr "``\"\"``" -#: ../../tips.rst:231 9527d9e89d704210baff0bb6e3e23b20 +#: ../../tips.rst:231 44ceb2743481486b95c1c739d543f15d msgid "``python``" msgstr "``python``" -#: ../../tips.rst:231 1aa44193e62647c0ba275507ea84b42c +#: ../../tips.rst:231 4b5cddab44d24c7c8560e16991b784c7 msgid "" "The version of Python to use to build the site, for example: ``\"3.12\"``" " (to use the most recent version of Python 3.12, this is faster) or " "``\"3.12.1\"`` (to use an exact version, slower)" -msgstr "" -"构建站点时使用的Python版本,例如: ``\"3.12\"`` 或 ``\"3.12.1\"``" +msgstr "构建站点时使用的Python版本,例如: ``\"3.12\"`` 或 ``\"3.12.1\"``" -#: ../../tips.rst:231 d182ae2dd44c482fb3f2373a7d97087c +#: ../../tips.rst:231 919c0e36e8ff40bcbcc4480081b49ce5 msgid "``\"3.12\"``" msgstr "``\"3.12\"``" -#: ../../tips.rst:237 dc65b4e578e24d179c38066871c2c572 +#: ../../tips.rst:237 842af56c539f4a74a97c7a5b1525eb35 msgid "``siteurl``" msgstr "``siteurl``" -#: ../../tips.rst:237 5909de5d60224c7b875753f88fd13296 +#: ../../tips.rst:237 7fc0777d6e174d6f8d757926a61aa3c8 msgid "" "The base URL of your web site (Pelican's ``SITEURL`` setting). If not " "passed this will default to the URL of your GitHub Pages site, which is " "correct in most cases." -msgstr "" -"站点的基URL,会用于配置项 ``SITEURL`` 。若未指定,默认值为GitHub Pages站点" -"的URL,这适用于大部分情况。" +msgstr "站点的基URL,会用于配置项 ``SITEURL`` 。若未指定,默认值为GitHub Pages站点的URL,这适用于大部分情况。" -#: ../../tips.rst:237 ../../tips.rst:243 0c0b86aa4b984615afb3564b76e379ff -#: c7ddd6347a7f4467b31aaa8f4d4a2309 +#: ../../tips.rst:237 ../../tips.rst:243 082f65333e224d71817b82b1e4f515c4 +#: 3d786e828a4745db849bdb8f47738db8 msgid "The URL of your GitHub Pages site." msgstr "GitHub Pages站点的URL" -#: ../../tips.rst:243 af7d2b52c5504ac2b69490a18d14f80f +#: ../../tips.rst:243 e5adb69f985547b7b3cc2bd3f31d4cc3 msgid "``feed_domain``" msgstr "``feed_domain``" -#: ../../tips.rst:243 2cc126862a8047c286381aa258aad013 +#: ../../tips.rst:243 c88f037c9f1f4148bef6347228257f7d msgid "" "The domain to be prepended to feed URLs (Pelican's ``FEED_DOMAIN`` " "setting). If not passed this will default to the URL of your GitHub Pages" " site, which is correct in most cases." msgstr "" -"订阅源URL前要附加的域名,会用于配置项 ``FEED_DOMAIN`` 。若未指定,默认值为" -"GitHub Pages站点的URL,这适用于大部分情况。" +"订阅源URL前要附加的域名,会用于配置项 ``FEED_DOMAIN`` 。若未指定,默认值为GitHub " +"Pages站点的URL,这适用于大部分情况。" -#: ../../tips.rst:252 b86ab8a1fa24447d99becc592411010e +#: ../../tips.rst:249 358c5aa434cd4ad09beab02df88413d5 +msgid "``deploy``" +msgstr "``deploy``" + +#: ../../tips.rst:249 b8748aeace5a448d9382e225be98f90c +msgid "" +"This is used to determine whether you will deploy the site or not to " +"GitHub Pages. This is most useful if you want to test a change to your " +"website in a pull request before deploying those change." +msgstr "此项配置用于表示是否要将站点部署至GitHub Pages。当对站点做了更改,并且在正式部署前进行测试,就可以用到此项。" + +#: ../../tips.rst:249 034006b9b71b4cb486f230b8aad873ce +msgid "bool" +msgstr "bool" + +#: ../../tips.rst:249 078ac613a8b74703af98c75bb5a007c1 +msgid "``true``" +msgstr "``true``" + +#: ../../tips.rst:257 e63cf881e3204be8b52ee5d8635ba4cf +msgid "Testing Your Build in a GitHub Pull Request" +msgstr "在Github拉取请求时进行测试" + +#: ../../tips.rst:259 a2f6bd3420eb46a08f54efda35a6eaf4 +msgid "" +"If you want to test your build in a pull request before deploying to " +"GitHub, your workflow might look something like this:" +msgstr "如果想在正式部署到 GitHub 前在PR中进行测试,下面是一个可用的 workflow 示例" + +#: ../../tips.rst:288 84393693279741efa82c5ee6b27cbd28 +msgid "" +"The ``on`` section of the workflow defines the events that will trigger " +"the workflow. In this example, the workflow will run on pushes to the " +"main branch, pull requests to the main branch, and manual runs of the " +"workflow." +msgstr "工作流的 ``on`` 部分定义了工作流的触发器。在此示例中,工作流将在main分支收到push、有PR提起到主分支以及" +"手动运行工作流时执行。" + +#: ../../tips.rst:290 cd3c13b2af974a32aa4291d07fc11e9c +msgid "" +"``workflow_dispatch`` defines the deploy boolean to be true by default. " +"This means that if you run the workflow manually, it will deploy the " +"site." +msgstr "``workflow_dispatch`` 将 deploy 的默认值设为 true。也就是说当手动运行工作流时,更改的内容就会正式部署。" + +#: ../../tips.rst:292 5402cd211d5b4aa8a244c916bb381a5b +msgid "" +"The ``deploy`` input for the job is using a set of standard GitHub " +"workflow variables to control when ``deploy`` will either be true or " +"false (you can customize this to your needs)." +msgstr "job中的 ``deploy`` 使用了一些 GitHub workflow 变量来计算 ``deploy`` 值为 true 还是 false(您可以根据需要自定义)。" + +#: ../../tips.rst:294 d084908e3a0749f0b802b43626cfe2c4 +msgid "" +"In this example, the ``deploy`` will be true if the event is a push to " +"the main branch (or merging into main from a PR) or a manual run of the " +"workflow. If the event is a pull request, the ``deploy`` will be false " +"and it will only build an artifact for the site." +msgstr "在此示例中,如果触发事件是推送到主分支(或从 PR 合并到主分支)或手动运行工作流,则 deploy 将为 true;" +"如果触发事件只是Pull Request,则 ``deploy`` 将为 false,并且此时只会为站点构建一个artifact。" + +#: ../../tips.rst:297 85e70fc3faa04208979f7bbe92b025ef msgid "\"Insecure content\" warnings from browsers" msgstr "浏览器报“不安全的内容(Insecure content)”警告" -#: ../../tips.rst:254 c81d5f8889c14a069e55fe7472a238f2 +#: ../../tips.rst:299 34f7075cf31f416da2aeb529c616d97d msgid "" "If your site uses ``https://`` and is broken because the browser is " "blocking network requests (for example for CSS files) due to \"insecure " "content\" this may be because GitHub Pages is generating ``http://`` URLs" " for your site." msgstr "" -"当站点使用 ``https://`` 时,可能会损坏,无法正常显示,这是由于浏览器阻拦了一些" -"对“不安全内容”的网络请求。可能的原因之一是GitHub Pages给你的站点生成了 ``http://`` " -"URL。" +"当站点使用 ``https://`` " +"时,可能会损坏,无法正常显示,这是由于浏览器阻拦了一些对“不安全内容”的网络请求。可能的原因之一是GitHub Pages给你的站点生成了 " +"``http://`` URL。" -#: ../../tips.rst:258 2a53f882b7e645149d18ce81757b9758 +#: ../../tips.rst:303 47271df82577424c8e2c31a9e76a553a msgid "" "To fix this go into your site repo's settings and enable the **Enforce " "HTTPS** setting: go to **Settings → Pages** and check **Enforce HTTPS**. " "Then re-run the workflow to re-deploy your site. Alternatively, you can " "use the workflow's ``siteurl`` and ``feed_domain`` settings." msgstr "" -"要想解决这一问题,需要为站点所在仓库开启 **强制使用HTTPS** :点击 **Settings → Pages** " -"并在其中勾选 **Enforce HTTPS** ,接着再重新执行工作流以重新部署站点。也可以尝试" -"通过配置 ``siteurl`` 与 ``feed_domain`` 解决问题。" +"要想解决这一问题,需要为站点所在仓库开启 **强制使用HTTPS** :点击 **Settings → Pages** 并在其中勾选 " +"**Enforce HTTPS** ,接着再重新执行工作流以重新部署站点。也可以尝试通过配置 ``siteurl`` 与 " +"``feed_domain`` 解决问题。" -#: ../../tips.rst:266 483cbd21e61841d983e2ecc8bc3006bc +#: ../../tips.rst:311 e69189ef4a8440fb8940d8012b4f19d6 msgid "" "GitHub Pages will display the custom 404 page described above, as noted " "in the relevant `GitHub docs " "`_." msgstr "" -"如果按前述进行配置,GitHub Pages是能够正确显示自定义的404页面的,相关内容在 " -"`GitHub的文档中 `_ 也有提到。" +"如果按前述进行配置,GitHub Pages是能够正确显示自定义的404页面的,相关内容在 `GitHub的文档中 " +"`_ 也有提到。" -#: ../../tips.rst:270 6b54e9c354f34e1f9a5a3f50d96b98c3 +#: ../../tips.rst:315 1b8c2457f44a4d61a033363830b8bd90 msgid "Update your site on each commit" msgstr "在每次commit后都更新站点" -#: ../../tips.rst:272 2e83c0c761c94f35ae3056634d8f1552 +#: ../../tips.rst:317 476dbdb670924c02a962e78d6a7854c1 msgid "" "To automatically update your Pelican site on each commit, you can create " "a post-commit hook. For example, you can add the following to " "``.git/hooks/post-commit``::" msgstr "" -"要想在每次commit后自动更新Pelican站点,你可以创建一个post-commit钩子。例如," -"可以将下面的内容保存为 ``.git/hooks/post-commit`` :" +"要想在每次commit后自动更新Pelican站点,你可以创建一个post-commit钩子。例如,可以将下面的内容保存为 " +"``.git/hooks/post-commit`` :" -#: ../../tips.rst:279 528589366e634f15bb0a702969715286 +#: ../../tips.rst:324 36dc5f05eaf84573acada36c59d8d2fc msgid "Copy static files to the root of your site" msgstr "将静态文件拷贝到站点根目录" -#: ../../tips.rst:281 dc4267653ef04722a0583915c05b6c88 +#: ../../tips.rst:326 4a0722ad68e944ee80e6378259cc1dd6 msgid "" "To use a `custom domain `_ with GitHub Pages, you need to put the " @@ -557,11 +605,11 @@ msgstr "" ")添加到站点根目录的 ``CNAME`` 文件中。为此,请创建 ``content/extra/`` 目录,并在里面添加一个 ``CNAME`` " "文件。然后使用Pelican的 ``STATIC_PATHS`` 来告诉Pelican将此文件复制到输出目录:" -#: ../../tips.rst:292 5fcdc283f55f4d8ca121cb6438c67a36 +#: ../../tips.rst:337 8ad906848762400d9e2462034d151a16 msgid "Note: use forward slashes, ``/``, even on Windows." msgstr "请注意:务必使用正斜杠 ``/`` ,在Windows上也是。" -#: ../../tips.rst:294 326a40a1536c462ea4974ce4b560f54c +#: ../../tips.rst:339 7b109f4944064382babc9158567c8e82 msgid "" "You can also use the ``EXTRA_PATH_METADATA`` mechanism to place a " "``favicon.ico`` or ``robots.txt`` at the root of any site." @@ -569,18 +617,17 @@ msgstr "" "利用 ``EXTRA_PATH_METADATA`` 机制,你可以将 ``favicon.ico`` 或 ``robots.txt`` " "也拷贝到站点的根目录下。" -#: ../../tips.rst:298 4e589caa6f17438aae1d1a12819c6ef2 +#: ../../tips.rst:343 678eea0644b5400496ad9173d05368d5 msgid "How to add YouTube or Vimeo Videos" msgstr "如何添加YouTube或Vimeo视频" -#: ../../tips.rst:300 5f60f033a7084739af5ef0dce5b91197 +#: ../../tips.rst:345 ca57b327dd6b432d82cdc91193bde6bb msgid "" "The easiest way is to paste the embed code of the video from these sites " "directly into your source content." -msgstr "" -"最简单的方法是将这些网站的视频嵌入代码直接粘贴到您的源内容文件中。" +msgstr "最简单的方法是将这些网站的视频嵌入代码直接粘贴到您的源内容文件中。" -#: ../../tips.rst:303 5446d02bebc241e88cc30b484799696c +#: ../../tips.rst:348 0a4f27e2edbe494ab52f73595646986e msgid "" "Alternatively, you can also use Pelican plugins like ``liquid_tags``, " "``pelican_youtube``, or ``pelican_vimeo`` to embed videos in your " @@ -589,45 +636,42 @@ msgstr "" "或者,您还可以使用例如 ``liquid_tags`` 、``pelican_youtube`` 或 ``pelican_vimeo`` " "等Pelican插件将视频嵌入。" -#: ../../tips.rst:306 c871fab4a3424b0dba84c1af24f6405f +#: ../../tips.rst:351 e73517b72da347738421784b776b1f1c msgid "" "Moreover, markup languages like reST and Markdown have plugins that let " "you embed videos in the markup. You can use `reST video directive " "`_ for reST or `mdx_video plugin " "`_ for Markdown." msgstr "" -"此外,像reST和 Markdown这样的标记语言都有对应插件可以让你在其中嵌入视频。" -"可以使用 `reST的视频指令 `_ 或者 " -"`Markdown的mdx_video插件 `_ 。" +"此外,像reST和 Markdown这样的标记语言都有对应插件可以让你在其中嵌入视频。可以使用 `reST的视频指令 " +"`_ 或者 `Markdown的mdx_video插件 " +"`_ 。" -#: ../../tips.rst:313 569b7609cb9d412e942001da7c4a704c +#: ../../tips.rst:358 b9d27cda716048b2ab7c13646d7faf09 msgid "Develop Locally Using SSL" msgstr "在本地使用SSL进行开发" -#: ../../tips.rst:315 e66f6f1cacc4466682461d251aedb929 +#: ../../tips.rst:360 50df9ec072aa47eabbae132fd8f5cb68 msgid "Here's how you can set up your local pelican server to support SSL." msgstr "以下描述了如何在本地Pelican服务器上配置SSL。" -#: ../../tips.rst:317 138c34c1b6804246b79fda266a1fd937 +#: ../../tips.rst:362 9b5045375a874c4d9c29f7109f05c539 msgid "" "First, create a self-signed certificate and key using ``openssl`` (this " "creates ``cert.pem`` and ``key.pem``)::" -msgstr "" -"首先,通过 ``openssl`` 创建自签名的证书和密钥,这会生成 ``cert.pem`` 和 " -"``key.pem`` 文件:" +msgstr "首先,通过 ``openssl`` 创建自签名的证书和密钥,这会生成 ``cert.pem`` 和 ``key.pem`` 文件:" -#: ../../tips.rst:321 ac189182bc694bcaa94cd935311f4492 +#: ../../tips.rst:366 2f1cfa536fc540f69d671f8a118769d7 msgid "" "And use this command to launch the server (the server starts within your " "``output`` directory)::" -msgstr "" -"接着使用下面的命令来开启服务器(此服务器会在 ``output`` 目录下开启):" +msgstr "接着使用下面的命令来开启服务器(此服务器会在 ``output`` 目录下开启):" -#: ../../tips.rst:325 88a33744d69f4f5bbc4a43024c43d3a0 +#: ../../tips.rst:370 029ea2b0e4fe4b0f814158ae33e3a8ff msgid "If you are using ``develop-server.sh``, add this to the top::" msgstr "如果你使用的是 ``develop-server.sh`` 脚本,在脚本的开头添加:" -#: ../../tips.rst:330 9a783977fe814657b8590185af281b1e +#: ../../tips.rst:375 c2784fdd9fdb433799d57f903d0e49d8 msgid "and modify the ``pelican.server`` line as follows::" msgstr "然后修改按照下述修改 ``pelican.server`` 一行:" diff --git a/docs/plugins.rst b/docs/plugins.rst index 22e1bcc6..58eee16b 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -94,12 +94,14 @@ which you map the signals to your plugin logic. Let's take a simple example:: your ``register`` callable or they will be garbage-collected before the signal is emitted. -If multiple plugins connect to the same signal, plugins will be executed in the -order they are connected. With ``PLUGINS`` setting, order will be as defined in -the setting. If you rely on auto-discovered namespace plugins, no ``PLUGINS`` -setting, they will be connected in the same order they are discovered (same -order as ``pelican-plugins`` output). If you want to specify the order -explicitly, disable auto-discovery by defining ``PLUGINS`` in the desired order. +If multiple plugins connect to the same signal, plugins will be invoked in the +order they are registered. When the ``PLUGINS`` setting is defined, plugin +invocation order will be the order in which the plugins are listed in the +``PLUGINS`` setting. If you rely on auto-discovered namespace plugins and have +no ``PLUGINS`` setting defined, plugins will be invoked in the same order that +they are discovered (the same order as listed in the output of the +``pelican-plugins`` command). If you want to specify the order explicitly, +disable auto-discovery by defining ``PLUGINS`` in the desired order. Namespace plugin structure -------------------------- diff --git a/docs/settings.rst b/docs/settings.rst index 93c632d2..67d1080f 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -28,7 +28,7 @@ Environment variables can also be used here but must be escaped appropriately:: Settings are configured in the form of a Python module (a file). There is an `example settings file -`_ +`_ available for reference. To see a list of current settings in your environment, including both default @@ -54,40 +54,41 @@ Here is a list of settings for Pelican: Basic settings ============== -.. data:: USE_FOLDER_AS_CATEGORY = True +.. data:: USE_FOLDER_AS_CATEGORY When you don't specify a category in your post metadata, set this setting to ``True``, and organize your articles in subfolders, the subfolder will become the category of your post. If set to ``False``, ``DEFAULT_CATEGORY`` - will be used as a fallback. + will be used as a fallback. The default is ``True``. -.. data:: DEFAULT_CATEGORY = 'misc' +.. data:: DEFAULT_CATEGORY - The default category to fall back on. + The default category to fall back on. The default is ``'misc'``. -.. data:: DISPLAY_PAGES_ON_MENU = True +.. data:: DISPLAY_PAGES_ON_MENU Whether to display pages on the menu of the template. Templates may or may - not honor this setting. + not honor this setting. The default is ``True``. -.. data:: DISPLAY_CATEGORIES_ON_MENU = True +.. data:: DISPLAY_CATEGORIES_ON_MENU Whether to display categories on the menu of the template. Templates may or - not honor this setting. + not honor this setting. The default is ``True``. -.. data:: DOCUTILS_SETTINGS = {} +.. data:: DOCUTILS_SETTINGS Extra configuration settings for the docutils publisher (applicable only to reStructuredText). See `Docutils Configuration`_ settings for more details. + The default is ``{}`` with no extra configuration settings. -.. data:: DELETE_OUTPUT_DIRECTORY = False +.. data:: DELETE_OUTPUT_DIRECTORY Delete the output directory, and **all** of its contents, before generating new files. This can be useful in preventing older, unnecessary files from persisting in your output. However, **this is a destructive setting and - should be handled with extreme care.** + should be handled with extreme care.** The default is ``False``. -.. data:: OUTPUT_RETENTION = [] +.. data:: OUTPUT_RETENTION A list of filenames that should be retained and not deleted from the output directory. One use case would be the preservation of version control data. @@ -96,13 +97,16 @@ Basic settings OUTPUT_RETENTION = [".hg", ".git", ".bzr"] -.. data:: JINJA_ENVIRONMENT = {'trim_blocks': True, 'lstrip_blocks': True} + The default is ``[]``. + +.. data:: JINJA_ENVIRONMENT A dictionary of custom Jinja2 environment variables you want to use. This also includes a list of extensions you may want to include. See `Jinja - Environment documentation`_. + Environment documentation`_. The default is + ``{'extensions': [], 'trim_blocks': True, 'lstrip_blocks': True}``. -.. data:: JINJA_FILTERS = {} +.. data:: JINJA_FILTERS A dictionary of custom Jinja2 filters you want to use. The dictionary should map the filtername to the filter function. @@ -115,20 +119,22 @@ Basic settings from custom_filter import urlencode_filter JINJA_FILTERS = {'urlencode': urlencode_filter} - See: `Jinja custom filters documentation`_. + See: `Jinja custom filters documentation`_. The default is ``{}``. -.. data:: JINJA_GLOBALS = {} +.. data:: JINJA_GLOBALS A dictionary of custom objects to map into the Jinja2 global environment namespace. The dictionary should map the global name to the global - variable/function. See: `Jinja global namespace documentation`_. + variable/function. See: `Jinja global namespace documentation`_. The + default is ``{}``. -.. data:: JINJA_TESTS = {} +.. data:: JINJA_TESTS A dictionary of custom Jinja2 tests you want to use. The dictionary should map test names to test functions. See: `Jinja custom tests documentation`_. + The default is ``{}``. -.. data:: LOG_FILTER = [] +.. data:: LOG_FILTER A list of tuples containing the logging level (up to ``warning``) and the message to be ignored. @@ -137,7 +143,9 @@ Basic settings LOG_FILTER = [(logging.WARN, 'TAG_SAVE_AS is set to False')] -.. data:: READERS = {} + The default is ``[]``. + +.. data:: READERS A dictionary of file extensions / Reader classes for Pelican to process or ignore. @@ -150,14 +158,22 @@ Basic settings READERS = {'foo': FooReader} -.. data:: IGNORE_FILES = ['.#*'] + The default is ``{}``. - A list of glob patterns. Files and directories matching any of these - patterns will be ignored by the processor. For example, the default - ``['.#*']`` will ignore emacs lock files, and ``['__pycache__']`` would - ignore Python 3's bytecode caches. +.. data:: IGNORE_FILES -.. data:: MARKDOWN = {...} + A list of Unix glob patterns. Files and directories matching any of these patterns + or any of the commonly hidden files and directories set by ``watchfiles.DefaultFilter`` + will be ignored by the processor. For example, the default ``['**/.*']`` will + ignore "hidden" files and directories, and ``['__pycache__']`` would ignore + Python 3's bytecode caches. + + For a full list of the commonly hidden files set by ``watchfiles.DefaultFilter``, + please refer to the `watchfiles documentation`_. + + The default is ``['**/.*']``. + +.. data:: MARKDOWN Extra configuration settings for the Markdown processor. Refer to the Python Markdown documentation's `Options section @@ -165,7 +181,7 @@ Basic settings list of supported options. The ``extensions`` option will be automatically computed from the ``extension_configs`` option. - Defaults to:: + The default is:: MARKDOWN = { 'extension_configs': { @@ -180,57 +196,63 @@ Basic settings The dictionary defined in your settings file will replace this default one. -.. data:: OUTPUT_PATH = 'output/' +.. data:: OUTPUT_PATH Where to output the generated files. This should correspond to your web server's virtual host root directory. + The default is ``'output'``. + .. data:: PATH Path to content directory to be processed by Pelican. If undefined, and content path is not specified via an argument to the ``pelican`` command, - Pelican will use the current working directory. + Pelican will default to ``'.'``, the current working directory. -.. data:: PAGE_PATHS = ['pages'] +.. data:: PAGE_PATHS A list of directories and files to look at for pages, relative to ``PATH``. + The default is ``['pages']``. -.. data:: PAGE_EXCLUDES = [] +.. data:: PAGE_EXCLUDES A list of directories to exclude when looking for pages in addition to - ``ARTICLE_PATHS``. + ``ARTICLE_PATHS``. The default is ``[]``. -.. data:: ARTICLE_PATHS = [''] +.. data:: ARTICLE_PATHS A list of directories and files to look at for articles, relative to - ``PATH``. + ``PATH``. The default is ``['']``. -.. data:: ARTICLE_EXCLUDES = [] +.. data:: ARTICLE_EXCLUDES A list of directories to exclude when looking for articles in addition to - ``PAGE_PATHS``. + ``PAGE_PATHS``. The default is ``[]``. -.. data:: OUTPUT_SOURCES = False +.. data:: OUTPUT_SOURCES Set to True if you want to copy the articles and pages in their original format (e.g. Markdown or reStructuredText) to the specified ``OUTPUT_PATH``. + The default is ``False``. -.. data:: OUTPUT_SOURCES_EXTENSION = '.text' +.. data:: OUTPUT_SOURCES_EXTENSION Controls the extension that will be used by the SourcesGenerator. Defaults - to ``.text``. If not a valid string the default value will be used. + to ``.text``. If not a valid string the default value will be used. The + default is ``'.text'``. -.. data:: PLUGINS = None +.. data:: PLUGINS - The list of plugins to load. See :ref:`plugins`. + The list of plugins to load. See :ref:`plugins`. The default is ``None``. -.. data:: PLUGIN_PATHS = [] +.. data:: PLUGIN_PATHS - A list of directories where to look for plugins. See :ref:`plugins`. + A list of directories where to look for plugins. See :ref:`plugins`. The + default is ``[]``. -.. data:: SITENAME = 'A Pelican Blog' +.. data:: SITENAME - Your site name + Your site's name. The default is ``'A Pelican Blog'``. .. data:: SITEURL @@ -241,56 +263,68 @@ Basic settings domain, with no trailing slash at the end. Example: ``SITEURL = 'https://example.com'`` -.. data:: STATIC_PATHS = ['images'] + The default is ``''``, the blank string. + +.. data:: STATIC_PATHS A list of directories (relative to ``PATH``) in which to look for static files. Such files will be copied to the output directory without modification. Articles, pages, and other content source files will normally be skipped, so it is safe for a directory to appear both here and in ``PAGE_PATHS`` or ``ARTICLE_PATHS``. Pelican's default settings include the - "images" directory here. + "images" directory here. The default is ``['images']``. -.. data:: STATIC_EXCLUDES = [] +.. data:: STATIC_EXCLUDES - A list of directories to exclude when looking for static files. + A list of directories to exclude when looking for static files. The default + is ``[]``. -.. data:: STATIC_EXCLUDE_SOURCES = True +.. data:: STATIC_EXCLUDE_SOURCES If set to False, content source files will not be skipped when copying files found in ``STATIC_PATHS``. This setting is for backward compatibility with Pelican releases before version 3.5. It has no effect unless ``STATIC_PATHS`` contains a directory that is also in ``ARTICLE_PATHS`` or ``PAGE_PATHS``. If you are trying to publish your site's source files, - consider using the ``OUTPUT_SOURCES`` setting instead. + consider using the ``OUTPUT_SOURCES`` setting instead. The default is + ``True``. -.. data:: STATIC_CREATE_LINKS = False +.. data:: STATIC_CREATE_LINKS Create links instead of copying files. If the content and output directories are on the same device, then create hard links. Falls back to symbolic links if the output directory is on a different filesystem. If symlinks are created, don't forget to add the ``-L`` or ``--copy-links`` option to rsync - when uploading your site. + when uploading your site. The default is ``False``. -.. data:: STATIC_CHECK_IF_MODIFIED = False +.. data:: STATIC_CHECK_IF_MODIFIED If set to ``True``, and ``STATIC_CREATE_LINKS`` is ``False``, compare mtimes of content and output files, and only copy content files that are newer than - existing output files. + existing output files. The default is ``False``. -.. data:: TYPOGRIFY = False +.. data:: TYPOGRIFY - If set to True, several typographical improvements will be incorporated into + If set to ``True``, several typographical improvements will be incorporated into the generated HTML via the `Typogrify `_ library, which can be installed - via: ``python -m pip install typogrify`` + via: ``python -m pip install typogrify``. The default is ``False``. -.. data:: TYPOGRIFY_IGNORE_TAGS = [] +.. data:: TYPOGRIFY_IGNORE_TAGS A list of tags for Typogrify to ignore. By default Typogrify will ignore ``pre`` and ``code`` tags. This requires that Typogrify version 2.0.4 or - later is installed + later is installed. The default is ``[]``. -.. data:: TYPOGRIFY_DASHES = 'default' +.. data:: TYPOGRIFY_OMIT_FILTERS + + A list of Typogrify filters to skip. Allowed values are: ``'amp'``, + ``'smartypants'``, ``'caps'``, ``'initial_quotes'``, ``'widont'``. By + default, no filter is omitted (in other words, all filters get applied). This + setting requires that Typogrify version 2.1.0 or later is installed. The + default is ``[]``. + +.. data:: TYPOGRIFY_DASHES This setting controls how Typogrify sets up the Smartypants filter to interpret multiple dash/hyphen/minus characters. A single ASCII dash @@ -299,65 +333,72 @@ Basic settings ``oldschool`` setting renders both en-dashes and em-dashes when it sees two (``--``) and three (``---``) hyphen characters, respectively. The ``oldschool_inverted`` setting turns two hyphens into an em-dash and three - hyphens into an en-dash. + hyphens into an en-dash. The default is ``'default'``. -.. data:: SUMMARY_MAX_LENGTH = 50 +.. data:: SUMMARY_MAX_LENGTH When creating a short summary of an article, this will be the default length (measured in words) of the text created. This only applies if your content does not otherwise specify a summary. Setting to ``None`` will cause the - summary to be a copy of the original content. + summary to be a copy of the original content. The default is ``50``. -.. data:: SUMMARY_MAX_PARAGRAPHS = None +.. data:: SUMMARY_MAX_PARAGRAPHS When creating a short summary of an article, this will be the number of paragraphs to use as the summary. This only applies if your content does not otherwise specify a summary. Setting to ``None`` will cause the summary to use the whole text (up to ``SUMMARY_MAX_LENGTH``) instead of just - the first N paragraphs. + the first N paragraphs. The default is ``None``. -.. data:: SUMMARY_END_SUFFIX = '…' +.. data:: SUMMARY_END_SUFFIX When creating a short summary of an article and the result was truncated to match the required word length, this will be used as the truncation suffix. + The default is ``'…'``. -.. data:: WITH_FUTURE_DATES = True +.. data:: WITH_FUTURE_DATES If disabled, content with dates in the future will get a default status of - ``draft``. See :ref:`reading_only_modified_content` for caveats. + ``draft``. See :ref:`reading_only_modified_content` for caveats. The default + is ``True``. -.. data:: INTRASITE_LINK_REGEX = '[{|](?P.*?)[|}]' +.. data:: INTRASITE_LINK_REGEX Regular expression that is used to parse internal links. Default syntax when linking to internal files, tags, etc., is to enclose the identifier, say ``filename``, in ``{}`` or ``||``. Identifier between ``{`` and ``}`` goes into the ``what`` capturing group. For details see - :ref:`ref-linking-to-internal-content`. + :ref:`ref-linking-to-internal-content`. The default is + ``'[{|](?P.*?)[|}]'``. -.. data:: PYGMENTS_RST_OPTIONS = [] +.. data:: PYGMENTS_RST_OPTIONS A list of default Pygments settings for your reStructuredText code blocks. - See :ref:`internal_pygments_options` for a list of supported options. + See :ref:`internal_pygments_options` for a list of supported options. The + default is ``{}``. -.. data:: CACHE_CONTENT = False +.. data:: CACHE_CONTENT If ``True``, saves content in caches. See - :ref:`reading_only_modified_content` for details about caching. + :ref:`reading_only_modified_content` for details about caching. The default + is ``False``. -.. data:: CONTENT_CACHING_LAYER = 'reader' +.. data:: CONTENT_CACHING_LAYER If set to ``'reader'``, save only the raw content and metadata returned by - readers. If set to ``'generator'``, save processed content objects. + readers. If set to ``'generator'``, save processed content objects. The + default is ``'reader'``. -.. data:: CACHE_PATH = 'cache' +.. data:: CACHE_PATH - Directory in which to store cache files. + Directory in which to store cache files. The default is ``'cache'``. -.. data:: GZIP_CACHE = True +.. data:: GZIP_CACHE - If ``True``, use gzip to (de)compress the cache files. + If ``True``, use gzip to (de)compress the cache files. The default is + ``True``. -.. data:: CHECK_MODIFIED_METHOD = 'mtime' +.. data:: CHECK_MODIFIED_METHOD Controls how files are checked for modifications. @@ -366,23 +407,25 @@ Basic settings - If set to a name of a function provided by the ``hashlib`` module, e.g. ``'md5'``, the file hash is checked. -.. data:: LOAD_CONTENT_CACHE = False + The default is ``'mtime'``. - If ``True``, load unmodified content from caches. +.. data:: LOAD_CONTENT_CACHE -.. data:: FORMATTED_FIELDS = ['summary'] + If ``True``, load unmodified content from caches. The default is ``False``. + +.. data:: FORMATTED_FIELDS A list of metadata fields containing reST/Markdown content to be parsed and - translated to HTML. + translated to HTML. The default is ``['summary']``. -.. data:: PORT = 8000 +.. data:: PORT The TCP port to serve content from the output folder via HTTP when pelican - is run with --listen + is run with ``--listen``. The default is ``8000``. -.. data:: BIND = '' +.. data:: BIND - The IP to which to bind the HTTP server. + The IP to which to bind the HTTP server. The default is ``'127.0.0.1'``. .. _url-settings: @@ -415,7 +458,7 @@ If you don't want that flexibility and instead prefer that your generated output paths mirror your source content's filesystem path hierarchy, try the following settings:: - PATH_METADATA = '(?P.*)\..*' + PATH_METADATA = r'(?P.*)\..*' ARTICLE_URL = ARTICLE_SAVE_AS = PAGE_URL = PAGE_SAVE_AS = '{path_no_ext}.html' Otherwise, you can use a variety of file metadata attributes within URL-related @@ -448,105 +491,113 @@ This would save your articles into something like .. _Python datetime documentation: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior -.. data:: RELATIVE_URLS = False +.. data:: RELATIVE_URLS Defines whether Pelican should use document-relative URLs or not. Only set this to ``True`` when developing/testing and only if you fully understand - the effect it can have on links/feeds. + the effect it can have on links/feeds. The default is ``False``. -.. data:: ARTICLE_URL = '{slug}.html' +.. data:: ARTICLE_URL - The URL to refer to an article. + The URL to refer to an article. The default is ``'{slug}.html'``. -.. data:: ARTICLE_SAVE_AS = '{slug}.html' +.. data:: ARTICLE_SAVE_AS - The place where we will save an article. + The place where we will save an article. The default is ``'{slug}.html'``. -.. data:: ARTICLE_LANG_URL = '{slug}-{lang}.html' +.. data:: ARTICLE_LANG_URL The URL to refer to an article which doesn't use the default language. + The default is ``'{slug}-{lang}.html``. -.. data:: ARTICLE_LANG_SAVE_AS = '{slug}-{lang}.html' +.. data:: ARTICLE_LANG_SAVE_AS The place where we will save an article which doesn't use the default - language. + language. The default is ``'{slug}-{lang}.html'``. -.. data:: DRAFT_URL = 'drafts/{slug}.html' +.. data:: DRAFT_URL - The URL to refer to an article draft. + The URL to refer to an article draft. The default is + ``'drafts/{slug}.html'``. -.. data:: DRAFT_SAVE_AS = 'drafts/{slug}.html' +.. data:: DRAFT_SAVE_AS - The place where we will save an article draft. + The place where we will save an article draft. The default is ``'drafts/{slug}.html'``. -.. data:: DRAFT_LANG_URL = 'drafts/{slug}-{lang}.html' +.. data:: DRAFT_LANG_URL The URL to refer to an article draft which doesn't use the default language. + The default is ``'drafts/{slug}-{lang}.html'``. -.. data:: DRAFT_LANG_SAVE_AS = 'drafts/{slug}-{lang}.html' +.. data:: DRAFT_LANG_SAVE_AS The place where we will save an article draft which doesn't use the default - language. + language. The default is ``'drafts/{slug}-{lang}.html'``. -.. data:: PAGE_URL = 'pages/{slug}.html' +.. data:: PAGE_URL - The URL we will use to link to a page. + The URL we will use to link to a page. The default is + ``'pages/{slug}.html'``. -.. data:: PAGE_SAVE_AS = 'pages/{slug}.html' +.. data:: PAGE_SAVE_AS The location we will save the page. This value has to be the same as - PAGE_URL or you need to use a rewrite in your server config. + PAGE_URL or you need to use a rewrite in your server config. The default + is ``'pages/{slug}.html'``. -.. data:: PAGE_LANG_URL = 'pages/{slug}-{lang}.html' +.. data:: PAGE_LANG_URL The URL we will use to link to a page which doesn't use the default - language. + language. The default is ``'pages/{slug}-{lang}.html'``. -.. data:: PAGE_LANG_SAVE_AS = 'pages/{slug}-{lang}.html' +.. data:: PAGE_LANG_SAVE_AS The location we will save the page which doesn't use the default language. + The default is ``'pages/{slug}-{lang}.html'``. -.. data:: DRAFT_PAGE_URL = 'drafts/pages/{slug}.html' +.. data:: DRAFT_PAGE_URL - The URL used to link to a page draft. + The URL used to link to a page draft. The default is + ``'drafts/pages/{slug}.html'``. -.. data:: DRAFT_PAGE_SAVE_AS = 'drafts/pages/{slug}.html' +.. data:: DRAFT_PAGE_SAVE_AS - The actual location a page draft is saved at. + The actual location a page draft is saved at. The default is + ``'drafts/pages/{slug}.html'``. -.. data:: DRAFT_PAGE_LANG_URL = 'drafts/pages/{slug}-{lang}.html' +.. data:: DRAFT_PAGE_LANG_URL The URL used to link to a page draft which doesn't use the default - language. + language. The default is ``'drafts/pages/{slug}-{lang}.html'``. -.. data:: DRAFT_PAGE_LANG_SAVE_AS = 'drafts/pages/{slug}-{lang}.html' +.. data:: DRAFT_PAGE_LANG_SAVE_AS The actual location a page draft which doesn't use the default language is - saved at. + saved at. The default is ``'drafts/pages/{slug}-{lang}.html'``. -.. data:: AUTHOR_URL = 'author/{slug}.html' +.. data:: AUTHOR_URL - The URL to use for an author. + The URL to use for an author. The default is ``'author/{slug}.html'``. -.. data:: AUTHOR_SAVE_AS = 'author/{slug}.html' +.. data:: AUTHOR_SAVE_AS - The location to save an author. + The location to save an author. The default is ``'author/{slug}.html'``. -.. data:: CATEGORY_URL = 'category/{slug}.html' +.. data:: CATEGORY_URL - The URL to use for a category. + The URL to use for a category. The default is ``'category/{slug}.html'``. -.. data:: CATEGORY_SAVE_AS = 'category/{slug}.html' +.. data:: CATEGORY_SAVE_AS - The location to save a category. + The location to save a category. The default is ``'category/{slug}.html'``. -.. data:: TAG_URL = 'tag/{slug}.html' +.. data:: TAG_URL - The URL to use for a tag. + The URL to use for a tag. The default is ``'tag/{slug}.html'``. -.. data:: TAG_SAVE_AS = 'tag/{slug}.html' +.. data:: TAG_SAVE_AS - The location to save the tag page. + The location to save the tag page. The default is ``'tag/{slug}.html'``. .. note:: @@ -579,85 +630,81 @@ through the URLs ``posts/2011/`` and ``posts/2011/Aug/``, respectively. This way a reader can remove a portion of your URL and automatically arrive at an appropriate archive of posts, without having to specify a page name. -.. data:: YEAR_ARCHIVE_SAVE_AS = '' +.. data:: YEAR_ARCHIVE_SAVE_AS - The location to save per-year archives of your posts. + The location to save per-year archives of your posts. The default is ``''``. -.. data:: YEAR_ARCHIVE_URL = '' +.. data:: YEAR_ARCHIVE_URL The URL to use for per-year archives of your posts. You should set this if - you enable per-year archives. + you enable per-year archives. The default is ``''``. -.. data:: MONTH_ARCHIVE_SAVE_AS = '' +.. data:: MONTH_ARCHIVE_SAVE_AS - The location to save per-month archives of your posts. + The location to save per-month archives of your posts. The default is + ``''``. -.. data:: MONTH_ARCHIVE_URL = '' +.. data:: MONTH_ARCHIVE_URL The URL to use for per-month archives of your posts. You should set this if - you enable per-month archives. + you enable per-month archives. The default is ``''``. -.. data:: DAY_ARCHIVE_SAVE_AS = '' +.. data:: DAY_ARCHIVE_SAVE_AS - The location to save per-day archives of your posts. + The location to save per-day archives of your posts. The default is ``''``. -.. data:: DAY_ARCHIVE_URL = '' +.. data:: DAY_ARCHIVE_URL The URL to use for per-day archives of your posts. You should set this if - you enable per-day archives. + you enable per-day archives. The default is ``''``. ``DIRECT_TEMPLATES`` work a bit differently than noted above. Only the ``_SAVE_AS`` settings are available, but it is available for any direct template. -.. data:: ARCHIVES_SAVE_AS = 'archives.html' +.. data:: ARCHIVES_SAVE_AS - The location to save the article archives page. + The location to save the article archives page. The default is ``'archives.html'``. -.. data:: AUTHORS_SAVE_AS = 'authors.html' +.. data:: AUTHORS_SAVE_AS - The location to save the author list. + The location to save the author list. The default is ``'authors.html'``. -.. data:: CATEGORIES_SAVE_AS = 'categories.html' +.. data:: CATEGORIES_SAVE_AS - The location to save the category list. + The location to save the category list. The default is ``'categories.html'``. -.. data:: TAGS_SAVE_AS = 'tags.html' +.. data:: TAGS_SAVE_AS - The location to save the tag list. + The location to save the tag list. The default is ``'tags.html'``. -.. data:: INDEX_SAVE_AS = 'index.html' +.. data:: INDEX_SAVE_AS - The location to save the list of all articles. + The location to save the list of all articles. The default is ``'index.html'``. URLs for direct template pages are theme-dependent. Some themes use corresponding ``*_URL`` setting as string, while others hard-code them: ``'archives.html'``, ``'authors.html'``, ``'categories.html'``, ``'tags.html'``. -.. data:: SLUGIFY_SOURCE = 'title' +.. data:: SLUGIFY_SOURCE Specifies from where you want the slug to be automatically generated. Can be set to ``title`` to use the "Title:" metadata tag or ``basename`` to use the - article's file name when creating the slug. + article's file name when creating the slug. The default is ``'title'``. -.. data:: SLUGIFY_USE_UNICODE = False +.. data:: SLUGIFY_USE_UNICODE Allow Unicode characters in slugs. Set ``True`` to keep Unicode characters in auto-generated slugs. Otherwise, Unicode characters will be replaced - with ASCII equivalents. + with ASCII equivalents. The default is ``False``. -.. data:: SLUGIFY_PRESERVE_CASE = False +.. data:: SLUGIFY_PRESERVE_CASE Preserve uppercase characters in slugs. Set ``True`` to keep uppercase - characters from ``SLUGIFY_SOURCE`` as-is. + characters from ``SLUGIFY_SOURCE`` as-is. The default is ``False``. -.. data:: SLUG_REGEX_SUBSTITUTIONS = [ - (r'[^\\w\\s-]', ''), # remove non-alphabetical/whitespace/'-' chars - (r'(?u)\\A\\s*', ''), # strip leading whitespace - (r'(?u)\\s*\\Z', ''), # strip trailing whitespace - (r'[-\\s]+', '-'), # reduce multiple whitespace or '-' to single '-' - ] +.. data:: SLUG_REGEX_SUBSTITUTIONS Regex substitutions to make when generating slugs of articles and pages. Specified as a list of pairs of ``(from, to)`` which are applied in order, @@ -665,21 +712,29 @@ corresponding ``*_URL`` setting as string, while others hard-code them: non-alphanumeric characters and converting internal whitespace to dashes. Apart from these substitutions, slugs are always converted to lowercase ascii characters and leading and trailing whitespace is stripped. Useful for - backward compatibility with existing URLs. + backward compatibility with existing URLs. The default is:: -.. data:: AUTHOR_REGEX_SUBSTITUTIONS = SLUG_REGEX_SUBSTITUTIONS + [ + (r'[^\w\s-]', ''), # remove non-alphabetical/whitespace/'-' chars + (r'(?u)\A\s*', ''), # strip leading whitespace + (r'(?u)\s*\Z', ''), # strip trailing whitespace + (r'[-\s]+', '-'), # reduce multiple whitespace or '-' to single '-' + ] - Regex substitutions for author slugs. Defaults to +.. data:: AUTHOR_REGEX_SUBSTITUTIONS + + Regex substitutions for author slugs. The default is ``SLUG_REGEX_SUBSTITUTIONS``. -.. data:: CATEGORY_REGEX_SUBSTITUTIONS = SLUG_REGEX_SUBSTITUTIONS +.. data:: CATEGORY_REGEX_SUBSTITUTIONS - Regex substitutions for category slugs. Defaults to + Regex substitutions for category slugs. The default is ``SLUG_REGEX_SUBSTITUTIONS``. -.. data:: TAG_REGEX_SUBSTITUTIONS = SLUG_REGEX_SUBSTITUTIONS +.. data:: TAG_REGEX_SUBSTITUTIONS - Regex substitutions for tag slugs. Defaults to ``SLUG_REGEX_SUBSTITUTIONS``. + Regex substitutions for tag slugs. The default is + ``SLUG_REGEX_SUBSTITUTIONS``. Time and Date ============= @@ -699,20 +754,20 @@ Time and Date .. _the wikipedia page: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones -.. data:: DEFAULT_DATE = None +.. data:: DEFAULT_DATE The default date you want to use. If ``'fs'``, Pelican will use the file system timestamp information (mtime) if it can't get date information from the metadata. If given any other string, it will be parsed by the same method as article metadata. If set to a tuple object, the default datetime object will instead be generated by passing the tuple to the - ``datetime.datetime`` constructor. + ``datetime.datetime`` constructor. The default is ``None``. -.. data:: DEFAULT_DATE_FORMAT = '%a %d %B %Y' +.. data:: DEFAULT_DATE_FORMAT - The default date format you want to use. + The default date format you want to use. The default is ``'%a %d %B %Y'``. -.. data:: DATE_FORMATS = {} +.. data:: DATE_FORMATS If you manage multiple languages, you can set the date formatting here. @@ -752,9 +807,11 @@ Time and Date 'jp': ('jpn','%Y-%m-%d(%a)'), } + The default is ``{}``. + .. data:: LOCALE - Change the locale [#]_. A list of locales can be provided here or a single + Change the locale. A list of locales can be provided here or a single string representing one locale. When providing a list, all the locales will be tried until one works. @@ -762,17 +819,15 @@ Time and Date .. parsed-literal:: - LOCALE = ('usa', 'jpn', # On Windows + LOCALE = ['usa', 'jpn', # On Windows 'en_US', 'ja_JP' # On Unix/Linux - ) + ] For a list of available locales refer to `locales on Windows`_ or on Unix/Linux, use the ``locale -a`` command; see manpage - `locale(1)`_ for more information. + `locale(1)`_ for more information. The default is the system locale. -.. [#] Default is the system locale. - .. _Jinja custom filters documentation: https://jinja.palletsprojects.com/en/latest/api/#custom-filters .. _Jinja global namespace documentation: https://jinja.palletsprojects.com/en/latest/api/#the-global-namespace .. _Jinja custom tests documentation: https://jinja.palletsprojects.com/en/latest/api/#custom-tests @@ -787,7 +842,7 @@ Time and Date Template pages ============== -.. data:: TEMPLATE_PAGES = None +.. data:: TEMPLATE_PAGES A mapping containing template pages that will be rendered with the blog entries. @@ -803,11 +858,14 @@ Template pages 'src/resume.html': 'dest/resume.html', 'src/contact.html': 'dest/contact.html'} -.. data:: TEMPLATE_EXTENSIONS = ['.html'] + The default is ``{}``. + +.. data:: TEMPLATE_EXTENSIONS The extensions to use when looking up template files from template names. + The default is ``['.html']``. -.. data:: DIRECT_TEMPLATES = ['index', 'authors', 'categories', 'tags', 'archives'] +.. data:: DIRECT_TEMPLATES List of templates that are used directly to render content. Typically direct templates are used to generate index pages for collections of content (e.g., @@ -817,19 +875,21 @@ Template pages ``DIRECT_TEMPLATES`` are searched for over paths maintained in ``THEME_TEMPLATES_OVERRIDES``. + The default is ``['index', 'tags', 'categories', 'authors', 'archives']``. Metadata ======== .. data:: AUTHOR - Default author (usually your name). + Default author (usually your name). The default is ``None``, which removes the byline. -.. data:: DEFAULT_METADATA = {} +.. data:: DEFAULT_METADATA - The default metadata you want to use for all articles and pages. + The default metadata you want to use for all articles and pages. The default + is ``{}``. -.. data:: FILENAME_METADATA = r'(?P\\d{4}-\\d{2}-\\d{2}).*' +.. data:: FILENAME_METADATA The regexp that will be used to extract any metadata from the filename. All named groups that are matched will be set in the metadata object. The @@ -839,14 +899,14 @@ Metadata FILENAME_METADATA = r'(?P\d{4}-\d{2}-\d{2})_(?P.*)' - See also ``SLUGIFY_SOURCE``. + See also ``SLUGIFY_SOURCE``. The default is ``r'(?P\d{4}-\d{2}-\d{2}).*'``. -.. data:: PATH_METADATA = '' +.. data:: PATH_METADATA Like ``FILENAME_METADATA``, but parsed from a page's full path relative to - the content source directory. + the content source directory. The default is ``''``. -.. data:: EXTRA_PATH_METADATA = {} +.. data:: EXTRA_PATH_METADATA Extra metadata dictionaries keyed by relative path. Relative paths require correct OS-specific directory separators (i.e. / in UNIX and \\ in Windows) @@ -892,6 +952,8 @@ file: .. _group name notation: https://docs.python.org/3/library/re.html#regular-expression-syntax + The default is ``{}``. + Feed settings ============= @@ -903,123 +965,127 @@ Pelican generates category feeds as well as feeds for all your articles. It does not generate feeds for tags by default, but it is possible to do so using the ``TAG_FEED_ATOM`` and ``TAG_FEED_RSS`` settings: -.. data:: FEED_DOMAIN = None, i.e. base URL is "/" +.. data:: FEED_DOMAIN The domain prepended to feed URLs. Since feed URLs should always be absolute, it is highly recommended to define this (e.g., - "https://feeds.example.com"). If you have already explicitly defined SITEURL - (see above) and want to use the same domain for your feeds, you can just - set: ``FEED_DOMAIN = SITEURL``. + "https://feeds.example.com"). The default is ``SITEURL``. -.. data:: FEED_ATOM = None, i.e. no Atom feed +.. data:: FEED_ATOM - The location to save the Atom feed. + The location to save the Atom feed. The default is ``None``, for no Atom + feed. -.. data:: FEED_ATOM_URL = None +.. data:: FEED_ATOM_URL Relative URL of the Atom feed. If not set, ``FEED_ATOM`` is used both for - save location and URL. + save location and URL. The default is ``None``. -.. data:: FEED_RSS = None, i.e. no RSS +.. data:: FEED_RSS - The location to save the RSS feed. + The location to save the RSS feed. The default is ``None``, for no RSS feed. -.. data:: FEED_RSS_URL = None +.. data:: FEED_RSS_URL Relative URL of the RSS feed. If not set, ``FEED_RSS`` is used both for save - location and URL. + location and URL. The default is ``None``. -.. data:: FEED_ALL_ATOM = 'feeds/all.atom.xml' +.. data:: FEED_ALL_ATOM The location to save the all-posts Atom feed: this feed will contain all - posts regardless of their language. + posts regardless of their language. The default is ``'feeds/all.atom.xml'``. -.. data:: FEED_ALL_ATOM_URL = None +.. data:: FEED_ALL_ATOM_URL Relative URL of the all-posts Atom feed. If not set, ``FEED_ALL_ATOM`` is - used both for save location and URL. + used both for save location and URL. The default is ``None``. -.. data:: FEED_ALL_RSS = None, i.e. no all-posts RSS +.. data:: FEED_ALL_RSS The location to save the the all-posts RSS feed: this feed will contain all - posts regardless of their language. + posts regardless of their language. The default is ``None``, for no + all-posts RSS feed. -.. data:: FEED_ALL_RSS_URL = None +.. data:: FEED_ALL_RSS_URL Relative URL of the all-posts RSS feed. If not set, ``FEED_ALL_RSS`` is used - both for save location and URL. + both for save location and URL. The default is ``None``. -.. data:: CATEGORY_FEED_ATOM = 'feeds/{slug}.atom.xml' +.. data:: CATEGORY_FEED_ATOM - The location to save the category Atom feeds. [2]_ + The location to save the category Atom feeds. [2]_ The default is + ``'feeds/{slug}.atom.xml'``. -.. data:: CATEGORY_FEED_ATOM_URL = None +.. data:: CATEGORY_FEED_ATOM_URL Relative URL of the category Atom feeds, including the ``{slug}`` placeholder. [2]_ If not set, ``CATEGORY_FEED_ATOM`` is used both for save - location and URL. + location and URL. The default is ``None``. -.. data:: CATEGORY_FEED_RSS = None, i.e. no RSS +.. data:: CATEGORY_FEED_RSS The location to save the category RSS feeds, including the ``{slug}`` - placeholder. [2]_ + placeholder. [2]_ The default is ``None``, for no RSS feed. -.. data:: CATEGORY_FEED_RSS_URL = None +.. data:: CATEGORY_FEED_RSS_URL Relative URL of the category RSS feeds, including the ``{slug}`` placeholder. [2]_ If not set, ``CATEGORY_FEED_RSS`` is used both for save - location and URL. + location and URL. The default is ``None``. -.. data:: AUTHOR_FEED_ATOM = 'feeds/{slug}.atom.xml' +.. data:: AUTHOR_FEED_ATOM - The location to save the author Atom feeds. [2]_ + The location to save the author Atom feeds. [2]_ The default is + ``'feeds/{slug}.atom.xml'``. -.. data:: AUTHOR_FEED_ATOM_URL = None +.. data:: AUTHOR_FEED_ATOM_URL Relative URL of the author Atom feeds, including the ``{slug}`` placeholder. [2]_ If not set, ``AUTHOR_FEED_ATOM`` is used both for save location and - URL. + URL. The default is ``None`` (not set). -.. data:: AUTHOR_FEED_RSS = 'feeds/{slug}.rss.xml' +.. data:: AUTHOR_FEED_RSS - The location to save the author RSS feeds. [2]_ + The location to save the author RSS feeds. [2]_ The default is + ``'feeds/{slug}.rss.xml'``. -.. data:: AUTHOR_FEED_RSS_URL = None +.. data:: AUTHOR_FEED_RSS_URL Relative URL of the author RSS feeds, including the ``{slug}`` placeholder. [2]_ If not set, ``AUTHOR_FEED_RSS`` is used both for save location and URL. + The default is ``None``. -.. data:: TAG_FEED_ATOM = None, i.e. no tag feed +.. data:: TAG_FEED_ATOM The location to save the tag Atom feed, including the ``{slug}`` - placeholder. [2]_ + placeholder. [2]_ The default is ``None``, for no tag feed. -.. data:: TAG_FEED_ATOM_URL = None +.. data:: TAG_FEED_ATOM_URL Relative URL of the tag Atom feed, including the ``{slug}`` placeholder. - [2]_ + [2]_ The default is ``None``. -.. data:: TAG_FEED_RSS = None, i.e. no RSS tag feed +.. data:: TAG_FEED_RSS Relative URL to output the tag RSS feed, including the ``{slug}`` placeholder. If not set, ``TAG_FEED_RSS`` is used both for save location and - URL. + URL. The default is ``None``, for no tag feed. -.. data:: FEED_MAX_ITEMS = 100 +.. data:: FEED_MAX_ITEMS Maximum number of items allowed in a feed. Setting to ``None`` will cause the - feed to contains every article. 100 if not specified. + feed to contains every article. 100 if not specified. The default is ``100``. -.. data:: RSS_FEED_SUMMARY_ONLY = True +.. data:: RSS_FEED_SUMMARY_ONLY Only include item summaries in the ``description`` tag of RSS feeds. If set to ``False``, the full content will be included instead. This setting - doesn't affect Atom feeds, only RSS ones. + doesn't affect Atom feeds, only RSS ones. The default is ``True``. -.. data:: FEED_APPEND_REF = False +.. data:: FEED_APPEND_REF If set to ``True``, ``?ref=feed`` will be appended to links in generated - feeds for the purpose of referrer tracking. + feeds for the purpose of referrer tracking. The default is ``False``. If you don't want to generate some or any of these feeds, set the above variables to ``None``. @@ -1037,27 +1103,32 @@ paginating this list. You can use the following settings to configure the pagination. -.. data:: DEFAULT_ORPHANS = 0 +.. data:: DEFAULT_ORPHANS The minimum number of articles allowed on the last page. Use this when you - don't want the last page to only contain a handful of articles. + don't want the last page to only contain a handful of articles. The default + is ``0``. -.. data:: DEFAULT_PAGINATION = False +.. data:: DEFAULT_PAGINATION The maximum number of articles to include on a page, not including orphans. - False to disable pagination. + False to disable pagination. The default is ``False``. -.. data:: PAGINATED_TEMPLATES = {'index': None, 'tag': None, 'category': None, 'author': None} +.. data:: PAGINATED_TEMPLATES The templates to use pagination with, and the number of articles to include on a page. If this value is ``None``, it defaults to ``DEFAULT_PAGINATION``. + The default is ``{'index': None, 'tag': None, 'category': None, 'author': None}``. -.. data:: PAGINATION_PATTERNS = ( - (1, '{name}{extension}', '{name}{extension}'), - (2, '{name}{number}{extension}', '{name}{number}{extension}'), - ) +.. data:: PAGINATION_PATTERNS - A set of patterns that are used to determine advanced pagination output. + A set of patterns that are used to determine advanced pagination output. The + default is:: + + ( + (1, '{name}{extension}', '{name}{extension}'), + (2, '{name}{number}{extension}', '{name}{number}{extension}'), + ) Using Pagination Patterns @@ -1097,59 +1168,62 @@ Translations Pelican offers a way to translate articles. See the :doc:`Content ` section for more information. -.. data:: DEFAULT_LANG = 'en' +.. data:: DEFAULT_LANG - The default language to use. + The default language to use. The default is ``'en'``. -.. data:: ARTICLE_TRANSLATION_ID = 'slug' +.. data:: ARTICLE_TRANSLATION_ID The metadata attribute(s) used to identify which articles are translations of one another. May be a string or a collection of strings. Set to ``None`` - or ``False`` to disable the identification of translations. + or ``False`` to disable the identification of translations. The default is + ``'slug'``. -.. data:: PAGE_TRANSLATION_ID = 'slug' +.. data:: PAGE_TRANSLATION_ID The metadata attribute(s) used to identify which pages are translations of one another. May be a string or a collection of strings. Set to ``None`` or - ``False`` to disable the identification of translations. + ``False`` to disable the identification of translations. The default is + ``'slug'``. -.. data:: TRANSLATION_FEED_ATOM = 'feeds/all-{lang}.atom.xml' +.. data:: TRANSLATION_FEED_ATOM - The location to save the Atom feed for translations. [3]_ + The location to save the Atom feed for translations. [3]_ The default is + ``'feeds/all-{lang}.atom.xml'``. -.. data:: TRANSLATION_FEED_ATOM_URL = None +.. data:: TRANSLATION_FEED_ATOM_URL Relative URL of the Atom feed for translations, including the ``{lang}`` placeholder. [3]_ If not set, ``TRANSLATION_FEED_ATOM`` is used both for - save location and URL. + save location and URL. The default is ``None``. -.. data:: TRANSLATION_FEED_RSS = None, i.e. no RSS +.. data:: TRANSLATION_FEED_RSS - Where to put the RSS feed for translations. + Where to put the RSS feed for translations. The default is ``None``, + meaning no RSS feed. -.. data:: TRANSLATION_FEED_RSS_URL = None +.. data:: TRANSLATION_FEED_RSS_URL Relative URL of the RSS feed for translations, including the ``{lang}`` placeholder. [3]_ If not set, ``TRANSLATION_FEED_RSS`` is used both for save - location and URL. + location and URL. The default is ``None``. .. [3] {lang} is the language code - Ordering content ================ -.. data:: NEWEST_FIRST_ARCHIVES = True +.. data:: NEWEST_FIRST_ARCHIVES Order archives by newest first by date. (False: orders by date with older - articles first.) + articles first.) The default is ``True``. -.. data:: REVERSE_CATEGORY_ORDER = False +.. data:: REVERSE_CATEGORY_ORDER Reverse the category order. (True: lists by reverse alphabetical order; - default lists alphabetically.) + default lists alphabetically.) The default is ``False``. -.. data:: ARTICLE_ORDER_BY = 'reversed-date' +.. data:: ARTICLE_ORDER_BY Defines how the articles (``articles_page.object_list`` in the template) are sorted. Valid options are: metadata as a string (use ``reversed-`` prefix @@ -1157,13 +1231,14 @@ Ordering content the basename of the file (without path), or a custom function to extract the sorting key from articles. Using a value of ``'date'`` will sort articles in chronological order, while the default value, ``'reversed-date'``, will sort - articles by date in reverse order (i.e., newest article comes first). + articles by date in reverse order (i.e., newest article comes first). The + default is ``'reversed-date'``. -.. data:: PAGE_ORDER_BY = 'basename' +.. data:: PAGE_ORDER_BY Defines how the pages (``pages`` variable in the template) are sorted. Options are same as ``ARTICLE_ORDER_BY``. The default value, ``'basename'`` - will sort pages by their basename. + will sort pages by their basename. The default is ``'basename'``. .. _settings/themes: @@ -1179,27 +1254,28 @@ themes. Theme to use to produce the output. Can be a relative or absolute path to a theme folder, or the name of a default theme or a theme installed via - :doc:`pelican-themes` (see below). + :doc:`pelican-themes` (see below). The default theme is "notmyidea". -.. data:: THEME_STATIC_DIR = 'theme' +.. data:: THEME_STATIC_DIR Destination directory in the output path where Pelican will place the files - collected from `THEME_STATIC_PATHS`. Default is `theme`. + collected from `THEME_STATIC_PATHS`. Default is `theme`. The default is + ``'theme'``. -.. data:: THEME_STATIC_PATHS = ['static'] +.. data:: THEME_STATIC_PATHS Static theme paths you want to copy. Default value is `static`, but if your theme has other static paths, you can put them here. If files or directories with the same names are included in the paths defined in this settings, they - will be progressively overwritten. + will be progressively overwritten. The default is ``['static']``. -.. data:: THEME_TEMPLATES_OVERRIDES = [] +.. data:: THEME_TEMPLATES_OVERRIDES A list of paths you want Jinja2 to search for templates before searching the theme's ``templates/`` directory. Allows for overriding individual theme template files without having to fork an existing theme. Jinja2 searches in the following order: files in ``THEME_TEMPLATES_OVERRIDES`` first, then the - theme's ``templates/``. + theme's ``templates/``. The default is ``[]``. You can also extend templates from the theme using the ``{% extends %}`` directive utilizing the ``!theme`` prefix as shown in the following example: @@ -1208,9 +1284,9 @@ themes. {% extends '!theme/article.html' %} -.. data:: CSS_FILE = 'main.css' +.. data:: CSS_FILE - Specify the CSS file you want to load. + Specify the CSS file you want to load. The default is ``'main.css'``. By default, two themes are available. You can specify them using the ``THEME`` setting or by passing the ``-t`` option to the ``pelican`` command: @@ -1241,24 +1317,24 @@ The built-in ``simple`` theme can be customized using the following settings. .. data:: STYLESHEET_URL - The URL of the stylesheet to use. + The URL of the stylesheet to use. The default is ``None``. The built-in ``notmyidea`` theme can make good use of the following settings. Feel free to use them in your themes as well. .. data:: SITESUBTITLE - A subtitle to appear in the header. + A subtitle to appear in the header. The default is ``None``. .. data:: DISQUS_SITENAME Pelican can handle Disqus comments. Specify the Disqus sitename identifier - here. + here. The default is ``None``. .. data:: GITHUB_URL Your GitHub URL (if you have one). It will then use this information to - create a GitHub ribbon. + create a GitHub ribbon. The default is ``None``. .. data:: ANALYTICS @@ -1274,33 +1350,38 @@ Feel free to use them in your themes as well. """ + The default is ``None``. + .. data:: MENUITEMS A list of tuples (Title, URL) for additional menu items to appear at the - beginning of the main menu. + beginning of the main menu. The default is ``None``. .. data:: LINKS - A list of tuples (Title, URL) for links to appear on the header. + A list of tuples (Title, URL) for links to appear on the header. The + default is ``None``. .. data:: SOCIAL - A list of tuples (Title, URL) to appear in the "social" section. + A list of tuples (Title, URL) to appear in the "social" section. The + default is ``None``. .. data:: TWITTER_USERNAME Allows for adding a button to articles to encourage others to tweet about - them. Add your Twitter username if you want this button to appear. + them. Add your Twitter username if you want this button to appear. The + default is ``None``. .. data:: LINKS_WIDGET_NAME Allows override of the name of the links widget. If not specified, defaults - to "links". + to "links". The default is ``None``. .. data:: SOCIAL_WIDGET_NAME Allows override of the name of the "social" widget. If not specified, - defaults to "social". + defaults to "social". The default is ``None``. In addition, you can use the "wide" version of the ``notmyidea`` theme by adding the following to your configuration:: @@ -1416,3 +1497,4 @@ Example settings .. _Jinja Environment documentation: https://jinja.palletsprojects.com/en/latest/api/#jinja2.Environment .. _Docutils Configuration: http://docutils.sourceforge.net/docs/user/config.html +.. _`watchfiles documentation`: https://watchfiles.helpmanual.io/api/filters/#watchfiles.DefaultFilter.ignore_dirs diff --git a/docs/tips.rst b/docs/tips.rst index e5574c7c..4df20ae3 100644 --- a/docs/tips.rst +++ b/docs/tips.rst @@ -246,7 +246,52 @@ Here's the complete list of workflow inputs: | | | your GitHub Pages site, which is correct | | | | | | in most cases. | | | +------------------+----------+--------------------------------------------+--------+---------------+ +| ``deploy`` | No | This is used to determine whether you will | bool | ``true`` | +| | | deploy the site or not to GitHub Pages. | | | +| | | This is most useful if you want to test a | | | +| | | change to your website in a pull request | | | +| | | before deploying those change. | | | ++------------------+----------+--------------------------------------------+--------+---------------+ +Testing Your Build in a GitHub Pull Request +""""""""""""""""""""""""""""""""""""""""""" + +If you want to test your build in a pull request before deploying to GitHub, your workflow might look something like this: + +.. code-block:: yaml + + name: Build and Deploy Site + on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + workflow_dispatch: + inputs: + deploy: + required: false + default: true + description: "Whether to deploy the site. If checked, then build the site and deploy it. If not checked, then just test that the site builds successfully but don't deploy anything." + type: boolean + jobs: + deploy: + uses: "getpelican/pelican/.github/workflows/github_pages.yml@main" + permissions: + id-token: write + contents: read + pages: write + with: + settings: "publishconf.py" + requirements: "-r requirements.txt" + deploy: ${{ (github.event_name == 'workflow_dispatch' && inputs.deploy == true) || (github.event_name == 'push' && github.ref_type == 'branch' && github.ref_name == github.event.repository.default_branch) }} + +The ``on`` section of the workflow defines the events that will trigger the workflow. In this example, the workflow will run on pushes to the main branch, pull requests to the main branch, and manual runs of the workflow. + +``workflow_dispatch`` defines the deploy boolean to be true by default. This means that if you run the workflow manually, it will deploy the site. + +The ``deploy`` input for the job is using a set of standard GitHub workflow variables to control when ``deploy`` will either be true or false (you can customize this to your needs). + +In this example, the ``deploy`` will be true if the event is a push to the main branch (or merging into main from a PR) or a manual run of the workflow. If the event is a pull request, the ``deploy`` will be false and it will only build an artifact for the site. "Insecure content" warnings from browsers """"""""""""""""""""""""""""""""""""""""" diff --git a/pelican/__init__.py b/pelican/__init__.py index 89a63e84..8d916fc7 100644 --- a/pelican/__init__.py +++ b/pelican/__init__.py @@ -252,6 +252,7 @@ class Pelican: class PrintSettings(argparse.Action): def __call__(self, parser, namespace, values, option_string): + del option_string # Unused argument init_logging(name=__name__) try: @@ -287,6 +288,7 @@ class PrintSettings(argparse.Action): class ParseOverrides(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): + del parser, option_string # Unused arguments overrides = {} for item in values: try: @@ -402,8 +404,7 @@ def parse_arguments(argv=None): "--autoreload", dest="autoreload", action="store_true", - help="Relaunch pelican each time a modification occurs" - " on the content files.", + help="Relaunch pelican each time a modification occurs on the content files.", ) parser.add_argument( @@ -446,8 +447,7 @@ def parse_arguments(argv=None): choices=("errors", "warnings"), default="", help=( - "Exit the program with non-zero status if any " - "errors/warnings encountered." + "Exit the program with non-zero status if any errors/warnings encountered." ), ) diff --git a/pelican/cache.py b/pelican/cache.py index d1f8550e..8bd34268 100644 --- a/pelican/cache.py +++ b/pelican/cache.py @@ -1,3 +1,4 @@ +import gzip import hashlib import logging import os @@ -22,8 +23,6 @@ class FileDataCacher: self._cache_path = os.path.join(self.settings["CACHE_PATH"], cache_name) self._cache_data_policy = caching_policy if self.settings["GZIP_CACHE"]: - import gzip - self._cache_open = gzip.open else: self._cache_open = open diff --git a/pelican/contents.py b/pelican/contents.py index 0769f875..a06a1a6a 100644 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -4,9 +4,8 @@ import locale import logging import os import re -from datetime import timezone from html import unescape -from typing import Any, Dict, Optional, Set, Tuple +from typing import Any, Optional from urllib.parse import ParseResult, unquote, urljoin, urlparse, urlunparse try: @@ -47,7 +46,7 @@ class Content: """ default_template: Optional[str] = None - mandatory_properties: Tuple[str, ...] = () + mandatory_properties: tuple[str, ...] = () @deprecated_attribute(old="filename", new="source_path", since=(3, 2, 0)) def filename(): @@ -56,10 +55,10 @@ class Content: def __init__( self, content: str, - metadata: Optional[Dict[str, Any]] = None, + metadata: Optional[dict[str, Any]] = None, settings: Optional[Settings] = None, source_path: Optional[str] = None, - context: Optional[Dict[Any, Any]] = None, + context: Optional[dict[Any, Any]] = None, ): if metadata is None: metadata = {} @@ -226,7 +225,7 @@ class Content: ) @property - def url_format(self) -> Dict[str, Any]: + def url_format(self) -> dict[str, Any]: """Returns the URL, formatted with the proper values""" metadata = copy.copy(self.metadata) path = self.metadata.get("path", self.get_relative_source_path()) @@ -343,8 +342,7 @@ class Content: value.geturl(), extra={ "limit_msg": ( - "Other resources were not found " - "and their urls not replaced" + "Other resources were not found and their urls not replaced" ) }, ) @@ -358,8 +356,9 @@ class Content: origin = joiner(siteurl, Author(path, self.settings).url) else: logger.warning( - "Replacement Indicator '%s' not recognized, skipping replacement", + "Replacement Indicator %r not recognized in %r, skipping replacement", what, + origin, ) # keep all other parts, such as query, fragment, etc. @@ -396,7 +395,7 @@ class Content: hrefs = self._get_intrasite_link_regex() return hrefs.sub(lambda m: self._link_replacer(siteurl, m), content) - def get_static_links(self) -> Set[str]: + def get_static_links(self) -> set[str]: static_links = set() hrefs = self._get_intrasite_link_regex() for m in hrefs.finditer(self._content): @@ -432,7 +431,7 @@ class Content: return self.get_content(self.get_siteurl()) @memoized - def get_summary(self, siteurl: str) -> str: + def get_summary(self, _siteurl: str) -> str: """Returns the summary of an article. This is based on the summary metadata if set, otherwise truncate the @@ -450,7 +449,7 @@ class Content: return content return truncate_html_words( - self.content, + content, self.settings["SUMMARY_MAX_LENGTH"], self.settings["SUMMARY_END_SUFFIX"], ) @@ -553,6 +552,7 @@ class SkipStub(Content): def __init__( self, content, metadata=None, settings=None, source_path=None, context=None ): + del content, metadata, settings, context # Unused arguments self.source_path = source_path def is_valid(self): @@ -592,7 +592,7 @@ class Article(Content): if self.date.tzinfo is None: now = datetime.datetime.now() else: - now = datetime.datetime.utcnow().replace(tzinfo=timezone.utc) + now = datetime.datetime.now(datetime.timezone.utc) if self.date > now: self.status = "draft" diff --git a/pelican/generators.py b/pelican/generators.py index 6b44d79e..e04d1733 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -7,7 +7,7 @@ from collections import defaultdict from functools import partial from itertools import chain, groupby from operator import attrgetter -from typing import List, Optional, Set +from typing import Optional from jinja2 import ( BaseLoader, @@ -138,7 +138,7 @@ class Generator: def _include_path(self, path, extensions=None): """Inclusion logic for .get_files(), returns True/False - :param path: the path which might be including + :param path: potential path to include (relative to content root) :param extensions: the list of allowed extensions, or False if all extensions are allowed """ @@ -158,8 +158,8 @@ class Generator: return False def get_files( - self, paths, exclude: Optional[List[str]] = None, extensions=None - ) -> Set[str]: + self, paths, exclude: Optional[list[str]] = None, extensions=None + ) -> set[str]: """Return a list of files to use, based on rules :param paths: the list pf paths to search (relative to self.path) @@ -253,7 +253,7 @@ class Generator: # return the name of the class for logging purposes return self.__class__.__name__ - def _check_disabled_readers(self, paths, exclude: Optional[List[str]]) -> None: + def _check_disabled_readers(self, paths, exclude: Optional[list[str]]) -> None: """Log warnings for files that would have been processed by disabled readers.""" for fil in self.get_files( paths, exclude=exclude, extensions=self.readers.disabled_extensions @@ -296,6 +296,7 @@ class _FileLoader(BaseLoader): self.fullpath = os.path.join(basedir, path) def get_source(self, environment, template): + del environment # Unused argument if template != self.path or not os.path.exists(self.fullpath): raise TemplateNotFound(template) mtime = os.path.getmtime(self.fullpath) @@ -1022,6 +1023,7 @@ class StaticGenerator(Generator): signals.static_generator_finalized.send(self) def generate_output(self, writer): + del writer # Unused argument self._copy_paths( self.settings["THEME_STATIC_PATHS"], self.theme, @@ -1131,6 +1133,7 @@ class SourceFileGenerator(Generator): copy(obj.source_path, dest) def generate_output(self, writer=None): + del writer # Unused argument logger.info("Generating source files...") for obj in chain(self.context["articles"], self.context["pages"]): self._create_source(obj) diff --git a/pelican/log.py b/pelican/log.py index edf2f182..27478d14 100644 --- a/pelican/log.py +++ b/pelican/log.py @@ -1,4 +1,5 @@ import logging +import warnings from collections import defaultdict from rich.console import Console @@ -156,8 +157,6 @@ def init( def log_warnings(): - import warnings - logging.captureWarnings(True) warnings.simplefilter("default", DeprecationWarning) init(logging.DEBUG, name="py.warnings") diff --git a/pelican/paginator.py b/pelican/paginator.py index 4a7c1aa2..9dcbb9d7 100644 --- a/pelican/paginator.py +++ b/pelican/paginator.py @@ -53,7 +53,7 @@ class Paginator: "Returns the total number of pages." if self._num_pages is None: hits = max(1, self.count - self.orphans) - self._num_pages = int(ceil(hits / (float(self.per_page) or 1))) + self._num_pages = ceil(hits / (float(self.per_page) or 1)) return self._num_pages num_pages = property(_get_num_pages) diff --git a/pelican/plugins/_utils.py b/pelican/plugins/_utils.py index 9dfc8f81..e21201a7 100644 --- a/pelican/plugins/_utils.py +++ b/pelican/plugins/_utils.py @@ -19,7 +19,7 @@ def iter_namespace(ns_pkg): def get_namespace_plugins(ns_pkg=None): if ns_pkg is None: - import pelican.plugins as ns_pkg + import pelican.plugins as ns_pkg # noqa: PLC0415 return { name: importlib.import_module(name) @@ -29,7 +29,7 @@ def get_namespace_plugins(ns_pkg=None): def list_plugins(ns_pkg=None): - from pelican.log import init as init_logging + from pelican.log import init as init_logging # noqa: PLC0415 init_logging(logging.INFO) ns_plugins = get_namespace_plugins(ns_pkg) diff --git a/pelican/readers.py b/pelican/readers.py index 59aa7ca3..ca1b2393 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -45,15 +45,15 @@ DUPLICATES_DEFINITIONS_ALLOWED = { METADATA_PROCESSORS = { "tags": lambda x, y: ([Tag(tag, y) for tag in ensure_metadata_list(x)] or _DISCARD), - "date": lambda x, y: get_date(x.replace("_", " ")), - "modified": lambda x, y: get_date(x), - "status": lambda x, y: x.strip() or _DISCARD, + "date": lambda x, _y: get_date(x.replace("_", " ")), + "modified": lambda x, _y: get_date(x), + "status": lambda x, _y: x.strip() or _DISCARD, "category": lambda x, y: _process_if_nonempty(Category, x, y), "author": lambda x, y: _process_if_nonempty(Author, x, y), "authors": lambda x, y: ( [Author(author, y) for author in ensure_metadata_list(x)] or _DISCARD ), - "slug": lambda x, y: x.strip() or _DISCARD, + "slug": lambda x, _y: x.strip() or _DISCARD, } logger = logging.getLogger(__name__) @@ -121,6 +121,7 @@ class BaseReader: def read(self, source_path): "No-op parser" + del source_path # Unused argument content = None metadata = {} return content, metadata @@ -165,6 +166,7 @@ class PelicanHTMLTranslator(HTMLTranslator): self.body.append(self.starttag(node, "abbr", "", **attrs)) def depart_abbreviation(self, node): + del node # Unused argument self.body.append("") def visit_image(self, node): @@ -630,8 +632,9 @@ class Readers(FileStampDataCacher): # eventually filter the content with typogrify if asked so if self.settings["TYPOGRIFY"]: - import smartypants - from typogrify.filters import typogrify + # typogrify is an optional feature, user may not have it installed + import smartypants # noqa: PLC0415 + from typogrify.filters import typogrify # noqa: PLC0415 typogrify_dashes = self.settings["TYPOGRIFY_DASHES"] if typogrify_dashes == "oldschool": @@ -648,11 +651,22 @@ class Readers(FileStampDataCacher): smartypants.Attr.default |= smartypants.Attr.w def typogrify_wrapper(text): - """Ensures ignore_tags feature is backward compatible""" + """Ensure compatibility with older versions of Typogrify. + + The 'TYPOGRIFY_IGNORE_TAGS' and/or 'TYPOGRIFY_OMIT_FILTERS' + settings will be ignored if the installed version of Typogrify + doesn't have the corresponding features.""" try: - return typogrify(text, self.settings["TYPOGRIFY_IGNORE_TAGS"]) + return typogrify( + text, + self.settings["TYPOGRIFY_IGNORE_TAGS"], + **dict.fromkeys(self.settings["TYPOGRIFY_OMIT_FILTERS"], False), + ) except TypeError: - return typogrify(text) + try: + typogrify(text, self.settings["TYPOGRIFY_IGNORE_TAGS"]) + except TypeError: + return typogrify(text) if content: content = typogrify_wrapper(content) diff --git a/pelican/rstdirectives.py b/pelican/rstdirectives.py index 9022ac83..e45a0582 100644 --- a/pelican/rstdirectives.py +++ b/pelican/rstdirectives.py @@ -79,6 +79,7 @@ class abbreviation(nodes.Inline, nodes.TextElement): def abbr_role(typ, rawtext, text, lineno, inliner, options=None, content=None): + del typ, rawtext, lineno, inliner, options, content # Unused arguments text = utils.unescape(text) m = _abbr_re.search(text) if m is None: diff --git a/pelican/server.py b/pelican/server.py index ebf13677..c4607e21 100644 --- a/pelican/server.py +++ b/pelican/server.py @@ -122,8 +122,8 @@ class ComplexHTTPRequestHandler(server.SimpleHTTPRequestHandler): return mimetype - def log_message(self, format, *args): - logger.info(format, *args) + def log_message(self, msg_format, *args): + logger.info(msg_format, *args) class RootedHTTPServer(server.HTTPServer): diff --git a/pelican/settings.py b/pelican/settings.py index 66d6beeb..2f3f8fa1 100644 --- a/pelican/settings.py +++ b/pelican/settings.py @@ -9,9 +9,10 @@ import sys from os.path import isabs from pathlib import Path from types import ModuleType -from typing import Any, Dict, Optional +from typing import Any, Optional from pelican.log import LimitFilter +from pelican.paginator import PaginationRule def load_source(name: str, path: str) -> ModuleType: @@ -24,7 +25,7 @@ def load_source(name: str, path: str) -> ModuleType: logger = logging.getLogger(__name__) -Settings = Dict[str, Any] +Settings = dict[str, Any] DEFAULT_THEME = os.path.join( os.path.dirname(os.path.abspath(__file__)), "themes", "notmyidea" @@ -144,11 +145,12 @@ DEFAULT_CONFIG = { "DEFAULT_ORPHANS": 0, "DEFAULT_METADATA": {}, "FILENAME_METADATA": r"(?P\d{4}-\d{2}-\d{2}).*", - "PATH_METADATA": "", + "PATH_METADATA": r"", "EXTRA_PATH_METADATA": {}, "ARTICLE_PERMALINK_STRUCTURE": "", "TYPOGRIFY": False, "TYPOGRIFY_IGNORE_TAGS": [], + "TYPOGRIFY_OMIT_FILTERS": [], "TYPOGRIFY_DASHES": "default", "SUMMARY_END_SUFFIX": "…", "SUMMARY_MAX_LENGTH": 50, @@ -157,7 +159,7 @@ DEFAULT_CONFIG = { "PYGMENTS_RST_OPTIONS": {}, "TEMPLATE_PAGES": {}, "TEMPLATE_EXTENSIONS": [".html"], - "IGNORE_FILES": [".#*"], + "IGNORE_FILES": ["**/.*"], "SLUG_REGEX_SUBSTITUTIONS": [ (r"[^\w\s-]", ""), # remove non-alphabetical/whitespace/'-' chars (r"(?u)\A\s*", ""), # strip leading whitespace @@ -319,8 +321,7 @@ def handle_deprecated_settings(settings: Settings) -> Settings: # EXTRA_TEMPLATES_PATHS -> THEME_TEMPLATES_OVERRIDES if "EXTRA_TEMPLATES_PATHS" in settings: logger.warning( - "EXTRA_TEMPLATES_PATHS is deprecated use " - "THEME_TEMPLATES_OVERRIDES instead." + "EXTRA_TEMPLATES_PATHS is deprecated use THEME_TEMPLATES_OVERRIDES instead." ) if settings.get("THEME_TEMPLATES_OVERRIDES"): raise Exception( @@ -452,8 +453,7 @@ def handle_deprecated_settings(settings: Settings) -> Settings: settings[key] = _printf_s_to_format_field(settings[key], "lang") except ValueError: logger.warning( - "Failed to convert %%s to {lang} for %s. " - "Falling back to default.", + "Failed to convert %%s to {lang} for %s. Falling back to default.", key, ) settings[key] = DEFAULT_CONFIG[key] @@ -475,8 +475,7 @@ def handle_deprecated_settings(settings: Settings) -> Settings: settings[key] = _printf_s_to_format_field(settings[key], "slug") except ValueError: logger.warning( - "Failed to convert %%s to {slug} for %s. " - "Falling back to default.", + "Failed to convert %%s to {slug} for %s. Falling back to default.", key, ) settings[key] = DEFAULT_CONFIG[key] @@ -613,7 +612,7 @@ def configure_settings(settings: Settings) -> Settings: ]: if key in settings and not isinstance(settings[key], types): value = settings.pop(key) - logger.warn( + logger.warning( "Detected misconfigured %s (%s), falling back to the default (%s)", key, value, @@ -688,8 +687,6 @@ def configure_settings(settings: Settings) -> Settings: ) # fix up pagination rules - from pelican.paginator import PaginationRule - pagination_rules = [ PaginationRule(*r) for r in settings.get( diff --git a/pelican/tests/default_conf.py b/pelican/tests/default_conf.py index 583c3253..c675d9ab 100644 --- a/pelican/tests/default_conf.py +++ b/pelican/tests/default_conf.py @@ -12,20 +12,20 @@ DEFAULT_PAGINATION = 2 FEED_RSS = "feeds/all.rss.xml" CATEGORY_FEED_RSS = "feeds/{slug}.rss.xml" -LINKS = ( +LINKS = [ ("Biologeek", "http://biologeek.org"), ("Filyb", "http://filyb.info/"), ("Libert-fr", "http://www.libert-fr.com"), ("N1k0", "http://prendreuncafe.com/blog/"), ("Tarek Ziadé", "http://ziade.org/blog"), ("Zubin Mithra", "http://zubin71.wordpress.com/"), -) +] -SOCIAL = ( +SOCIAL = [ ("twitter", "http://twitter.com/ametaireau"), ("lastfm", "http://lastfm.com/user/akounet"), ("github", "http://github.com/ametaireau"), -) +] # global metadata to all the contents DEFAULT_METADATA = {"yeah": "it is"} diff --git a/pelican/tests/output/basic/feeds/alexis-metaireau.atom.xml b/pelican/tests/output/basic/feeds/alexis-metaireau.atom.xml index a0306a0b..94d038c8 100644 --- a/pelican/tests/output/basic/feeds/alexis-metaireau.atom.xml +++ b/pelican/tests/output/basic/feeds/alexis-metaireau.atom.xml @@ -1,5 +1,5 @@ -A Pelican Blog - Alexis Métaireau/2013-11-17T23:29:00+00:00This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported +A Pelican Blog - Alexis Métaireau/2013-11-17T23:29:00+00:00This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported as well as <strong>inline markup</strong>.</p> <p>Some content here !</p> <div class="section" id="this-is-a-simple-title"> @@ -13,10 +13,10 @@ as well as <strong>inline markup</strong>.</p> </pre> <p>→ And now try with some utf8 hell: ééé</p> </div> -Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> +Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> <h2>Why not ?</h2> <p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! YEAH !</p> <img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> </div> - + diff --git a/pelican/tests/output/basic/feeds/alexis-metaireau.rss.xml b/pelican/tests/output/basic/feeds/alexis-metaireau.rss.xml index d4989286..876648a8 100644 --- a/pelican/tests/output/basic/feeds/alexis-metaireau.rss.xml +++ b/pelican/tests/output/basic/feeds/alexis-metaireau.rss.xml @@ -1,10 +1,10 @@ -A Pelican Blog - Alexis Métaireau/Sun, 17 Nov 2013 23:29:00 +0000This is a super article !/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported +A Pelican Blog - Alexis Métaireau/Sun, 17 Nov 2013 23:29:00 +0000This is a super article !/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported as well as <strong>inline markup</strong>.</p> -Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0000tag:None,2010-12-02:/this-is-a-super-article.htmlyeahfoobarfoobarOh yeah !/oh-yeah.html<div class="section" id="why-not"> +Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0000tag:None,2010-12-02:/this-is-a-super-article.htmlyeahfoobarfoobarOh yeah !/oh-yeah.html<div class="section" id="why-not"> <h2>Why not ?</h2> <p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! YEAH !</p> <img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> </div> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0000tag:None,2010-10-20:/oh-yeah.htmlbarohbaryeah +Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0000tag:None,2010-10-20:/oh-yeah.htmlbarohbaryeah diff --git a/pelican/tests/output/basic/feeds/all-en.atom.xml b/pelican/tests/output/basic/feeds/all-en.atom.xml index 49c76c62..f420f5d3 100644 --- a/pelican/tests/output/basic/feeds/all-en.atom.xml +++ b/pelican/tests/output/basic/feeds/all-en.atom.xml @@ -1,12 +1,12 @@ -A Pelican Blog/2013-11-17T23:29:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> -A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> +A Pelican Blog/2013-11-17T23:29:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> +Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> +A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> <p><a href="/unbelievable.html">a root-relative link to unbelievable</a> -<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported +<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> +Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> +Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> +This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported as well as <strong>inline markup</strong>.</p> <p>Some content here !</p> <div class="section" id="this-is-a-simple-title"> @@ -20,13 +20,13 @@ as well as <strong>inline markup</strong>.</p> </pre> <p>→ And now try with some utf8 hell: ééé</p> </div> -Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> +Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> <h2>Why not ?</h2> <p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! YEAH !</p> <img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> </div> -Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> +Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> <p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> <a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> <div class="section" id="testing-sourcecode-directive"> @@ -55,7 +55,7 @@ pelican.conf, it will have nothing in default.</p> </div> <div class="section" id="testing-more-sourcecode-directives"> <h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a id="foo-8" name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a id="foo-9" name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a id="foo-10" name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a id="foo-11" name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a id="foo-12" name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a id="foo-13" name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a id="foo-14" name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a id="foo-15" name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a id="foo-16" name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a id="foo-17" name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a id="foo-18" name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a id="foo-19" name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a id="foo-20" name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a id="foo-21" name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a id="foo-22" name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a id="foo-23" name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a id="foo-24" name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a id="foo-25" name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a id="foo-26" name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a id="foo-27" name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> +<div class="highlight"><pre><span></span><span id="foo-8"><a id="foo-8" name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span><span class="testingw"> </span><span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a id="foo-9" name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a id="foo-10" name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a id="foo-11" name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a id="foo-12" name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a id="foo-13" name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a id="foo-14" name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a id="foo-15" name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a id="foo-16" name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a id="foo-17" name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a id="foo-18" name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a id="foo-19" name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a id="foo-20" name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a id="foo-21" name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a id="foo-22" name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a id="foo-23" name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a id="foo-24" name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a id="foo-25" name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a id="foo-26" name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a id="foo-27" name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> <p>Lovely.</p> </div> <div class="section" id="testing-even-more-sourcecode-directives"> @@ -70,5 +70,5 @@ pelican.conf, it will have nothing in default.</p> </pre></div> <p>Lovely.</p> </div> -The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - +The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> + diff --git a/pelican/tests/output/basic/feeds/all-fr.atom.xml b/pelican/tests/output/basic/feeds/all-fr.atom.xml index bca3d2cb..a1249178 100644 --- a/pelican/tests/output/basic/feeds/all-fr.atom.xml +++ b/pelican/tests/output/basic/feeds/all-fr.atom.xml @@ -1,4 +1,4 @@ -A Pelican Blog/2012-02-29T00:00:00+00:00Deuxième article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> -Trop bien !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00tag:None,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> - +A Pelican Blog/2012-02-29T00:00:00+00:00Deuxième article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> +Trop bien !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00tag:None,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> + diff --git a/pelican/tests/output/basic/feeds/all.atom.xml b/pelican/tests/output/basic/feeds/all.atom.xml index b2399afe..2fb89a47 100644 --- a/pelican/tests/output/basic/feeds/all.atom.xml +++ b/pelican/tests/output/basic/feeds/all.atom.xml @@ -1,13 +1,13 @@ -A Pelican Blog/2013-11-17T23:29:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> -Deuxième article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> -A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> +A Pelican Blog/2013-11-17T23:29:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> +Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> +Deuxième article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> +A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> <p><a href="/unbelievable.html">a root-relative link to unbelievable</a> -<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported +<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> +Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> +Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> +This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported as well as <strong>inline markup</strong>.</p> <p>Some content here !</p> <div class="section" id="this-is-a-simple-title"> @@ -21,14 +21,14 @@ as well as <strong>inline markup</strong>.</p> </pre> <p>→ And now try with some utf8 hell: ééé</p> </div> -Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> +Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> <h2>Why not ?</h2> <p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! YEAH !</p> <img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> </div> -Trop bien !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00tag:None,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> -Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> +Trop bien !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00tag:None,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> +Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> <p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> <a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> <div class="section" id="testing-sourcecode-directive"> @@ -57,7 +57,7 @@ pelican.conf, it will have nothing in default.</p> </div> <div class="section" id="testing-more-sourcecode-directives"> <h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a id="foo-8" name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a id="foo-9" name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a id="foo-10" name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a id="foo-11" name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a id="foo-12" name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a id="foo-13" name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a id="foo-14" name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a id="foo-15" name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a id="foo-16" name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a id="foo-17" name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a id="foo-18" name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a id="foo-19" name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a id="foo-20" name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a id="foo-21" name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a id="foo-22" name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a id="foo-23" name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a id="foo-24" name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a id="foo-25" name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a id="foo-26" name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a id="foo-27" name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> +<div class="highlight"><pre><span></span><span id="foo-8"><a id="foo-8" name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span><span class="testingw"> </span><span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a id="foo-9" name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a id="foo-10" name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a id="foo-11" name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a id="foo-12" name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a id="foo-13" name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a id="foo-14" name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a id="foo-15" name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a id="foo-16" name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a id="foo-17" name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a id="foo-18" name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a id="foo-19" name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a id="foo-20" name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a id="foo-21" name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a id="foo-22" name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a id="foo-23" name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a id="foo-24" name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a id="foo-25" name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a id="foo-26" name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a id="foo-27" name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> <p>Lovely.</p> </div> <div class="section" id="testing-even-more-sourcecode-directives"> @@ -72,5 +72,5 @@ pelican.conf, it will have nothing in default.</p> </pre></div> <p>Lovely.</p> </div> -The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - +The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> + diff --git a/pelican/tests/output/basic/feeds/bar.atom.xml b/pelican/tests/output/basic/feeds/bar.atom.xml index 93fff29c..1b2065d8 100644 --- a/pelican/tests/output/basic/feeds/bar.atom.xml +++ b/pelican/tests/output/basic/feeds/bar.atom.xml @@ -1,8 +1,8 @@ -A Pelican Blog - bar/2010-10-20T10:14:00+00:00Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> +A Pelican Blog - bar/2010-10-20T10:14:00+00:00Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> <h2>Why not ?</h2> <p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! YEAH !</p> <img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> </div> - + diff --git a/pelican/tests/output/basic/feeds/cat1.atom.xml b/pelican/tests/output/basic/feeds/cat1.atom.xml index 2f054a1c..90e58bfb 100644 --- a/pelican/tests/output/basic/feeds/cat1.atom.xml +++ b/pelican/tests/output/basic/feeds/cat1.atom.xml @@ -1,7 +1,7 @@ -A Pelican Blog - cat1/2011-04-20T00:00:00+00:00A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> +A Pelican Blog - cat1/2011-04-20T00:00:00+00:00A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> <p><a href="/unbelievable.html">a root-relative link to unbelievable</a> -<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> - +<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> +Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> +Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> + diff --git a/pelican/tests/output/basic/feeds/misc.atom.xml b/pelican/tests/output/basic/feeds/misc.atom.xml index 9127b2a5..f6ebe315 100644 --- a/pelican/tests/output/basic/feeds/misc.atom.xml +++ b/pelican/tests/output/basic/feeds/misc.atom.xml @@ -1,7 +1,7 @@ -A Pelican Blog - misc/2012-11-30T00:00:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> -Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> +A Pelican Blog - misc/2012-11-30T00:00:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> +Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> +Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> <p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> <a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> <div class="section" id="testing-sourcecode-directive"> @@ -30,7 +30,7 @@ pelican.conf, it will have nothing in default.</p> </div> <div class="section" id="testing-more-sourcecode-directives"> <h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a id="foo-8" name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a id="foo-9" name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a id="foo-10" name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a id="foo-11" name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a id="foo-12" name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a id="foo-13" name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a id="foo-14" name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a id="foo-15" name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a id="foo-16" name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a id="foo-17" name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a id="foo-18" name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a id="foo-19" name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a id="foo-20" name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a id="foo-21" name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a id="foo-22" name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a id="foo-23" name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a id="foo-24" name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a id="foo-25" name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a id="foo-26" name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a id="foo-27" name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> +<div class="highlight"><pre><span></span><span id="foo-8"><a id="foo-8" name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span><span class="testingw"> </span><span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a id="foo-9" name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a id="foo-10" name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a id="foo-11" name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a id="foo-12" name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a id="foo-13" name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a id="foo-14" name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a id="foo-15" name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a id="foo-16" name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a id="foo-17" name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a id="foo-18" name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a id="foo-19" name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a id="foo-20" name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a id="foo-21" name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a id="foo-22" name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a id="foo-23" name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a id="foo-24" name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a id="foo-25" name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a id="foo-26" name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a id="foo-27" name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> <p>Lovely.</p> </div> <div class="section" id="testing-even-more-sourcecode-directives"> @@ -45,5 +45,5 @@ pelican.conf, it will have nothing in default.</p> </pre></div> <p>Lovely.</p> </div> -The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - +The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> + diff --git a/pelican/tests/output/basic/feeds/yeah.atom.xml b/pelican/tests/output/basic/feeds/yeah.atom.xml index 6411bf6d..0193a00e 100644 --- a/pelican/tests/output/basic/feeds/yeah.atom.xml +++ b/pelican/tests/output/basic/feeds/yeah.atom.xml @@ -1,5 +1,5 @@ -A Pelican Blog - yeah/2013-11-17T23:29:00+00:00This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported +A Pelican Blog - yeah/2013-11-17T23:29:00+00:00This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported as well as <strong>inline markup</strong>.</p> <p>Some content here !</p> <div class="section" id="this-is-a-simple-title"> @@ -13,4 +13,4 @@ as well as <strong>inline markup</strong>.</p> </pre> <p>→ And now try with some utf8 hell: ééé</p> </div> - + diff --git a/pelican/tests/output/basic/theme/css/main.css b/pelican/tests/output/basic/theme/css/main.css index c1d86950..2e2aee48 100644 --- a/pelican/tests/output/basic/theme/css/main.css +++ b/pelican/tests/output/basic/theme/css/main.css @@ -27,6 +27,13 @@ body { text-align: left; } +@media (prefers-color-scheme: dark) { + body { + background: #070808; + color: #FFFEFE; + } +} + /* Headings */ h1 {font-size: 2em } h2 {font-size: 1.571em} /* 22px */ @@ -106,6 +113,12 @@ dd {margin-left: 1.5em;} pre{background-color: rgb(238, 238, 238); padding: 10px; margin: 10px; overflow: auto;} +@media (prefers-color-scheme: dark) { + pre { + background: rgb(38, 38, 38); + } +} + /* Quotes */ blockquote { margin: 20px; @@ -197,6 +210,12 @@ div.figure p.caption, figure p.caption { /* margin provided by figure */ #banner h1 strong {font-size: 0.36em; font-weight: normal;} +@media (prefers-color-scheme: dark) { + #banner h1 a:link, #banner h1 a:visited { + color: #FFFAF8; + } +} + /* Main Nav */ #banner nav { background: #000305; @@ -213,6 +232,12 @@ div.figure p.caption, figure p.caption { /* margin provided by figure */ -webkit-border-radius: 5px; } +@media (prefers-color-scheme: dark) { + #banner nav { + background: #121518; + } +} + #banner nav ul {list-style: none; margin: 0 auto; max-width: 800px;} #banner nav li {float: left; display: inline; margin: 0;} @@ -255,6 +280,12 @@ div.figure p.caption, figure p.caption { /* margin provided by figure */ -webkit-border-radius: 10px; } +@media (prefers-color-scheme: dark) { + #featured { + background: #151617; + } +} + #featured figure { border: 2px solid #eee; float: right; @@ -284,6 +315,12 @@ div.figure p.caption, figure p.caption { /* margin provided by figure */ -webkit-border-radius: 10px; } +@media (prefers-color-scheme: dark) { + #content { + background: #111; + } +} + /* Extras *****************/ @@ -306,6 +343,12 @@ div.figure p.caption, figure p.caption { /* margin provided by figure */ padding: .3em .25em; } +@media (prefers-color-scheme: dark) { + #extras a:link, #extras a:visited { + color: #888; + } +} + #extras a:hover, #extras a:active {color: #fff;} /* Blogroll */ @@ -339,6 +382,12 @@ div.figure p.caption, figure p.caption { /* margin provided by figure */ -webkit-border-radius: 10px; } +@media (prefers-color-scheme: dark) { + #about { + background: #222; + } +} + #about .primary {float: left; max-width: 165px;} #about .primary strong {color: #C64350; display: block; font-size: 1.286em;} #about .photo {float: left; margin: 5px 20px;} @@ -367,6 +416,12 @@ li:first-child .hentry, #content > .hentry {border: 0; margin: 0;} .entry-title a:link, .entry-title a:visited {text-decoration: none; color: #333;} .entry-title a:visited {background-color: #fff;} +@media (prefers-color-scheme: dark) { + .entry-title a:link, .entry-title a:visited { + color: #C74350; + } +} + .hentry .post-info * {font-style: normal;} /* Content */ diff --git a/pelican/tests/output/basic/unbelievable.html b/pelican/tests/output/basic/unbelievable.html index 2cd85dcb..37a40736 100644 --- a/pelican/tests/output/basic/unbelievable.html +++ b/pelican/tests/output/basic/unbelievable.html @@ -57,7 +57,7 @@

Testing more sourcecode directives

-
 8def run(self):
self.assert_has_content()
10 try:
lexer = get_lexer_by_name(self.arguments[0])
12 except ValueError:
# no lexer found - use the text one instead of an exception
14 lexer = TextLexer()

16 if ('linenos' in self.options and
self.options['linenos'] not in ('table', 'inline')):
18 self.options['linenos'] = 'table'

20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
if flag in self.options:
22 self.options[flag] = True

24 # noclasses should already default to False, but just in case...
formatter = HtmlFormatter(noclasses=False, **self.options)
26 parsed = highlight('\n'.join(self.content), lexer, formatter)
return [nodes.raw('', parsed, format='html')]
+
 8def run(self):
self.assert_has_content()
10 try:
lexer = get_lexer_by_name(self.arguments[0])
12 except ValueError:
# no lexer found - use the text one instead of an exception
14 lexer = TextLexer()

16 if ('linenos' in self.options and
self.options['linenos'] not in ('table', 'inline')):
18 self.options['linenos'] = 'table'

20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
if flag in self.options:
22 self.options[flag] = True

24 # noclasses should already default to False, but just in case...
formatter = HtmlFormatter(noclasses=False, **self.options)
26 parsed = highlight('\n'.join(self.content), lexer, formatter)
return [nodes.raw('', parsed, format='html')]

Lovely.

diff --git a/pelican/tests/output/custom/a-markdown-powered-article.html b/pelican/tests/output/custom/a-markdown-powered-article.html index b8359a6d..687c1153 100644 --- a/pelican/tests/output/custom/a-markdown-powered-article.html +++ b/pelican/tests/output/custom/a-markdown-powered-article.html @@ -12,8 +12,17 @@ + - Fork me on GitHub +
Fork me on GitHub

Testing more sourcecode directives

-
 8def run(self):
self.assert_has_content()
10 try:
lexer = get_lexer_by_name(self.arguments[0])
12 except ValueError:
# no lexer found - use the text one instead of an exception
14 lexer = TextLexer()

16 if ('linenos' in self.options and
self.options['linenos'] not in ('table', 'inline')):
18 self.options['linenos'] = 'table'

20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
if flag in self.options:
22 self.options[flag] = True

24 # noclasses should already default to False, but just in case...
formatter = HtmlFormatter(noclasses=False, **self.options)
26 parsed = highlight('\n'.join(self.content), lexer, formatter)
return [nodes.raw('', parsed, format='html')]
+
 8def run(self):
self.assert_has_content()
10 try:
lexer = get_lexer_by_name(self.arguments[0])
12 except ValueError:
# no lexer found - use the text one instead of an exception
14 lexer = TextLexer()

16 if ('linenos' in self.options and
self.options['linenos'] not in ('table', 'inline')):
18 self.options['linenos'] = 'table'

20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
if flag in self.options:
22 self.options[flag] = True

24 # noclasses should already default to False, but just in case...
formatter = HtmlFormatter(noclasses=False, **self.options)
26 parsed = highlight('\n'.join(self.content), lexer, formatter)
return [nodes.raw('', parsed, format='html')]

Lovely.

diff --git a/pelican/tests/output/custom_locale/archives.html b/pelican/tests/output/custom_locale/archives.html index 3e85bc13..206f107a 100644 --- a/pelican/tests/output/custom_locale/archives.html +++ b/pelican/tests/output/custom_locale/archives.html @@ -11,8 +11,17 @@ + - Fork me on GitHub +
Fork me on GitHub

Testing more sourcecode directives

-
 8def run(self):
self.assert_has_content()
10 try:
lexer = get_lexer_by_name(self.arguments[0])
12 except ValueError:
# no lexer found - use the text one instead of an exception
14 lexer = TextLexer()

16 if ('linenos' in self.options and
self.options['linenos'] not in ('table', 'inline')):
18 self.options['linenos'] = 'table'

20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
if flag in self.options:
22 self.options[flag] = True

24 # noclasses should already default to False, but just in case...
formatter = HtmlFormatter(noclasses=False, **self.options)
26 parsed = highlight('\n'.join(self.content), lexer, formatter)
return [nodes.raw('', parsed, format='html')]
+
 8def run(self):
self.assert_has_content()
10 try:
lexer = get_lexer_by_name(self.arguments[0])
12 except ValueError:
# no lexer found - use the text one instead of an exception
14 lexer = TextLexer()

16 if ('linenos' in self.options and
self.options['linenos'] not in ('table', 'inline')):
18 self.options['linenos'] = 'table'

20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
if flag in self.options:
22 self.options[flag] = True

24 # noclasses should already default to False, but just in case...
formatter = HtmlFormatter(noclasses=False, **self.options)
26 parsed = highlight('\n'.join(self.content), lexer, formatter)
return [nodes.raw('', parsed, format='html')]

Lovely.

diff --git a/pelican/tests/output/custom_locale/posts/2010/octobre/20/oh-yeah/index.html b/pelican/tests/output/custom_locale/posts/2010/octobre/20/oh-yeah/index.html index 23c57785..3e6c0dc9 100644 --- a/pelican/tests/output/custom_locale/posts/2010/octobre/20/oh-yeah/index.html +++ b/pelican/tests/output/custom_locale/posts/2010/octobre/20/oh-yeah/index.html @@ -14,8 +14,17 @@ + - Fork me on GitHub +
Fork me on GitHub