witten
/
luminotes
Archived
1
0
Fork 0

Lots of product page work for Luminotes Desktop.

This commit is contained in:
Dan Helfman 2008-08-28 21:19:55 -07:00
parent 6c018a2879
commit 6bd2dd510f
19 changed files with 384 additions and 30 deletions

5
NEWS
View File

@ -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.

View File

@ -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-----MIIHqQYJKoZIhvcNAQcEoIIHmjCCB5YCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAChxdi2tGWuNEqItU9U3BuvYTv2H52zeFkCMIyTKNBJzeYWm2g6xYhj2ZopIXHrmRUciTkgp8+TlyGtlZSym1bVEp1b2HQv62GsAGz5QoHwPGJv2kzr6AjqHC3e4EqaSJ6tYKJOa/pTiMheG+VdTykZsh1rvjZX0AIg9XlOTLINzELMAkGBSsOAwIaBQAwggElBgkqhkiG9w0BBwEwFAYIKoZIhvcNAwcECF0uK7ZAdJH/gIIBAP7pJNRiTV1T+bd28Dlqxc7j4nMt8/wNdXfdu1gNQ1AYqeTb6OymC5Z6tuvx99qlAV2DGhK8oZgZjhyfv4N+MQZMUPYPRvLVN8ROkxTf9uBFe5D3TrRR2d2Nt6MERz8aNbhEqnWQxmOjrfn/7Gm1AKMzfdRI1AJG492pz+M8n5fV98a+5j/rsdaOBiS1dE3C/hpevgFeJ67T8Na05z+beswvLt3bTIbWwjFZxI3427CQ2YvvYvCAdrbekf1CGj639aUgIlAj3AQCU77O1qGmq9iPETacLAJl1zG8DXkHSCbk92NHjYYneKvz4KwliO+WrEguijPVuFw6tG7YR2nAI2ygggOHMIIDgzCCAuygAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wHhcNMDQwMjEzMTAxMzE1WhcNMzUwMjEzMTAxMzE1WjCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMFHTt38RMxLXJyO2SmS+Ndl72T7oKJ4u4uw+6awntALWh03PewmIJuzbALScsTS4sZoS1fKciBGoh11gIfHzylvkdNe/hJl66/RGqrj5rFb08sAABNTzDTiqqNpJeBsYs/c2aiGozptX2RlnBktH+SUNpAajW724Nv2Wvhif6sFAgMBAAGjge4wgeswHQYDVR0OBBYEFJaffLvGbxe9WT9S1wob7BDWZJRrMIG7BgNVHSMEgbMwgbCAFJaffLvGbxe9WT9S1wob7BDWZJRroYGUpIGRMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIFfOlaagFrl71+jq6OKidbWFSE+Q4FqROvdgIONth+8kSK//Y/4ihuE4Ymvzn5ceE3S/iBSQQMjyvb+s2TWbQYDwcp129OPIbD9epdr4tJOUNiSojw7BHwYRiPh58S1xGlFgHFXwrEBb3dgNbMUa+u4qectsMAXpVHnD9wIyfmHMYIBmjCCAZYCAQEwgZQwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tAgEAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wODA4MjcyMjE1MjRaMCMGCSqGSIb3DQEJBDEWBBTG/UvrJljwsnMBssYvg2njmyO8wjANBgkqhkiG9w0BAQEFAASBgDycza2BWJgjrcwxK/auWVNkfEPo+5M/otSi7eD845bjlY1ZQbLuuXQ3O9XEOWFcNQw03dJ6/m7yfrk/+ohYn4NfZuUULuiNutHwn5t2CYAFC0K7w1MKjWYibwu25UJj9oX45BGADLCAHwdx0hY1LrfawJ9xicqSfDTdzJ+kpq55-----END PKCS7-----">
</form>
""",
}, },
"/files/download": { "/files/download": {
"stream_response": True, "stream_response": True,

View File

@ -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

View File

@ -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%;
} }

View File

@ -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>

BIN
static/images/download.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/images/download.xcf Normal file

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.

View File

@ -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 ),

View File

@ -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 ),

286
view/Download_page.py Normal file
View File

@ -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"&nbsp;" ),
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",
),
),
)

View File

@ -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",

View File

@ -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",
), ),
" | ", " | ",

View File

@ -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,

View File

@ -23,9 +23,9 @@ class Product_page( Page ):
Div( Div(
Div( Div(
u"Copyright &copy;2008 Luminotes", u" | ", u"Copyright &copy;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" ),

View File

@ -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"",
), ),

View File

@ -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"""