We added a permalink function with the changeset 1300
This link used the page id, witch should only changes if the page would be deleted ;)
A permalink url makes a redirect to the right place.
You must add a variable into your settings.py like this:
Python 1
2 # the redirect to the real page url
PERMALINK_URL_PREFIX = "_goto"
Note: The "url.py" has been changed, too.
You can insert a permalink into the global template like this one:
HTML 1 <p id= "permalink" ><a href= "{{ PAGE.get_permalink }}" title= "permalink to this page" > permalink</a></p>
Add two new settings with the Changeset 1320
Now, you can easy setup two things for the urls:
Python 1
2
3
4
5
6
7
8
9
10 # Serve static files for the development server?
# Using this method is inefficient and insecure.
# Do not use this in a production setting. Use this only for development.
SERVE_STATIC_FILES = False
# If you used a old PyLucid installation then you can recirect the old
# urls with "indey.py" to the new URLs without the "index.py" part.
# Default: False
REDIRECT_OLD_PYLUCID_URL = False
This changes is not really backwards-incompatible because in the urls.py we use "getattr" so the variables must not exists in your settings.py
Since Changeset 1127 from 29.06.2007 there exists a new additional Stylesheet/JavaScript handling. But this change are not documented in the past.
In the global Template, you only need the line "{% lucidTag page_style %}" or "{% lucidTag page_style.print_current_style %}" !
Please check your template an delete a block like this one:
HTML 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <!-- additional javascript code - START -->
{% if js_data %}
{% for js in js_data %}
<script type= "text/javascript" >
/* <![CDATA[ */
/* additional javascript from {{ js.from_info }} */
{{ js . data }}
/* ]]> */
</script>
{% endfor %}
{% endif %}<!-- additional javascript code - END -->
<!-- additional stylesheet code - START -->
{% if css_data %}
{% for css in css_data %}
<style type= "text/css" >
/* <![CDATA[ */
/* additional stylesheets from {{ css.from_info }} */
{ { css . data } }
/* ]]> */
</style>
{% endfor %}
{% endif %}<!-- additional stylesheet code - END -->
Info: This block outsourced into the file ./PyLucid/plugins_internal/page_style/internal_pages/add_data.html
A new entry in settings is needed to build a permalink for a cms page. You must add this into your settings.py:
Python 1
2 # the redirect to the real page url
PERMALINK_URL_PREFIX = "_goto"
Note: If the settings entry not exists, you will get the ImproperlyConfigured error:
Error while importing URLconf 'PyLucid.urls': 'Settings' object has no attribute 'PERMALINK_URL_PREFIX'
The RSS feed generator plugin generates only the url and not the complete html link. So you should update your template:
Put in your global template (into the html head) this line:
HTML 1 <link rel= "alternate" type= "application/rss+xml" title= "pages updates" href= "{% lucidTag RSSfeedGenerator count=" 10 " %}" />
To add a normal link into your CMS page use this line:
HTML 1 <a href= "{% lucidTag RSSfeedGenerator count=" 10 " %}" type= "application/rss+xml" title= "page updates" > RSS feed</a>
See also /RSSfeedGenerator
In the settings the entry CSS_DIV_CLASS_NAME was renamed to CSS_PLUGIN_CLASS_NAME.
Diff 1
2
3
4
5
6
7
8
9
10
11
12
13 Index: /trunk/pylucid_project/PyLucid/settings_example.py
===================================================================
--- /trunk/pylucid_project/PyLucid/settings_example.py (revision 1221)
+++ /trunk/pylucid_project/PyLucid/settings_example.py (revision 1283)
@@ -382,5 +382,5 @@
ALLOW_SEND_MAILS = True
-# Every Plugin output clasp around with a html DIV tag.
-# Here you can defined witch CSS class name the DIV tag should used:
-CSS_DIV_CLASS_NAME = "PyLucidPlugins"
+# Every Plugin output gets a html SPAN tag around.
+# Here you can defined witch CSS class name the tag should used:
+CSS_PLUGIN_CLASS_NAME = "PyLucidPlugins"
Look into the SVN diff
The Stylesheets for hightlighted sourcecode are automatically inserted no longer.
You should insert a default pygments style in your global stylesheet.
You can use this:
CSS 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 /* ----------------------------------------------------------------------
Pygments syntax highlighter
---------------------------------------------------------------------- */
.pygments_code , .pygments_code table , .pygments_code .code , .pygments_code pre {
background : #ffffff ;
padding : 0 ;
margin : 0 ;
}
.pygments_code pre {
border : 1px ;
}
.pygments_code .code {
width : 100% ;
}
.pygments { background : #ffffff ; }
.pygments .c { color : #808080 } /* Comment */
.pygments .err { color : #F00000 ; background-color : #F0A0A0 } /* Error */
.pygments .k { color : #008000 ; font-weight : bold } /* Keyword */
.pygments .o { color : #303030 } /* Operator */
.pygments .cm { color : #808080 } /* Comment.Multiline */
.pygments .cp { color : #507090 } /* Comment.Preproc */
.pygments .c1 { color : #808080 } /* Comment.Single */
.pygments .cs { color : #cc0000 ; font-weight : bold } /* Comment.Special */
.pygments .gd { color : #A00000 } /* Generic.Deleted */
.pygments .ge { font-style : italic } /* Generic.Emph */
.pygments .gr { color : #FF0000 } /* Generic.Error */
.pygments .gh { color : #000080 ; font-weight : bold } /* Generic.Heading */
.pygments .gi { color : #00A000 } /* Generic.Inserted */
.pygments .go { color : #808080 } /* Generic.Output */
.pygments .gp { color : #c65d09 ; font-weight : bold } /* Generic.Prompt */
.pygments .gs { font-weight : bold } /* Generic.Strong */
.pygments .gu { color : #800080 ; font-weight : bold } /* Generic.Subheading */
.pygments .gt { color : #0040D0 } /* Generic.Traceback */
.pygments .kc { color : #008000 ; font-weight : bold } /* Keyword.Constant */
.pygments .kd { color : #008000 ; font-weight : bold } /* Keyword.Declaration */
.pygments .kp { color : #003080 ; font-weight : bold } /* Keyword.Pseudo */
.pygments .kr { color : #008000 ; font-weight : bold } /* Keyword.Reserved */
.pygments .kt { color : #303090 ; font-weight : bold } /* Keyword.Type */
.pygments .m { color : #6000E0 ; font-weight : bold } /* Literal.Number */
.pygments .s { background-color : #fff0f0 } /* Literal.String */
.pygments .na { color : #0000C0 } /* Name.Attribute */
.pygments .nb { color : #007020 } /* Name.Builtin */
.pygments .nc { color : #B00060 ; font-weight : bold } /* Name.Class */
.pygments .no { color : #003060 ; font-weight : bold } /* Name.Constant */
.pygments .nd { color : #505050 ; font-weight : bold } /* Name.Decorator */
.pygments .ni { color : #800000 ; font-weight : bold } /* Name.Entity */
.pygments .ne { color : #F00000 ; font-weight : bold } /* Name.Exception */
.pygments .nf { color : #0060B0 ; font-weight : bold } /* Name.Function */
.pygments .nl { color : #907000 ; font-weight : bold } /* Name.Label */
.pygments .nn { color : #0e84b5 ; font-weight : bold } /* Name.Namespace */
.pygments .nt { color : #007000 } /* Name.Tag */
.pygments .nv { color : #906030 } /* Name.Variable */
.pygments .ow { color : #000000 ; font-weight : bold } /* Operator.Word */
.pygments .w { color : #bbbbbb } /* Text.Whitespace */
.pygments .mf { color : #6000E0 ; font-weight : bold } /* Literal.Number.Float */
.pygments .mh { color : #005080 ; font-weight : bold } /* Literal.Number.Hex */
.pygments .mi { color : #0000D0 ; font-weight : bold } /* Literal.Number.Integer */
.pygments .mo { color : #4000E0 ; font-weight : bold } /* Literal.Number.Oct */
.pygments .sb { background-color : #fff0f0 } /* Literal.String.Backtick */
.pygments .sc { color : #0040D0 } /* Literal.String.Char */
.pygments .sd { color : #D04020 } /* Literal.String.Doc */
.pygments .s2 { background-color : #fff0f0 } /* Literal.String.Double */
.pygments .se { color : #606060 ; font-weight : bold ; background-color : #fff0f0 } /* Literal.String.Escape */
.pygments .sh { background-color : #fff0f0 } /* Literal.String.Heredoc */
.pygments .si { background-color : #e0e0e0 } /* Literal.String.Interpol */
.pygments .sx { color : #D02000 ; background-color : #fff0f0 } /* Literal.String.Other */
.pygments .sr { color : #000000 ; background-color : #fff0ff } /* Literal.String.Regex */
.pygments .s1 { background-color : #fff0f0 } /* Literal.String.Single */
.pygments .ss { color : #A06000 } /* Literal.String.Symbol */
.pygments .bp { color : #007020 } /* Name.Builtin.Pseudo */
.pygments .vc { color : #306090 } /* Name.Variable.Class */
.pygments .vg { color : #d07000 ; font-weight : bold } /* Name.Variable.Global */
.pygments .vi { color : #3030B0 } /* Name.Variable.Instance */
.pygments .il { color : #0000D0 ; font-weight : bold } /* Literal.Number.Integer.Long */
permalink