From 60df0fa6188167fc20c88850f05c8e4b50d272ad Mon Sep 17 00:00:00 2001 From: Will Hedgecock Date: Thu, 12 Mar 2015 18:11:20 -0500 Subject: [PATCH] Updated all documentation and initial version of the web site. --- favicon.ico | Bin 0 -> 1150 bytes images/sprite_download.png | Bin 14832 -> 19923 bytes index.html | 164 +++++++++++++----- javadoc/allclasses-frame.html | 4 +- javadoc/allclasses-noframe.html | 4 +- .../com/fazecast/jSerialComm/SerialPort.html | 4 +- .../jSerialComm/SerialPortDataListener.html | 44 ++++- .../fazecast/jSerialComm/SerialPortEvent.html | 116 +++++++++++-- .../jSerialComm/SerialPortPacketListener.html | 21 ++- .../fazecast/jSerialComm/package-frame.html | 4 +- .../fazecast/jSerialComm/package-summary.html | 16 +- .../fazecast/jSerialComm/package-tree.html | 4 +- javadoc/constant-values.html | 4 +- javadoc/deprecated-list.html | 4 +- javadoc/help-doc.html | 4 +- javadoc/index-all.html | 52 ++++-- javadoc/index.html | 2 +- javadoc/overview-tree.html | 4 +- javadoc/serialized-form.html | 4 +- javascripts/main.js | 1 - params.json | 1 - stylesheets/pygment_trac.css | 70 -------- stylesheets/stylesheet.css | 60 ++++++- 23 files changed, 399 insertions(+), 188 deletions(-) create mode 100644 favicon.ico delete mode 100644 javascripts/main.js delete mode 100644 params.json delete mode 100644 stylesheets/pygment_trac.css diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..9ef26d6cde28fa08df0a173e0bb85a3300b543a5 GIT binary patch literal 1150 zcmcgqUr3Wt6u;k;Aj0yYKWJzf8b;K^URti2FNsYfHZ!R9P$;41dhlh6Gu=cbnl>l1 zK!Y_Dt+9zD(>d4v>qwoOv!&cfG6(?3NL5B8Pur0YoAZuz4C9 z8usnrU@|i^vpF2jDK3{QG@H%T=kvkr>@3XB&qK+TVz8P=!D%%^AP|7g&Q1`E#i!Z$ zw6wHTwOYM7Ffb5fYu4#>F+8Vwy&jM!$q^2Rp|rFFrYsYn?^S_q(n?zu&4!$u9L8WU z#84acdcD-`cEiNP1fUOkdwXGMXb6^;mSA~#8G^we+`e@a^v^UCTZ8!){fcUOwHg*d|X{kM5B?|#>R%Jy1M$p sFBkv827nL{5JD00BZPcQA!Hr#3Dw0B4$RrYf>oP=Xhz^&Ctw`n2WSDDZ2$lO literal 0 HcmV?d00001 diff --git a/images/sprite_download.png b/images/sprite_download.png index f9f8de24c1c49ce421a44ce2a24ac22d045a39fe..304ac53d5b6b33433d6f61ca50772adc780297fd 100644 GIT binary patch literal 19923 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 WAV6(21mh6^0000 - + + + + + + jSerialComm @@ -18,12 +23,13 @@
View on GitHub -

jSerialComm

-

Platform-independent serial port access for Java

+ jSerialComm +

Platform-independent serial port access for Java

Download this project as a .zip file Download this project as a tar.gz file + Download this library as a .jar file
@@ -31,59 +37,125 @@
-

-Welcome to GitHub Pages.

+

What is jSerialComm?

+ +

jSerialComm is a Java library designed to provide a platform-independent way to access standard serial ports without requiring external libraries, native code, or any other tools. It is meant as an alternative to RxTx and the (deprecated) Java Communications API, with increased ease-of-use and an enhanced support for timeouts.

+ +

Some of the features of this library include:

+ +
    +
  • Platform-independent library deployment (automatically uses correct native library based on current architecture)
  • +
  • Very lightweight and efficient implementation
  • +
  • Enumerates all available serial ports on a machine
  • +
  • Returns both a system port description and a friendly device description
  • +
  • Configurable ports according to baud rate, data bits, stop bits, and parity
  • +
  • Configurable port timeouts (blocking and non-blocking) for both reading and writing
  • +
  • Configurable flow control parameters for the serial port (CTS, RTS/CTS, DSR, DTR/DSR, XOn/XOff)
  • +
  • Ability to read and write raw data bytes directly to the serial port
  • +
  • Ability to read and write byte streams via Java's InputStream and OutputStream interfaces
  • +
  • Event-based reading and writing via callbacks
  • +
  • Callback notification when:
  • +
      +
    • New data is available for reading
    • +
    • All data has been successfully written
    • +
    • A complete fixed-length data packet has arrived
    • +
    +
+ +

Additionally, this library can be used in any Java project intended for use on the following platforms:

+ +
    +
  • 32/64-bit Windows XP or later
  • +
  • 32/64-bit Mac OS X Tiger (10.4) or later
  • +
  • 32/64-bit Linux distributions
  • +
  • 32/64-bit Mobile Linux derivatives (e.g. Android)
  • +
+ +

How can use this library in my own project?

+ +

One of the most convenient features of this library is that it allows you to simply include the JAR file in your custom project, and it will automatically select and load the correct native library for your platform and architecture. As such, you can make use of this library by simply copying the jSerialComm.jar file into your project directory and linking to it as you would any other JAR file.

+ +

To access the contents of the library in your project, make sure to import com.fazecast.jSerialComm.* into your java files. You can then generate a list of all available serial ports on your system (real or virtual), by calling the following static method:

+ +
SerialPort.getCommPorts()
+ +

This will return an array of SerialPort objects through which you can iterate. See the Javadoc Library Reference for a complete overview of this library and its methods.

+ +

Note for Linux users: Serial port access is limited to certain users and groups in Linux. To enable user access, you must open a terminal and enter the following commands before jSerialComm will be able to access the ports on your system. (Note, this must only be done once for each user):

+ +
sudo usermod -a -G uucp username
sudo usermod -a -G dialout username
+ +

Replace the username parameter with your current username. (If you are not sure what your username is, type whoami and it will tell you.) If you are using SUSE 11.3 or higher, replace the '-a -G' flags with a single '-A' flag. Log out and you should have access to the serial port after logging back in.

+ +

Additionally, if you are using an automated build system (such as Maven), you can import this library directly into your project as a dependency from the Maven Central Repository instead of copying the .jar file manually. Use one of the following dependency declarations depending on the build system you are using:

+ +
+ +
+
<dependency>
   <groupId>com.fazecast.jSerialComm</groupId>
   <artifactId>jSerialComm</artifactId>
   <version>1.0.0</version>
</dependency>
+
+
+
<dependency org="com.fazecast.jSerialComm" name="jSerialComm" rev="1.0.0"/>
+
+
+
@Grapes(
   @Grab(group='com.fazecast.jSerialComm', module='jSerialComm', version='1.0.0')
)
+
+
+
'com.fazecast.jSerialComm:jSerialComm:1.0.0'
+
+
+
'com.fazecast.jSerialComm:jSerialComm:jar:1.0.0'
+
+
+
libraryDependencies += "com.fazecast.jSerialComm" % "jSerialComm" % "1.0.0"
+
+
+
[com.fazecast.jSerialComm/jSerialComm "1.0.0"]
+
+
+ +

Are there any usage examples?

+ +

Although this library was designed to be as simple and flexible as possible, you can enable a number of different modes of operation via manipulation of the serial port timeout values and the interface through which you choose to access the serial port.

+ +

For a description of the various modes of operation available in this library, please refer to the Modes of Operation wiki article. For code-based examples of how to use this library in your own project, we provide a Usage Examples wiki.

+ +

Finally, you can view the API Documentation for further information on how to use this library.

+ +

Authors and Contributors

+ +

This library was created and developed by Will Hedgecock (@willhedgecock) of Fazecast, Inc. (@fazecast)

+ +

Support or Contact

+ +

Having trouble with this library? Check out the documentation or open an issue report and we’ll help you sort it out.

-

This automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new branch:

- -
$ cd your_repo_root/repo_name
-$ git fetch origin
-$ git checkout gh-pages
-
- -

If you're using the GitHub for Mac, simply sync your repository and you'll see the new branch.

- -

-Designer Templates

- -

We've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.

- -

-Rather Drive Stick?

- -

If you prefer to not use the automatic generator, push a branch named gh-pages to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator written by our own Tom Preston-Werner. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.

- -

-Authors and Contributors

- -

You can @mention a GitHub username to generate a link to their profile. The resulting <a> element will link to the contributor's GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.

- -

-Support or Contact

- -

Having trouble with Pages? Check out the documentation at https://help.github.com/pages or contact support@github.com and we’ll help you sort it out.

- - - + + diff --git a/javadoc/allclasses-frame.html b/javadoc/allclasses-frame.html index 3ccb9b3..e1b556c 100644 --- a/javadoc/allclasses-frame.html +++ b/javadoc/allclasses-frame.html @@ -2,9 +2,9 @@ - + All Classes (jSerialComm 1.0.0 API) - + diff --git a/javadoc/allclasses-noframe.html b/javadoc/allclasses-noframe.html index b95ac37..1be8503 100644 --- a/javadoc/allclasses-noframe.html +++ b/javadoc/allclasses-noframe.html @@ -2,9 +2,9 @@ - + All Classes (jSerialComm 1.0.0 API) - + diff --git a/javadoc/com/fazecast/jSerialComm/SerialPort.html b/javadoc/com/fazecast/jSerialComm/SerialPort.html index 3543c6c..4a8b668 100644 --- a/javadoc/com/fazecast/jSerialComm/SerialPort.html +++ b/javadoc/com/fazecast/jSerialComm/SerialPort.html @@ -2,9 +2,9 @@ - + SerialPort (jSerialComm 1.0.0 API) - + diff --git a/javadoc/com/fazecast/jSerialComm/SerialPortDataListener.html b/javadoc/com/fazecast/jSerialComm/SerialPortDataListener.html index fe970fe..fc61768 100644 --- a/javadoc/com/fazecast/jSerialComm/SerialPortDataListener.html +++ b/javadoc/com/fazecast/jSerialComm/SerialPortDataListener.html @@ -2,9 +2,9 @@ - + SerialPortDataListener (jSerialComm 1.0.0 API) - + @@ -109,6 +109,11 @@ var activeTableTab = "activeTableTab";
public interface SerialPortDataListener
 extends EventListener
+
This interface must be implemented to enable simple event-based serial port I/O.
+
+
See Also:
+
EventListener
+
@@ -129,11 +134,15 @@ extends int -getListeningEvents()  +getListeningEvents() +
Must be overridden to return one or more desired event constants for which the serialEvent(SerialPortEvent) callback should be triggered.
+ void -serialEvent(SerialPortEvent event)  +serialEvent(SerialPortEvent event) +
Called whenever one of the serial port events specified by the getListeningEvents() method occurs.
+ @@ -157,6 +166,26 @@ extends

getListeningEvents

int getListeningEvents()
+
Must be overridden to return one or more desired event constants for which the serialEvent(SerialPortEvent) callback should be triggered. +

+ Valid event constants are: +

+      SerialPort.LISTENING_EVENT_DATA_AVAILABLE
+      SerialPort.LISTENING_EVENT_DATA_RECEIVED
+      SerialPort.LISTENING_EVENT_DATA_WRITTEN
+

+ If you choose to listen for the SerialPort.LISTENING_EVENT_DATA_RECEIVED event, you should implement the sub-interface SerialPortPacketListener instead of this one. +

+ Two or more events may be OR'd together to listen for multiple events; however, if SerialPort.LISTENING_EVENT_DATA_AVAILABLE is OR'd with SerialPort.LISTENING_EVENT_DATA_RECEIVED, the SerialPort.LISTENING_EVENT_DATA_RECEIVED flag will take precedence. +

+
+
Returns:
+
The event constants that should trigger the serialEvent(SerialPortEvent) callback.
+
See Also:
+
SerialPort.LISTENING_EVENT_DATA_AVAILABLE, +SerialPort.LISTENING_EVENT_DATA_RECEIVED, +SerialPort.LISTENING_EVENT_DATA_WRITTEN
+
@@ -166,6 +195,13 @@ extends

serialEvent

void serialEvent(SerialPortEvent event)
+
Called whenever one of the serial port events specified by the getListeningEvents() method occurs.
+
+
Parameters:
+
event - A SerialPortEvent object containing information and/or data about the serial event that occurred.
+
See Also:
+
SerialPortEvent
+
diff --git a/javadoc/com/fazecast/jSerialComm/SerialPortEvent.html b/javadoc/com/fazecast/jSerialComm/SerialPortEvent.html index eaaa419..2e024ed 100644 --- a/javadoc/com/fazecast/jSerialComm/SerialPortEvent.html +++ b/javadoc/com/fazecast/jSerialComm/SerialPortEvent.html @@ -2,9 +2,9 @@ - + SerialPortEvent (jSerialComm 1.0.0 API) - + @@ -18,7 +18,7 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10}; +var methods = {"i0":10,"i1":10,"i2":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -118,9 +118,11 @@ var activeTableTab = "activeTableTab";
public final class SerialPortEvent
 extends EventObject
+
This class describes an asynchronous serial port event.
See Also:
-
Serialized Form
+
EventObject, +Serialized Form
@@ -155,13 +157,17 @@ extends Constructor and Description -SerialPortEvent(Object source, - int serialEventType)  +SerialPortEvent(SerialPort comPort, + int serialEventType) +
Constructs a SerialPortEvent object corresponding to the specified serial event type.
+ -SerialPortEvent(Object source, +SerialPortEvent(SerialPort comPort, int serialEventType, - byte[] data)  + byte[] data) +
Constructs a SerialPortEvent object corresponding to the specified serial event type and containing the passed-in data bytes.
+ @@ -180,11 +186,21 @@ extends int -getEventType()  +getEventType() +
Returns the type of serial port event that caused this object to be created.
+ byte[] -getReceivedData()  +getReceivedData() +
Returns any raw data bytes associated with this serial port event.
+ + + +SerialPort +getSerialPort() +
Returns the SerialPort that triggered this event.
+ @@ -260,6 +343,11 @@ extends

getReceivedData

public final byte[] getReceivedData()
+
Returns any raw data bytes associated with this serial port event.
+
+
Returns:
+
Any data bytes associated with this serial port event or null if none exist.
+
diff --git a/javadoc/com/fazecast/jSerialComm/SerialPortPacketListener.html b/javadoc/com/fazecast/jSerialComm/SerialPortPacketListener.html index 0e4e727..7ad8c80 100644 --- a/javadoc/com/fazecast/jSerialComm/SerialPortPacketListener.html +++ b/javadoc/com/fazecast/jSerialComm/SerialPortPacketListener.html @@ -2,9 +2,9 @@ - + SerialPortPacketListener (jSerialComm 1.0.0 API) - + @@ -105,6 +105,14 @@ var activeTableTab = "activeTableTab";
public interface SerialPortPacketListener
 extends SerialPortDataListener
+
This interface must be implemented to enable full packet reads using event-based serial port I/O. +

+ Note: Using this interface will negate any serial port read timeout settings since they make no sense in an asynchronous context.

+
+
See Also:
+
SerialPortDataListener, +EventListener
+
@@ -125,7 +133,9 @@ extends int -getPacketSize()  +getPacketSize() +
Must be overridden to return the desired number of bytes that must be read before the SerialPortDataListener.serialEvent(SerialPortEvent) callback is triggered.
+ diff --git a/javadoc/com/fazecast/jSerialComm/package-frame.html b/javadoc/com/fazecast/jSerialComm/package-frame.html index 4a33a8c..b3fe4ce 100644 --- a/javadoc/com/fazecast/jSerialComm/package-frame.html +++ b/javadoc/com/fazecast/jSerialComm/package-frame.html @@ -2,9 +2,9 @@ - + com.fazecast.jSerialComm (jSerialComm 1.0.0 API) - + diff --git a/javadoc/com/fazecast/jSerialComm/package-summary.html b/javadoc/com/fazecast/jSerialComm/package-summary.html index dd961f6..d0a8205 100644 --- a/javadoc/com/fazecast/jSerialComm/package-summary.html +++ b/javadoc/com/fazecast/jSerialComm/package-summary.html @@ -2,9 +2,9 @@ - + com.fazecast.jSerialComm (jSerialComm 1.0.0 API) - + @@ -82,11 +82,15 @@ SerialPortDataListener -  + +
This interface must be implemented to enable simple event-based serial port I/O.
+ SerialPortPacketListener -  + +
This interface must be implemented to enable full packet reads using event-based serial port I/O.
+ @@ -107,7 +111,9 @@ SerialPortEvent -  + +
This class describes an asynchronous serial port event.
+ diff --git a/javadoc/com/fazecast/jSerialComm/package-tree.html b/javadoc/com/fazecast/jSerialComm/package-tree.html index 3e2ad00..b151bc0 100644 --- a/javadoc/com/fazecast/jSerialComm/package-tree.html +++ b/javadoc/com/fazecast/jSerialComm/package-tree.html @@ -2,9 +2,9 @@ - + com.fazecast.jSerialComm Class Hierarchy (jSerialComm 1.0.0 API) - + diff --git a/javadoc/constant-values.html b/javadoc/constant-values.html index a75a41f..2fb2890 100644 --- a/javadoc/constant-values.html +++ b/javadoc/constant-values.html @@ -2,9 +2,9 @@ - + Constant Field Values (jSerialComm 1.0.0 API) - + diff --git a/javadoc/deprecated-list.html b/javadoc/deprecated-list.html index fa5f925..cc17445 100644 --- a/javadoc/deprecated-list.html +++ b/javadoc/deprecated-list.html @@ -2,9 +2,9 @@ - + Deprecated List (jSerialComm 1.0.0 API) - + diff --git a/javadoc/help-doc.html b/javadoc/help-doc.html index ee71b8a..95ee8f0 100644 --- a/javadoc/help-doc.html +++ b/javadoc/help-doc.html @@ -2,9 +2,9 @@ - + API Help (jSerialComm 1.0.0 API) - + diff --git a/javadoc/index-all.html b/javadoc/index-all.html index 0b23d6e..622f955 100644 --- a/javadoc/index-all.html +++ b/javadoc/index-all.html @@ -2,9 +2,9 @@ - + Index (jSerialComm 1.0.0 API) - + @@ -146,7 +146,9 @@
Gets a descriptive string representing this serial port or the device connected to it.
getEventType() - Method in class com.fazecast.jSerialComm.SerialPortEvent
-
 
+
+
Returns the type of serial port event that caused this object to be created.
+
getFlowControlSettings() - Method in class com.fazecast.jSerialComm.SerialPort
Returns the flow control settings enabled on this serial port.
@@ -156,7 +158,9 @@
Returns an InputStream object associated with this serial port.
getListeningEvents() - Method in interface com.fazecast.jSerialComm.SerialPortDataListener
-
 
+
+
Must be overridden to return one or more desired event constants for which the SerialPortDataListener.serialEvent(SerialPortEvent) callback should be triggered.
+
getNumDataBits() - Method in class com.fazecast.jSerialComm.SerialPort
Gets the current number of data bits per word.
@@ -170,7 +174,9 @@
Returns an OutputStream object associated with this serial port.
getPacketSize() - Method in interface com.fazecast.jSerialComm.SerialPortPacketListener
-
 
+
+
Must be overridden to return the desired number of bytes that must be read before the SerialPortDataListener.serialEvent(SerialPortEvent) callback is triggered.
+
getParity() - Method in class com.fazecast.jSerialComm.SerialPort
Gets the current parity error-checking scheme.
@@ -180,7 +186,13 @@
Gets the number of milliseconds of inactivity to tolerate before returning from a SerialPort.readBytes(byte[],long) call.
getReceivedData() - Method in class com.fazecast.jSerialComm.SerialPortEvent
-
 
+
+
Returns any raw data bytes associated with this serial port event.
+
+
getSerialPort() - Method in class com.fazecast.jSerialComm.SerialPortEvent
+
+
Returns the SerialPort that triggered this event.
+
getSystemPortName() - Method in class com.fazecast.jSerialComm.SerialPort
Gets the operating system-defined device name corresponding to this serial port.
@@ -254,7 +266,9 @@

S

serialEvent(SerialPortEvent) - Method in interface com.fazecast.jSerialComm.SerialPortDataListener
-
 
+
+
Called whenever one of the serial port events specified by the SerialPortDataListener.getListeningEvents() method occurs.
+
SerialPort - Class in com.fazecast.jSerialComm
This class provides native access to serial ports and devices without requiring external libraries or tools.
@@ -262,15 +276,25 @@
SerialPort() - Constructor for class com.fazecast.jSerialComm.SerialPort
 
SerialPortDataListener - Interface in com.fazecast.jSerialComm
-
 
+
+
This interface must be implemented to enable simple event-based serial port I/O.
+
SerialPortEvent - Class in com.fazecast.jSerialComm
-
 
-
SerialPortEvent(Object, int) - Constructor for class com.fazecast.jSerialComm.SerialPortEvent
-
 
-
SerialPortEvent(Object, int, byte[]) - Constructor for class com.fazecast.jSerialComm.SerialPortEvent
-
 
+
+
This class describes an asynchronous serial port event.
+
+
SerialPortEvent(SerialPort, int) - Constructor for class com.fazecast.jSerialComm.SerialPortEvent
+
+
Constructs a SerialPortEvent object corresponding to the specified serial event type.
+
+
SerialPortEvent(SerialPort, int, byte[]) - Constructor for class com.fazecast.jSerialComm.SerialPortEvent
+
+
Constructs a SerialPortEvent object corresponding to the specified serial event type and containing the passed-in data bytes.
+
SerialPortPacketListener - Interface in com.fazecast.jSerialComm
-
 
+
+
This interface must be implemented to enable full packet reads using event-based serial port I/O.
+
setBaudRate(int) - Method in class com.fazecast.jSerialComm.SerialPort
Sets the desired baud rate for this serial port.
diff --git a/javadoc/index.html b/javadoc/index.html index a3e3381..7f93d36 100644 --- a/javadoc/index.html +++ b/javadoc/index.html @@ -2,7 +2,7 @@ - + jSerialComm 1.0.0 API diff --git a/javadoc/serialized-form.html b/javadoc/serialized-form.html index ef25a04..02a0525 100644 --- a/javadoc/serialized-form.html +++ b/javadoc/serialized-form.html @@ -2,9 +2,9 @@ - + Serialized Form (jSerialComm 1.0.0 API) - + diff --git a/javascripts/main.js b/javascripts/main.js deleted file mode 100644 index d8135d3..0000000 --- a/javascripts/main.js +++ /dev/null @@ -1 +0,0 @@ -console.log('This would be the main JS file.'); diff --git a/params.json b/params.json deleted file mode 100644 index 341c04f..0000000 --- a/params.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"jSerialComm","tagline":"Platform-independent serial port access for Java","body":"### Welcome to GitHub Pages.\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new branch:\r\n\r\n```\r\n$ cd your_repo_root/repo_name\r\n$ git fetch origin\r\n$ git checkout gh-pages\r\n```\r\n\r\nIf you're using the GitHub for Mac, simply sync your repository and you'll see the new branch.\r\n\r\n### Designer Templates\r\nWe've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.\r\n\r\n### Rather Drive Stick?\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator written by our own Tom Preston-Werner. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `` element will link to the contributor's GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out the documentation at https://help.github.com/pages or contact support@github.com and we’ll help you sort it out.\r\n","google":"UA-60159197-1","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css deleted file mode 100644 index e65cedf..0000000 --- a/stylesheets/pygment_trac.css +++ /dev/null @@ -1,70 +0,0 @@ -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f0f3f3; } -.highlight .c { color: #0099FF; font-style: italic } /* Comment */ -.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */ -.highlight .k { color: #006699; font-weight: bold } /* Keyword */ -.highlight .o { color: #555555 } /* Operator */ -.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #009999 } /* Comment.Preproc */ -.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */ -.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */ -.highlight .go { color: #AAAAAA } /* Generic.Output */ -.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #99CC66 } /* Generic.Traceback */ -.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #006699 } /* Keyword.Pseudo */ -.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #FF6600 } /* Literal.Number */ -.highlight .s { color: #CC3300 } /* Literal.String */ -.highlight .na { color: #330099 } /* Name.Attribute */ -.highlight .nb { color: #336666 } /* Name.Builtin */ -.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */ -.highlight .no { color: #336600 } /* Name.Constant */ -.highlight .nd { color: #9999FF } /* Name.Decorator */ -.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #CC00FF } /* Name.Function */ -.highlight .nl { color: #9999FF } /* Name.Label */ -.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #003333 } /* Name.Variable */ -.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #FF6600 } /* Literal.Number.Float */ -.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */ -.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */ -.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */ -.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */ -.highlight .sc { color: #CC3300 } /* Literal.String.Char */ -.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #CC3300 } /* Literal.String.Double */ -.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */ -.highlight .si { color: #AA0000 } /* Literal.String.Interpol */ -.highlight .sx { color: #CC3300 } /* Literal.String.Other */ -.highlight .sr { color: #33AAAA } /* Literal.String.Regex */ -.highlight .s1 { color: #CC3300 } /* Literal.String.Single */ -.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */ -.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #003333 } /* Name.Variable.Class */ -.highlight .vg { color: #003333 } /* Name.Variable.Global */ -.highlight .vi { color: #003333 } /* Name.Variable.Instance */ -.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */ - -.type-csharp .highlight .k { color: #0000FF } -.type-csharp .highlight .kt { color: #0000FF } -.type-csharp .highlight .nf { color: #000000; font-weight: normal } -.type-csharp .highlight .nc { color: #2B91AF } -.type-csharp .highlight .nn { color: #000000 } -.type-csharp .highlight .s { color: #A31515 } -.type-csharp .highlight .sc { color: #A31515 } diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css index 619d19d..8c458e8 100644 --- a/stylesheets/stylesheet.css +++ b/stylesheets/stylesheet.css @@ -1,10 +1,3 @@ -/******************************************************************************* -Slate Theme for GitHub Pages -by Jason Costello, @jsncostello -*******************************************************************************/ - -@import url(pygment_trac.css); - /******************************************************************************* MeyerWeb Reset *******************************************************************************/ @@ -266,7 +259,7 @@ Full-Width Styles .inner { position: relative; - max-width: 640px; + max-width: 780px; padding: 20px 10px; margin: 0 auto; } @@ -317,7 +310,7 @@ Full-Width Styles #downloads { position: absolute; - width: 210px; + width: 303px; z-index: 10; bottom: -40px; right: 0; @@ -336,6 +329,17 @@ Full-Width Styles } .tar_download_link { + display: block; + float: right; + width: 90px; + height:70px; + text-indent: -5000px; + overflow: hidden; + background: url(../images/sprite_download.png) no-repeat bottom center; + margin-left: 10px; +} + +.jar_download_link { display: block; float: right; width: 90px; @@ -351,6 +355,10 @@ Full-Width Styles } .tar_download_link:hover { + background: url(../images/sprite_download.png) no-repeat top center; +} + +.jar_download_link:hover { background: url(../images/sprite_download.png) no-repeat top right; } @@ -423,3 +431,37 @@ Small Device Styles } } + +#tabs-nohdr { + padding: 0px; + background: none; + border-width: 0px; +} +#tabs-nohdr .ui-tabs-nav { + padding-left: 0px; + font-size: small; + background: transparent; + border-width: 0px 0px 1px 0px; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + border-radius: 0px; +} +#tabs-nohdr .ui-tabs-panel { + background: #f5f3e5; + border-width: 0px 1px 1px 1px; +} +#tabs-nohdr pre { + background: transparent; + padding: 0; + overflow: hidden; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + -o-box-shadow: none; + -ms-box-shadow: none; +} +#tabs-nohdr code { + background: transparent; + padding: 0; + overflow: hidden; +} \ No newline at end of file