Lots of product page work for Luminotes Desktop.
This commit is contained in:
parent
6c018a2879
commit
6bd2dd510f
5
NEWS
5
NEWS
|
@ -1,4 +1,7 @@
|
||||||
1.5.0:
|
1.5.0 beta 2:
|
||||||
|
*
|
||||||
|
|
||||||
|
1.5.0 beta 1: August 27, 2008
|
||||||
* Completed the Luminotes Desktop Windows installer.
|
* Completed the Luminotes Desktop Windows installer.
|
||||||
* Improved logging, so tracebacks in production and desktop mode actually go
|
* Improved logging, so tracebacks in production and desktop mode actually go
|
||||||
to a file. Also removed logs on startup to prevent endless log growth.
|
to a file. Also removed logs on startup to prevent endless log growth.
|
||||||
|
|
|
@ -110,6 +110,15 @@ settings = {
|
||||||
"luminotes.unsubscribe_button":
|
"luminotes.unsubscribe_button":
|
||||||
"""
|
"""
|
||||||
""",
|
""",
|
||||||
|
"luminotes.download_button":
|
||||||
|
"""
|
||||||
|
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
||||||
|
<input type="hidden" name="cmd" value="_s-xclick">
|
||||||
|
<input type="image" src="/static/images/download_button.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
|
||||||
|
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
|
||||||
|
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----">
|
||||||
|
</form>
|
||||||
|
""",
|
||||||
},
|
},
|
||||||
"/files/download": {
|
"/files/download": {
|
||||||
"stream_response": True,
|
"stream_response": True,
|
||||||
|
|
|
@ -17,6 +17,7 @@ from view.Main_page import Main_page
|
||||||
from view.Front_page import Front_page
|
from view.Front_page import Front_page
|
||||||
from view.Tour_page import Tour_page
|
from view.Tour_page import Tour_page
|
||||||
from view.Upgrade_page import Upgrade_page
|
from view.Upgrade_page import Upgrade_page
|
||||||
|
from view.Download_page import Download_page
|
||||||
from view.Forums_page import Forums_page
|
from view.Forums_page import Forums_page
|
||||||
from view.Notebook_rss import Notebook_rss
|
from view.Notebook_rss import Notebook_rss
|
||||||
from view.Json import Json
|
from view.Json import Json
|
||||||
|
@ -344,6 +345,28 @@ class Root( object ):
|
||||||
redirect = u"/pricing",
|
redirect = u"/pricing",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@expose( view = Download_page )
|
||||||
|
@strongly_expire
|
||||||
|
@end_transaction
|
||||||
|
@grab_user_id
|
||||||
|
@validate(
|
||||||
|
user_id = Valid_id( none_okay = True ),
|
||||||
|
)
|
||||||
|
def download( self, user_id = None ):
|
||||||
|
"""
|
||||||
|
Provide the information necessary to display the Luminotes download page.
|
||||||
|
"""
|
||||||
|
result = self.__users.current( user_id )
|
||||||
|
parents = [ notebook for notebook in result[ u"notebooks" ] if notebook.trash_id and not notebook.deleted ]
|
||||||
|
if len( parents ) > 0:
|
||||||
|
result[ "first_notebook" ] = parents[ 0 ]
|
||||||
|
else:
|
||||||
|
result[ "first_notebook" ] = None
|
||||||
|
|
||||||
|
result[ "download_button" ] = self.__settings[ u"global" ].get( u"luminotes.download_button" )
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
# TODO: move this method to controller.Notebooks, and maybe give it a more sensible name
|
# TODO: move this method to controller.Notebooks, and maybe give it a more sensible name
|
||||||
@expose( view = Json )
|
@expose( view = Json )
|
||||||
@end_transaction
|
@end_transaction
|
||||||
|
|
|
@ -113,6 +113,12 @@
|
||||||
border: 1px solid #999999;
|
border: 1px solid #999999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.desktop_screenshot {
|
||||||
|
float: right;
|
||||||
|
text-align: center;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
.heading {
|
.heading {
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
|
@ -364,6 +370,10 @@
|
||||||
font-size: 82%;
|
font-size: 82%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.download_button_area {
|
||||||
|
padding-top: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
.yearly_link {
|
.yearly_link {
|
||||||
font-size: 82%;
|
font-size: 82%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
<h3>download</h3>
|
<h3>source code</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
First of all: <b>You don't need to download any software if you just want to
|
First of all: <b>You don't need to download any source code if you just want to
|
||||||
make a wiki!</b> For that, simply
|
make a wiki!</b> For that, simply
|
||||||
<a href="/users/demo" target="_top">try the demo</a>, or
|
<a href="/users/demo" target="_top">try the demo</a>,
|
||||||
<a href="/pricing" target="_top">sign up</a> for a free account.
|
<a href="/download" target="_top">download</a> Luminotes Desktop, or
|
||||||
|
<a href="/pricing" target="_top">sign up</a> for a free account online.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
But if you do want to run Luminotes on your own server, here is the
|
But if you do want to run Luminotes on your own server or run Luminotes
|
||||||
necessary software:
|
Desktop on Linux, here is the necessary software:
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/static/luminotes.tar.gz" target="_top">Luminotes
|
<li><a href="/static/luminotes.tar.gz" target="_top">Luminotes
|
||||||
server</a> (stable release)</li>
|
server</a> (stable release)</li>
|
||||||
|
@ -18,10 +19,8 @@ server</a> (stable release)</li>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
It is licensed under the terms of the <a
|
It is licensed under the terms of the <a
|
||||||
href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU GPL</a>. To use
|
href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU GPL</a>.
|
||||||
this software, you'll need a Linux machine with Python and PostgreSQL. More
|
Installation instructions can be found within the included INSTALL file.
|
||||||
details, including installation instructions, can be found within the included
|
|
||||||
INSTALL file.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -29,10 +28,10 @@ If you have any problems or questions, please let me know. See my <a
|
||||||
href="/notebooks/%s?note_id=new">contact info</a> for details.
|
href="/notebooks/%s?note_id=new">contact info</a> for details.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>source code repository</h3>
|
<h3>development repository</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The download link above is the most recent stable release of Luminotes server.
|
The download link above is the most recent stable release of Luminotes.
|
||||||
If you're interested in getting your hands on the development version of
|
If you're interested in getting your hands on the development version of
|
||||||
Luminotes, then you should use the Luminotes <a
|
Luminotes, then you should use the Luminotes <a
|
||||||
href="http://www.selenic.com/mercurial/" target="_top">Mercurial</a> source
|
href="http://www.selenic.com/mercurial/" target="_top">Mercurial</a> source
|
||||||
|
@ -46,7 +45,7 @@ browse the source code online:
|
||||||
<p>
|
<p>
|
||||||
I should emphasize that this is the development version of Luminotes. This
|
I should emphasize that this is the development version of Luminotes. This
|
||||||
means it's intended for developers and likely contains untested or
|
means it's intended for developers and likely contains untested or
|
||||||
unfinished features. If you want to run a production server, download the
|
unfinished features. If you want to run a production version, download the
|
||||||
stable release above rather than using the development version.
|
stable release above rather than using the development version.
|
||||||
</p>
|
</p>
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
Binary file not shown.
|
@ -17,7 +17,7 @@ class Initializer( object ):
|
||||||
( u"meet the team.html", False ),
|
( u"meet the team.html", False ),
|
||||||
( u"contact info.html", False ),
|
( u"contact info.html", False ),
|
||||||
( u"login.html", False ),
|
( u"login.html", False ),
|
||||||
( u"download.html", False ),
|
( u"source code.html", False ),
|
||||||
( u"password reset.html", False ),
|
( u"password reset.html", False ),
|
||||||
( u"advanced browser features.html", False ),
|
( u"advanced browser features.html", False ),
|
||||||
( u"supported browsers.html", False ),
|
( u"supported browsers.html", False ),
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Updater( object ):
|
||||||
( u"meet the team.html", False ),
|
( u"meet the team.html", False ),
|
||||||
( u"contact info.html", False ),
|
( u"contact info.html", False ),
|
||||||
( u"login.html", False ),
|
( u"login.html", False ),
|
||||||
( u"download.html", False ),
|
( u"source code.html", False ),
|
||||||
( u"password reset.html", False ),
|
( u"password reset.html", False ),
|
||||||
( u"advanced browser features.html", False ),
|
( u"advanced browser features.html", False ),
|
||||||
( u"supported browsers.html", False ),
|
( u"supported browsers.html", False ),
|
||||||
|
|
|
@ -0,0 +1,286 @@
|
||||||
|
from Product_page import Product_page
|
||||||
|
from Tags import Div, H1, Img, A, P, Table, Th, Tr, Td, Li, Span, I, Br, Ul, Li, Script, H4, B
|
||||||
|
|
||||||
|
|
||||||
|
class Download_page( Product_page ):
|
||||||
|
def __init__( self, user, notebooks, first_notebook, login_url, logout_url, rate_plan, groups, download_button ):
|
||||||
|
MEGABYTE = 1024 * 1024
|
||||||
|
|
||||||
|
Product_page.__init__(
|
||||||
|
self,
|
||||||
|
user,
|
||||||
|
first_notebook,
|
||||||
|
login_url,
|
||||||
|
logout_url,
|
||||||
|
u"download", # note title
|
||||||
|
|
||||||
|
Script( type = u"text/javascript", src = u"/static/js/MochiKit.js" ),
|
||||||
|
|
||||||
|
Div(
|
||||||
|
Div(
|
||||||
|
H1(
|
||||||
|
Img(
|
||||||
|
src = u"/static/images/download.png",
|
||||||
|
width = u"181", height = u"41",
|
||||||
|
alt = u"download",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
P(
|
||||||
|
"""
|
||||||
|
Install Luminotes on your computer. 60-day money-back guarantee.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_subtitle",
|
||||||
|
),
|
||||||
|
Div(
|
||||||
|
Div(
|
||||||
|
Img( src = u"/static/images/installer_screenshot.png", width = u"350", height = u"273" ),
|
||||||
|
class_ = u"desktop_screenshot",
|
||||||
|
),
|
||||||
|
P(
|
||||||
|
Table(
|
||||||
|
Tr(
|
||||||
|
Th( u" " ),
|
||||||
|
Th(
|
||||||
|
u"Luminotes Desktop",
|
||||||
|
Div(
|
||||||
|
download_button,
|
||||||
|
class_ = u"download_button_area",
|
||||||
|
),
|
||||||
|
class_ = u"plan_name",
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
A( u"Unlimited storage space", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'storage_description' ); return false;" ),
|
||||||
|
class_ = u"feature_name",
|
||||||
|
),
|
||||||
|
Td(
|
||||||
|
Img( src = u"/static/images/check.png", width = u"22", height = u"22" ),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
Ul(
|
||||||
|
Li( u"More space for your wiki notes." ),
|
||||||
|
Li( u"More space for your documents and files." ),
|
||||||
|
),
|
||||||
|
colspan = u"2",
|
||||||
|
id = u"storage_description",
|
||||||
|
class_ = u"feature_description undisplayed",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
A( u"Unlimited wiki notebooks", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'notebooks_description' ); return false;" ),
|
||||||
|
class_ = u"feature_name",
|
||||||
|
),
|
||||||
|
Td(
|
||||||
|
Img( src = u"/static/images/check.png", width = u"22", height = u"22" ),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
Ul(
|
||||||
|
Li( u"Create a unique notebook for each subject." ),
|
||||||
|
Li( u"Keep work and personal notebooks separate." ),
|
||||||
|
),
|
||||||
|
colspan = u"2",
|
||||||
|
id = u"notebooks_description",
|
||||||
|
class_ = u"feature_description undisplayed",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
A( u"Friendly email support", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'support_description' ); return false;" ),
|
||||||
|
class_ = u"feature_name",
|
||||||
|
),
|
||||||
|
Td(
|
||||||
|
Img( src = u"/static/images/check.png", width = u"22", height = u"22" ),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
Ul(
|
||||||
|
Li( u"Fast email responses to your support questions. From a real live human." ),
|
||||||
|
Li( u"No waiting on hold with a call center." ),
|
||||||
|
),
|
||||||
|
colspan = u"2",
|
||||||
|
id = u"support_description",
|
||||||
|
class_ = u"feature_description undisplayed",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
A( u"Notes stored on your own computer", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'local_storage' ); return false;" ),
|
||||||
|
class_ = u"feature_name",
|
||||||
|
),
|
||||||
|
Td(
|
||||||
|
Img( src = u"/static/images/check.png", width = u"22", height = u"22" ),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
Ul(
|
||||||
|
Li( u"All of your notes are stored privately on your own computer." ),
|
||||||
|
Li( u"A future release will support optional online syncing." ),
|
||||||
|
),
|
||||||
|
colspan = u"2",
|
||||||
|
id = u"local_storage",
|
||||||
|
class_ = u"feature_description undisplayed",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
A( u"Works without an internet connection", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'works_offline' ); return false;" ),
|
||||||
|
class_ = u"feature_name",
|
||||||
|
),
|
||||||
|
Td(
|
||||||
|
Img( src = u"/static/images/check.png", width = u"22", height = u"22" ),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Tr(
|
||||||
|
Td(
|
||||||
|
Ul(
|
||||||
|
Li( u"Take notes in meetings, in class, or while on the go." ),
|
||||||
|
Li( u"Runs in a web browser, but no internet connection is needed." ),
|
||||||
|
),
|
||||||
|
colspan = u"2",
|
||||||
|
id = u"works_offline",
|
||||||
|
class_ = u"feature_description undisplayed",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
border = u"1",
|
||||||
|
id = u"upgrade_table",
|
||||||
|
),
|
||||||
|
class_ = u"upgrade_table_area",
|
||||||
|
),
|
||||||
|
class_ = u"wide_center_area",
|
||||||
|
),
|
||||||
|
|
||||||
|
class_ = u"upgrade_area",
|
||||||
|
),
|
||||||
|
|
||||||
|
Div(
|
||||||
|
Div(
|
||||||
|
H4( u"What operating systems are supported?", class_ = u"upgrade_question" ),
|
||||||
|
P(
|
||||||
|
u"""
|
||||||
|
Luminotes Desktop currently supports Windows XP, and Windows Vista. Future
|
||||||
|
releases will support Mac OS X as well. And Linux users should get the
|
||||||
|
""",
|
||||||
|
A( u"source code", href = "/source_code" ),
|
||||||
|
"directly.",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
P(
|
||||||
|
u"""
|
||||||
|
If Luminotes Desktop does not support your operating system currently, or you just
|
||||||
|
don't want to install anything on your computer, you can still use Luminotes
|
||||||
|
online! Simply
|
||||||
|
""",
|
||||||
|
A( u"sign up", href = "/pricing" ),
|
||||||
|
"""
|
||||||
|
for an online Luminotes account. With the online version of Luminotes, there's
|
||||||
|
nothing to download or install.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
H4( u"How many users are supported?", class_ = u"upgrade_question" ),
|
||||||
|
P(
|
||||||
|
u"""
|
||||||
|
Luminotes Desktop is designed for individual note taking. If you're interested
|
||||||
|
in sharing and collaboration, take a look at
|
||||||
|
""",
|
||||||
|
A( u"the online version of Luminotes", href = "/pricing" ),
|
||||||
|
"""
|
||||||
|
for those features.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
H4( u"Is my wiki private?", class_ = u"upgrade_question" ),
|
||||||
|
P(
|
||||||
|
u"""
|
||||||
|
Absolutely. With Luminotes Desktop, your notes are stored locally on your own
|
||||||
|
computer, not on the web. But if you do want to access your wiki both locally
|
||||||
|
and online, a future release will include optional online synchronization.
|
||||||
|
There is also a complete
|
||||||
|
""",
|
||||||
|
A( u"Luminotes privacy policy", href = "/privacy" ),
|
||||||
|
u"""
|
||||||
|
so please check that out if you're interested in how Luminotes
|
||||||
|
protects your privacy.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
H4( u"Are upgrades included?", class_ = u"upgrade_question" ),
|
||||||
|
P(
|
||||||
|
"""
|
||||||
|
When you purchase Luminotes Desktop, you automatically get full access to all future
|
||||||
|
upgrades.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
H4( u"What forms of payment do you accept?", class_ = u"upgrade_question" ),
|
||||||
|
P(
|
||||||
|
"""
|
||||||
|
When you click the "Buy Now" button above, you'll be presented with a simple checkout
|
||||||
|
page. You can purchase Luminotes Desktop with either a credit card or PayPal. It's
|
||||||
|
fast and secure. You do not need a PayPal account to make the purchase.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
P(
|
||||||
|
"""
|
||||||
|
After you fill out the payment information, you will be able to download Luminotes
|
||||||
|
Desktop and start taking notes right away.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
H4( u"What is your refund policy?", class_ = u"upgrade_question" ),
|
||||||
|
P(
|
||||||
|
"""
|
||||||
|
It's this simple: Luminotes Desktop comes with a 60-day money-back guarantee. No questions asked.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
H4( u"What happens to my wiki if I stop using Luminotes?", class_ = u"upgrade_question" ),
|
||||||
|
P(
|
||||||
|
"""
|
||||||
|
There is no lock-in with Luminotes. You can export your entire wiki whenever you like.
|
||||||
|
""",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
|
class_= u"wide_center_area",
|
||||||
|
),
|
||||||
|
|
||||||
|
P(
|
||||||
|
Table(
|
||||||
|
Tr(
|
||||||
|
Th(
|
||||||
|
u"Luminotes Desktop",
|
||||||
|
Div(
|
||||||
|
download_button,
|
||||||
|
class_ = u"download_button_area",
|
||||||
|
),
|
||||||
|
class_ = u"plan_name",
|
||||||
|
)
|
||||||
|
),
|
||||||
|
id = u"upgrade_table_small",
|
||||||
|
),
|
||||||
|
class_= u"upgrade_table_area",
|
||||||
|
),
|
||||||
|
|
||||||
|
Div(
|
||||||
|
P(
|
||||||
|
Span( u"Have a question before you buy?", class_ = u"hook_action_question" ), Br(),
|
||||||
|
A( u"Contact support", href = u"/contact_info", class_ = u"hook_action" ),
|
||||||
|
class_ = u"hook_action_area",
|
||||||
|
separator = u"",
|
||||||
|
),
|
||||||
|
class_ = u"center_area",
|
||||||
|
),
|
||||||
|
|
||||||
|
class_ = u"wide_center_area",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
|
@ -47,11 +47,10 @@ class Front_page( Product_page ):
|
||||||
),
|
),
|
||||||
P(
|
P(
|
||||||
A( u"Take a tour", href = u"/tour", class_ = u"hook_action" ), u", ",
|
A( u"Take a tour", href = u"/tour", class_ = u"hook_action" ), u", ",
|
||||||
A( u"Try the demo", href = u"/users/demo", class_ = u"hook_action" ), u", ",
|
A( u"Try the demo", href = u"/users/demo", class_ = u"hook_action" ), u", ", Br(),
|
||||||
|
A( u"Download", href = u"/download", class_ = u"hook_action" ), u", ",
|
||||||
Span( u" or ", class_ = u"hook_action_or" ),
|
Span( u" or ", class_ = u"hook_action_or" ),
|
||||||
A( u"Sign up", href = u"/pricing", class_ = u"hook_action" ),
|
A( u"Sign up", href = u"/pricing", class_ = u"hook_action" ),
|
||||||
Br(),
|
|
||||||
Span( u"Sign up in seconds. For free.", class_ = u"hook_action_detail" ),
|
|
||||||
class_ = u"hook_action_area",
|
class_ = u"hook_action_area",
|
||||||
separator = u"",
|
separator = u"",
|
||||||
),
|
),
|
||||||
|
@ -349,7 +348,8 @@ class Front_page( Product_page ):
|
||||||
P(
|
P(
|
||||||
Span( u"Sound interesting?", class_ = u"hook_action_question" ), Br(),
|
Span( u"Sound interesting?", class_ = u"hook_action_question" ), Br(),
|
||||||
A( u"Take a tour", href = u"/tour", class_ = u"hook_action" ), u", ",
|
A( u"Take a tour", href = u"/tour", class_ = u"hook_action" ), u", ",
|
||||||
A( u"Try the demo", href = u"/users/demo", class_ = u"hook_action" ), u", ",
|
A( u"Try the demo", href = u"/users/demo", class_ = u"hook_action" ), u", ", Br(),
|
||||||
|
A( u"Download", href = u"/download", class_ = u"hook_action" ), u", ",
|
||||||
Span( u" or ", class_ = u"hook_action_or" ),
|
Span( u" or ", class_ = u"hook_action_or" ),
|
||||||
A( u"Sign up", href = u"/pricing", class_ = u"hook_action" ),
|
A( u"Sign up", href = u"/pricing", class_ = u"hook_action" ),
|
||||||
class_ = u"hook_action_area",
|
class_ = u"hook_action_area",
|
||||||
|
|
|
@ -34,8 +34,10 @@ class Header( Div ):
|
||||||
Div(
|
Div(
|
||||||
( note_title == u"home" ) and title_image or A( title_image, href = u"/" ),
|
( note_title == u"home" ) and title_image or A( title_image, href = u"/" ),
|
||||||
( login_url and user.username == u"anonymous" ) and Div(
|
( login_url and user.username == u"anonymous" ) and Div(
|
||||||
( note_title == u"pricing" ) and Span( u"sign up for free", class_ = u"bold_link" ) or \
|
( note_title == u"download" ) and Span( u"download", class_ = u"bold_link" ) or \
|
||||||
A( u"sign up for free", href = u"/pricing", class_ = u"bold_link" ), u" | ",
|
A( u"download", href = u"/download", class_ = u"bold_link" ), u" | ",
|
||||||
|
( note_title == u"pricing" ) and Span( u"sign up", class_ = u"bold_link" ) or \
|
||||||
|
A( u"sign up", href = u"/pricing", class_ = u"bold_link" ), u" | ",
|
||||||
A(
|
A(
|
||||||
u"login",
|
u"login",
|
||||||
href = login_url,
|
href = login_url,
|
||||||
|
@ -62,6 +64,14 @@ class Header( Div ):
|
||||||
),
|
),
|
||||||
" | ",
|
" | ",
|
||||||
) or None,
|
) or None,
|
||||||
|
( note_title == u"download" ) and Span( u"download", class_ = u"bold_link" ) or \
|
||||||
|
A(
|
||||||
|
u"download",
|
||||||
|
href = u"/download",
|
||||||
|
title = u"Download Luminotes to run on your own computer.",
|
||||||
|
class_ = u"bold_link",
|
||||||
|
),
|
||||||
|
" | ",
|
||||||
user.username and Span(
|
user.username and Span(
|
||||||
A(
|
A(
|
||||||
u"upgrade",
|
u"upgrade",
|
||||||
|
@ -71,11 +81,11 @@ class Header( Div ):
|
||||||
),
|
),
|
||||||
" | ",
|
" | ",
|
||||||
) or Span(
|
) or Span(
|
||||||
( note_title == u"pricing" ) and Span( u"sign up for free", class_ = u"bold_link" ) or \
|
( note_title == u"pricing" ) and Span( u"sign up", class_ = u"bold_link" ) or \
|
||||||
A(
|
A(
|
||||||
u"sign up for free",
|
u"sign up",
|
||||||
href = u"/pricing",
|
href = u"/pricing",
|
||||||
title = u"Sign up for a real Luminotes account.",
|
title = u"Sign up for an online Luminotes account.",
|
||||||
class_ = u"bold_link",
|
class_ = u"bold_link",
|
||||||
),
|
),
|
||||||
" | ",
|
" | ",
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from Tags import Div, P, Span, H4, A, Strong, Img, Input
|
from Tags import Div, P, Span, H4, A, Strong, Img, Input, Br
|
||||||
from Rounded_div import Rounded_div
|
from Rounded_div import Rounded_div
|
||||||
from Search_form import Search_form
|
from Search_form import Search_form
|
||||||
|
|
||||||
|
@ -186,7 +186,10 @@ class Link_area( Div ):
|
||||||
),
|
),
|
||||||
|
|
||||||
( user.username is None and notebook_path != "/" ) and P(
|
( user.username is None and notebook_path != "/" ) and P(
|
||||||
A( u"Sign up for free", href = u"/pricing", class_ = u"hook_action" ),
|
A( u"Download", href = u"/download", class_ = u"hook_action" ),
|
||||||
|
Span( u" or ", class_ = u"hook_action_or" ),
|
||||||
|
A( u"Sign up", href = u"/pricing", class_ = u"hook_action" ), Br(),
|
||||||
|
Span( "Get started in seconds.", class_ = u"hook_action_detail" ),
|
||||||
class_ = u"hook_action_area",
|
class_ = u"hook_action_area",
|
||||||
separator = u"",
|
separator = u"",
|
||||||
) or None,
|
) or None,
|
||||||
|
|
|
@ -23,9 +23,9 @@ class Product_page( Page ):
|
||||||
Div(
|
Div(
|
||||||
Div(
|
Div(
|
||||||
u"Copyright ©2008 Luminotes", u" | ",
|
u"Copyright ©2008 Luminotes", u" | ",
|
||||||
A( u"download", href = u"/download" ), u" | ",
|
|
||||||
A( u"contact", href = u"/contact_info" ), u" | ",
|
A( u"contact", href = u"/contact_info" ), u" | ",
|
||||||
A( u"support", href = u"/support" ), u" | ",
|
A( u"support", href = u"/support" ), u" | ",
|
||||||
|
A( u"source code", href = u"/source_code" ), u" | ",
|
||||||
A( u"team", href = u"/meet_the_team" ), u" | ",
|
A( u"team", href = u"/meet_the_team" ), u" | ",
|
||||||
A( u"blog", href = u"/blog" ), u" | ",
|
A( u"blog", href = u"/blog" ), u" | ",
|
||||||
A( u"privacy", href = u"/privacy" ),
|
A( u"privacy", href = u"/privacy" ),
|
||||||
|
|
|
@ -106,9 +106,10 @@ class Tour_page( Product_page ):
|
||||||
Div(
|
Div(
|
||||||
P(
|
P(
|
||||||
Span( u"Like what you've seen so far?", class_ = u"hook_action_question" ), Br(),
|
Span( u"Like what you've seen so far?", class_ = u"hook_action_question" ), Br(),
|
||||||
A( u"Try the demo", href = u"/users/demo", class_ = u"hook_action" ),
|
A( u"Try the demo", href = u"/users/demo", class_ = u"hook_action" ), u", ",
|
||||||
|
A( u"Download", href = u"/download", class_ = u"hook_action" ), u", ",
|
||||||
Span( u" or ", class_ = u"hook_action_or" ),
|
Span( u" or ", class_ = u"hook_action_or" ),
|
||||||
A( u"Sign up for free", href = u"/pricing", class_ = u"hook_action" ),
|
A( u"Sign up", href = u"/pricing", class_ = u"hook_action" ),
|
||||||
class_ = u"hook_action_area",
|
class_ = u"hook_action_area",
|
||||||
separator = u"",
|
separator = u"",
|
||||||
),
|
),
|
||||||
|
|
|
@ -245,6 +245,16 @@ class Upgrade_page( Product_page ):
|
||||||
""",
|
""",
|
||||||
class_ = u"upgrade_text",
|
class_ = u"upgrade_text",
|
||||||
),
|
),
|
||||||
|
H4( u"Do you have a desktop version I can download?", class_ = u"upgrade_question" ),
|
||||||
|
P(
|
||||||
|
u"""
|
||||||
|
Yes! If you want to download Luminotes and take notes locally instead of on the web,
|
||||||
|
check out
|
||||||
|
""",
|
||||||
|
A( u"Luminotes Desktop", href = "/download" ), ".",
|
||||||
|
separator = u"",
|
||||||
|
class_ = u"upgrade_text",
|
||||||
|
),
|
||||||
H4( u"Is my wiki private?", class_ = u"upgrade_question" ),
|
H4( u"Is my wiki private?", class_ = u"upgrade_question" ),
|
||||||
P(
|
P(
|
||||||
u"""
|
u"""
|
||||||
|
|
Reference in New Issue