Commit 85431da6 authored by scoder's avatar scoder Committed by GitHub

Merge pull request #2439 from gabrieldemarmiesse/redirecting_automatically

Enable automatic redirect for outdated pages in the docs.
parents 86a6bbd8 56f96fe5
...@@ -455,3 +455,47 @@ pdf_use_numbered_links = False ...@@ -455,3 +455,47 @@ pdf_use_numbered_links = False
# Background images fitting mode # Background images fitting mode
pdf_fit_background_mode = 'scale' pdf_fit_background_mode = 'scale'
# Making redirection:
html_template = """
<html>
<head>
<script>
// Redirect to the new-style URL
var new_location = '{0}'
// Some browsers include the hash character in the anchor, strip it out
const anchor = window.location.hash.replace(/^#(.*)/, '$1');
if (anchor){{
new_location += '#' + anchor;
}}
window.location = new_location
</script>
<meta http-equiv="refresh" content="1; url={0}:" />
</head>
</html>
"""
list_redirects = [('reference/language_basics', 'userguide/language_basics')]
def add_legacy_redirects(app, docname):
if app.builder.name == 'html':
for old_link, new_link in list_redirects:
old_link = "src/" + old_link + ".html"
new_link = "src/" + new_link + ".html"
rel_path = os.path.relpath(new_link, os.path.dirname(old_link))
html_to_write = html_template.format(rel_path)
target_path = app.outdir + '/' + old_link
with open(target_path, "w+") as f:
f.write(html_to_write)
def setup(app):
app.connect('build-finished', add_legacy_redirects)
...@@ -11,7 +11,6 @@ Contents: ...@@ -11,7 +11,6 @@ Contents:
:maxdepth: 2 :maxdepth: 2
compilation compilation
language_basics
extension_types extension_types
interfacing_with_other_code interfacing_with_other_code
special_mention special_mention
......
.. highlight:: cython
***************
Language Basics
***************
.. note::
The sections in this page were moved to the :ref:`language-basics` in the userguide.
=================
Cython File Types
=================
This section was moved to :ref:`cython_file_types`.
Implementation File
===================
What can it contain?
--------------------
What can't it contain?
----------------------
Definition File
===============
What can it contain?
--------------------
What can't it contain?
----------------------
What else?
----------
cimport
```````
compilation order
`````````````````
Include File
============
What can it contain?
--------------------
How do I use it?
----------------
====================
Declaring Data Types
====================
This section was moved to :ref:`declaring_data_types`.
The cdef Statement
==================
This section was moved to :ref:`c_variable_and_type_definitions`.
Grouping cdef Declarations
==========================
This section was moved to :ref:`c_variable_and_type_definitions`.
C types and Python classes
==========================
This section was moved to :ref:`types`.
Parameters
==========
This section was moved to :ref:`python_functions_vs_c_functions`.
Automatic Type Conversion
=========================
This section was moved to :ref:`type-conversion`.
Type Casting
============
This section was moved to :ref:`type_casting`.
Checked Type Casts
------------------
This section was moved to :ref:`checked_type_casts`.
==========================
Statements and Expressions
==========================
This section was moved to :ref:`statements_and_expressions`.
Differences Between Cython and C
================================
Scope Rules
===========
Built-in Constants
==================
Operator Precedence
===================
For-loops
==========
=====================
Functions and Methods
=====================
This section was moved to :ref:`python_functions_vs_c_functions`.
Callable from Python (def)
==========================
Callable from C (cdef)
======================
Callable from both Python and C (cpdef)
=======================================
Overriding
==========
This section was moved to :ref:`overriding_in_extension_types`.
Function Pointers
=================
Python Built-ins
================
This section was moved to :ref:`built_in_functions`.
Optional Arguments
==================
This section was moved to :ref:`optional_arguments`.
Keyword-only Arguments
=======================
This section was moved to :ref:`keyword_only_argument`.
============================
Error and Exception Handling
============================
This section was moved to :ref:`error_return_values`.
Checking return values for non-Cython functions..
=================================================
This section was moved to :ref:`checking_return_values_of_non_cython_functions`.
=======================
Conditional Compilation
=======================
This section was moved to :ref:`conditional_compilation`.
Compile-Time Definitions
=========================
Conditional Statements
=======================
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment